XML模式中可接受值的范围是否相互依赖?

XML模式中可接受值的范围是否相互依赖?,xml,xsd,relaxng,Xml,Xsd,Relaxng,假设我正在为一个XML文档编写一个模式,其中有一个文档描述线性游戏板上的棋子: <piece length="5" position="4" /> 这显然是荒谬的 我的问题是,是否有任何方法可以使用XML模式强制执行此限制?如果不是W3CXML模式语言,那么RELAXNG呢?假设我所要求的在不受限制的情况下是不可能的(即对于任何正整数),那么对于受限制的、有限的可能性集又如何呢?也就是说,假设我们说length不能超过4。鉴于上述限制,对于长度,只剩下4个可能的值。那么,即使是手动

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

<piece length="5" position="4" />
这显然是荒谬的


我的问题是,是否有任何方法可以使用XML模式强制执行此限制?如果不是W3CXML模式语言,那么RELAXNG呢?假设我所要求的在不受限制的情况下是不可能的(即对于任何正整数),那么对于受限制的、有限的可能性集又如何呢?也就是说,假设我们说
length
不能超过4。鉴于上述限制,对于
长度
,只剩下4个可能的值。那么,即使是手动操作,也能实现我的愿望吗?

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

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

XSD1.1在Saxon、Xerces和Altova中实现

另一种选择是使用Schematron

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