客观的:
对于我正在创建的模式,我希望有一个唯一性约束,仅在每个父节点内检查唯一性,而不是检查整个模式中的子节点实例。我认为这最好通过示例来说明,请参见下面的 xml。
问题:
我正在使用的 xpath 针对 的所有实例检查唯一性<subnode value="x">
,而我希望它仅针对<subnode value="x">
其子级的实例检查唯一性,这是紧握器,单独的实例<globalElement>
带有所需错误的 XML:
<globalElement>
<subnode value="1" />
<subnode value="2" />
</globalElement>
<globalElement>
<subnode value="1" /> <!-- Desired error here -->
<subnode value="1" /> <!-- Desired error here -->
</globalElement>
当前错误的 XML:
<globalElement>
<subnode value="1" /> <!-- Error here -->
<subnode value="2" />
</globalElement>
<globalElement>
<subnode value="1" /> <!-- Error here -->
<subnode value="1" /> <!-- Error here -->
</globalElement>
XML 模式 (1.0):
<xs:element name="rootElement">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded" >
<xs:any namespace="##targetNamespace" />
</xs:choice>
</xs:complexType>
<xs:unique name="name_check">
<xs:selector xpath=".//prefix:globalElement/prefix:subnode" />
<xs:field xpath="@value" />
</xs:unique>
</element>