我有这样的结构:
<parent>
<name>p1</name>
<child>
<name>c3</name>
<name>c1</name>
</child>
</parent>
<parent>
<name>p2</name>
<child>
<name>c1</name>
<name>c2</name>
</child>
</parent>
我想要的是另一个部分,应该对第一部分的值进行验证。以便
<parent name="p1">
<child name="c3" />
</parent>
或者
<parent name="p2">
<child name="c2" />
</parent>
应该是有效的,但两者都不是
<parent name="p1">
<child name="c2" />
</parent>
也不
<parent name="p2">
<child name="c4" />
</parent>
我正在考虑使用具有多个字段的键
<xs:key name="k">
<xs:selector xpath="tns:parent" />
<xs:field xpath="tns:name" />
<xs:field xpath="tns:child/tns:name" />
</xs:key>
但似乎这种方法永远行不通,因为关键字段应该是唯一的。
是否可以使用 XML Schema 1.0 做到这一点?