根据 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 以减少相邻元素之间的冗余和相互依赖性。