【问题标题】:Can the range of acceptable values in an XML Schema interdepend?XML Schema 中可接受值的范围可以相互依赖吗?
【发布时间】:2017-02-01 18:36:39
【问题描述】:

假设我正在为一个 XML 文档编写一个架构,其中有一个描述线性游戏板上棋子的文档:

<piece length="5" position="4" />

其中属性length 和position 都是大于0 的非负整数。现在,length 和position 之间存在明确的关系,这进一步限制了有意义的值的集合。也就是说,position 永远不能超过length,例如XML 片段

<piece length="5" position="6" />

显然是荒谬的。

我的问题是是否有任何方法可以使用 XML 模式来强制执行此限制?如果不是 W3C XML Schema 语言,那么 RELAX NG 呢?假设我所要求的在不受限制的情况下(即对于任何正整数)是不可能的,那么对于一个受限制的、有限的可能性集呢?也就是说,假设我们说length 永远不会超过四个。鉴于上述限制,这对于length 仅留下 4 个可能的值。 那么是否有可能实现我的愿望,即使这意味着手动?

【问题讨论】:

    标签: xml xsd relaxng


    【解决方案1】:

    要表达这样的约束,您需要 XSD 1.1 断言,例如

    <xsl:assert test="@position lt @length"/>
    

    XSD 1.1 在 Saxon、Xerces 和 Altova 中实现。

    替代方法是使用 Schematron。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      • 2015-06-24
      相关资源
      最近更新 更多