如何对多个元素使用一个限制(<xs:minLength value="10"/>)

How to use one restriction (<xs:minLength value="10"/>) for more than one element

我正在尝试使用 <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>

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

<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>

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