我正在研究xsd,我的系统限制了元素<union>
的使用。以下是代码段:
<xsd: element name = 'CRN' minOccurs = "1">
<xsd: simpleType>
<xsd:union memberTypes = "fps:nonNegativeMax999IntType fps:FullPaymentSubmission_XType"/>
/xsd:simpleType>
<xsd:simpleType name = "FullPaymentSubmission_XType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value = "X"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name = "nonNegativeMax999IntType ">
<xsd:restriction base="xsd:nonNegativeInteger">
<xsd:maxInclusive value = "9999"/>
</xsd:restriction>
</xsd:simpleType>
请问有人可以建议替代方案我可以避免在我的xsd中使用<union>
吗?
答案 0 :(得分:1)
此XSD,
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="r">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="\d{1,4}"/>
<xs:pattern value="X"/>
<xs:pattern value="Y"/>
<xs:pattern value="Z"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
允许CRN
最多4个数字或X
或Y
或Z
。您可以针对任何其他要求调整正则表达式,例如可选的前导+
或必要时排除前导0
。