我有这个Xml文件:
<objects> <object name="ID1" /> <object name="ID2" /> <object name="ID2" color="green" /> <object name="ID3" color="green" /> <objects>
我想针对XSD架构验证这一点,以便名称和颜色之间的组合在文档中是唯一的.
问题是,如果我使用:
<xs:unique name="UniqueObjectNameColor"> <xs:selector xpath="./object" /> <xs:field xpath="@name" /> <xs:field xpath="@color" /> </xs:unique>
…规则将忽略没有可选颜色属性的对象元素.以下验证正确,但不应该.
<object name="ID2" /> <object name="ID2" />
您能告诉我如何指定强制使用唯一名称和颜色组合的规则,并且当元素对象中不存在颜色属性时,它会检查名称吗?
使用use和default,有或没有像这样的值:
<element name="objects"> <complexType> <sequence> <element name="object" maxOccurs="unbounded"> <complexType> <attribute name="name" type="string" /> <attribute name="color" type="string" use="optional" default="noColor" /> </complexType> </element> </sequence> </complexType> <unique name="UniqueObjectNameColor"> <selector xpath="tns:object" /> <field xpath="@name" /> <field xpath="@color" /> </unique> </element> </schema>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。