如何对一个以上的元素使用一个限制(<xs:minlength value =“10”>)</xs:minlength>

时间:2015-01-07 01:13:42

标签: xml xsd

我正在尝试使用<restriction>,但我不想在每个元素上重复<xs:minLength value="10"/>

<xs:element name="AddressLine1">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:minLength value="10"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>
<xs:element name="AddressLine2">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:minLength value="10"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>
<xs:element name="AddressLine3">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:minLength value="10"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>

1 个答案:

答案 0 :(得分:3)

您可以将类型提取到单独的声明中,然后使用type标记的<xs:element>属性指定它们应使用的类型。当然,这需要你命名你定义的类型,就像我在这里所做的那样:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:simpleType name="longishString">
        <xs:restriction base="xs:string">
            <xs:minLength value="10"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="AddressLine1" type="longishString"/>
    <xs:element name="AddressLine2" type="longishString"/>
    <xs:element name="AddressLine3" type="longishString"/>
</xs:schema>

类型定义可以位于架构中的任何位置;它与具有该类型的元素的相对位置无关紧要。