XSD 需要空字符或 2 个字符的简单类型
XSD SimpleType that requires empty or 2 chars
我想弄清楚如何更改需要节点 "Initials" 的 XSD,它是空的或只有 2 个字符。
<xs:simpleType name="Initials">
<xsd:restriction base="xs:string">
<xs:maxLength value="2"/>
<xs:minLength value="2"/>
<xs:pattern value="[A-Z]+"/>
</xsd:restriction>
</xs:simpleType>
我应该将其设置为 nillable 吗?
您可以使用模式值 ([A-Z][A-Z])?
。
有样本XML喜欢
<root>AZ</root>
或
<root></root>
您的 XSD 可能如下所示:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root" type="Initials" />
<xs:simpleType name="Initials">
<xs:restriction base="xs:string">
<xs:pattern value="|[A-Z]{2}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
它的 xs:pattern
确实匹配零长度字符串或两个字符 A-Z 字符串。删除 <xs:maxLength value="2"/>
和 <xs:minLength value="2"/>
是处理零长度字符串所必需的。
我想弄清楚如何更改需要节点 "Initials" 的 XSD,它是空的或只有 2 个字符。
<xs:simpleType name="Initials">
<xsd:restriction base="xs:string">
<xs:maxLength value="2"/>
<xs:minLength value="2"/>
<xs:pattern value="[A-Z]+"/>
</xsd:restriction>
</xs:simpleType>
我应该将其设置为 nillable 吗?
您可以使用模式值 ([A-Z][A-Z])?
。
有样本XML喜欢
<root>AZ</root>
或
<root></root>
您的 XSD 可能如下所示:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root" type="Initials" />
<xs:simpleType name="Initials">
<xs:restriction base="xs:string">
<xs:pattern value="|[A-Z]{2}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
它的 xs:pattern
确实匹配零长度字符串或两个字符 A-Z 字符串。删除 <xs:maxLength value="2"/>
和 <xs:minLength value="2"/>
是处理零长度字符串所必需的。