根据 Parent 的兄弟 Children 的值需要特定元素值
Require Specific Element Values depending on Values of Parent's Sibling's Children
我正在尝试制定架构,要求元素实例的值是连续的,没有任何间隙(尽管顺序无关紧要)。
有效:
<Racks>
<Rack>
<RackNumber>1</RackNumber>
</Rack>
<Rack>
<RackNumber>2</RackNumber>
</Rack>
<Rack>
<RackNumber>3</RackNumber>
</Rack>
</Racks>
有效:
<Racks>
<Rack>
<RackNumber>2</RackNumber>
</Rack>
<Rack>
<RackNumber>3</RackNumber>
</Rack>
<Rack>
<RackNumber>1</RackNumber>
</Rack>
</Racks>
无效:
<Racks>
<Rack>
<RackNumber>1</RackNumber>
</Rack>
<Rack>
<RackNumber>3</RackNumber>
</Rack>
</Racks>
XSD 1.0 是否可以强制执行此操作?如果是这样,那么有人可以指出我正确的方向吗?
在 XSD 1.0 中没有方便的方法来执行此操作。在 XSD 1.1 中,您可以使用断言(在父 Racks
元素上)来强制执行约束。但如果是我,我会更改 XML 以减少相邻元素之间的冗余和相互依赖性。
我正在尝试制定架构,要求元素实例的值是连续的,没有任何间隙(尽管顺序无关紧要)。
有效:
<Racks>
<Rack>
<RackNumber>1</RackNumber>
</Rack>
<Rack>
<RackNumber>2</RackNumber>
</Rack>
<Rack>
<RackNumber>3</RackNumber>
</Rack>
</Racks>
有效:
<Racks>
<Rack>
<RackNumber>2</RackNumber>
</Rack>
<Rack>
<RackNumber>3</RackNumber>
</Rack>
<Rack>
<RackNumber>1</RackNumber>
</Rack>
</Racks>
无效:
<Racks>
<Rack>
<RackNumber>1</RackNumber>
</Rack>
<Rack>
<RackNumber>3</RackNumber>
</Rack>
</Racks>
XSD 1.0 是否可以强制执行此操作?如果是这样,那么有人可以指出我正确的方向吗?
在 XSD 1.0 中没有方便的方法来执行此操作。在 XSD 1.1 中,您可以使用断言(在父 Racks
元素上)来强制执行约束。但如果是我,我会更改 XML 以减少相邻元素之间的冗余和相互依赖性。