在我的 XML 中,我定义了类别
<category id="3" parent-category-id="2">
<name>Child category</name>
</category>
如您所见,我有一个类别元素,它可以定义一个父类别。这两个属性都在我的 XML Schema 文件中定义:
<xs:attribute name="id" use="required" type="xs:string" />
<xs:attribute name="parent-category-id" use="optional" type="xs:string" />
我还在我的 XSD 文件中设置了密钥和密钥引用。现在我想知道这是否有可能以某种方式限制父类别ID,以便它不能指向自我ID。例如我可以写:
<category id="3" parent-category-id="3">
并且这样的 XML 文件仍然会验证,尽管它不应该。
我的密钥和密钥引用是:
<xs:key name="ID">
<xs:selector xpath="categories/category" />
<xs:field xpath="@id" />
</xs:key>
<xs:keyref name="PARENT_CATEGORY_ID_REF" refer="ID">
<xs:selector xpath="categories/category" />
<xs:field xpath="@parent-category-id" />
</xs:keyref>
如果我可以添加某种限制,那就太好了,这会告诉验证器 id 不能 == parent-category-id。有任何想法吗?