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