XSD SimpleType, который требует пустых или 2 символов - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь выяснить, как изменить 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?

Ответы [ 2 ]

1 голос
/ 18 июня 2019

С примером 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 соответствуетстрока нулевой длины или строка из двух символов AZ.Удаление <xs:maxLength value="2"/> и <xs:minLength value="2"/> было необходимо, чтобы позаботиться о строке нулевой длины.

1 голос
/ 18 июня 2019

Вы можете использовать значение шаблона ([A-Z][A-Z])?.

...