我正在尝试通过元素名称验证父元素是否具有唯一的子元素。我还需要验证至少存在一个可能的元素。
例子
<StorageTypes>
<Status/>
<Warning/>
<Error/>
</StorageTypes>
将是有效的,但
<StorageTypes>
<Status/>
<Status/>
<Warning/>
<Error/>
</StorageTypes>
和
<StorageTypes>
</StorageTypes>
将是无效的。
我曾尝试使用 xs:unique,选择当前节点,但无法一般选择带有字段元素的元素。
下面实现了我想要做的事情,但它不是我正在寻找的强大解决方案。我希望能够添加更多类型,而无需为每次更改更改 xpath。
<element ect.>
<xs:unique name="something">
<xs:selector xpath="."/>
<xs:field xpath="Status"/>
<xs:field xpath="Warning"/>
<xs:field xpath="Error"/>
</xs:unique>
</element>
这可能吗?这是好习惯吗?任何意见,将不胜感激。