小编Vit*_*tor的帖子

xsd:具有可选属性的唯一

我有这个Xml文件:

<objects>
  <object name="ID1" />
  <object name="ID2" />
  <object name="ID2" color="green" />
  <object name="ID3" color="green" />
<objects>
Run Code Online (Sandbox Code Playgroud)

我想验证这一点对一个XSD架构,使之间的组合name,并color在文档中是唯一的.

问题是,如果我使用:

<xs:unique name="UniqueObjectNameColor">
  <xs:selector xpath="./object" />
  <xs:field xpath="@name" />
  <xs:field xpath="@color" />
</xs:unique>
Run Code Online (Sandbox Code Playgroud)

...规则将忽略object没有可选color属性的元素.以下验证正确,但不应该.

  <object name="ID2" />
  <object name="ID2" />
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何指定一个强制执行唯一namecolor组合的规则,当color元素中没有该属性时object,它会检查name

xml xsd unique

6
推荐指数
2
解决办法
1367
查看次数

标签 统计

unique ×1

xml ×1

xsd ×1