xml看起来像:
<Details>
<CNumber>1</CNumber>
</Details>
<Details>
<CNumber>2</CNumber>
</Details>
当前XSD看起来像:
<xsd:element name="Details" minOccurs="0" maxOccurs="8">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CNumber" minOccurs="1" maxOccurs="1">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:pattern value="[1-8]{1}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
现在,我们需要确保CNumber只能包含1到8之间的唯一值。不能重复相同的数字。请在这里建议如何使用独特。 ?
答案 0 :(得分:0)
以下是基于您的片段的示例模式,该模式在CNumber上强制执行
<?xml version="1.0" encoding="utf-16"?>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Details" minOccurs="0" maxOccurs="8">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CNumber" minOccurs="1" maxOccurs="1">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:pattern value="[1-8]{1}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:unique name="uniqueCNumber">
<xsd:selector xpath="./Details" />
<xsd:field xpath="CNumber" />
</xsd:unique>
</xsd:element>
</xsd:schema>