要求特定元素值取决于父母兄弟的孩子的值

时间:2015-01-10 01:01:57

标签: xml xsd xsd-1.0

我正在尝试制定模式,要求元素实例的值是顺序的,没有任何间隙(尽管顺序无关紧要)。

有效:

<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强制执行此操作吗?如果是这样,那么有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

在XSD 1.0中执行此操作并不方便。在XSD 1.1中,您可以使用断言(在父Racks元素上)来强制执行约束。但如果是我,我会改变XML,以减少冗余,减少相邻元素之间的相互依赖。