与在users-tag中输入的所有其他电子邮件地址相比,我如何定义emailaddress-element的内容必须是unquie?
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="users">
<xs:sequence>
<xs:element name="user">
<xs:element name="name" type="xs:string" />
<xs:element name="emailaddress" type="xs:string" />
</xs:element>
</xs:sequence>
</xs:element>
答案 0 :(得分:4)
我认为这就是你所追求的目标:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="users">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="user">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="emailaddress" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- Make sure each user has a unique email address -->
<xs:unique name="email-address-is-unique">
<xs:selector xpath="user"/>
<xs:field xpath="emailaddress"/>
</xs:unique>
</xs:element>
</xs:schema>
我还冒昧地在原始模式中添加了省略的元素以保证完整性。
因此,selector元素的xpath属性定义了唯一性约束正在使用的元素,然后字段元素具有xpath,这些xpath确定所选元素之间需要唯一的元素。
答案 1 :(得分:0)
您使用&lt; xs:unique&gt;标签如here
所述