我正在尝试使用<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>
答案 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>
类型定义可以位于架构中的任何位置;它与具有该类型的元素的相对位置无关紧要。