0

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 之间的唯一值。不能重复相同的数字。请在此处建议如何使用 unique 。?

4

1 回答 1

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>
于 2013-11-12T22:57:01.540 回答