xml - 有没有办法在 schematron 中传递变量?

标签 xml xslt xsd xslt-2.0 schematron

我想使用一个变量来表示我的 schematron 断言并在我的验证消息中使用它。例如:

        <rule context="//Profile/User[@name]">
            <assert test="@name = ../business/@owner">User: '----' doesn't exist as a business owner. </assert>
        </rule>

'----' 是用户的名称。有没有办法在 schematron 中使用变量?

最佳答案

您可以使用 value-of 来检索变量或 XPath 的值:

    <rule context="//Profile/User[@name]">
        <assert test="@name = ../business/@owner">
          User: <value-of select="@name"/> doesn't exist as a business owner.
        </assert>
    </rule>

如果你想引入一个变量,使用let:

    <rule context="//Profile/User[@name]">
        <let name="userName" value="@name"/>
        <assert test="@name = ../business/@owner">
          User: <value-of select="$userName"/> doesn't exist as a business owner.
        </assert>
    </rule>

关于xml - 有没有办法在 schematron 中传递变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948482/

相关文章:

xslt - 如何在 XSLT 1.0 中匹配和包装相同和相邻的节点?

XSLT如何检查当前节点是否有任何属性

xml - 将字符串转换为 XSLT 中的日期格式

validation - 允许 RelaxNG 模式中元素的任意顺序

java - Apache Camel : Cannot locate xsd file exception

ruby-on-rails - 在 Rails 中与第三方 API 交互? (打开 URL 并解析 XML/JSON)

javascript - 在 XSL 中包含带有大括号 {} 的内联 JavaScript

eclipse - XSD 类型定义是否在编译时验证?

java - 为什么 Android 解析 XML 不正确?

jquery - Basic jQuery Slider (BJQS) 未将样式应用于 jQuery 和 XML 生成的 li 元素