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"/> 是处理零长度字符串所必需的。