Определение элемента с помощью XMLSchema, который принимает либо текстовые, либо дочерние теги?

Итак, у меня возникла эта проблема при определении XMLSchema для определенного элемента. В основном проблема в том, что XML может иметь<STREET> тег, который либо содержит строку, либо вложенные теги, которые представляют улицу, НО не то и другое вместе, например:

Просто текст с заранее заданным шаблоном:

<ADDRESS>Hollywood St.75</ADDRESS>

Или вложенные теги, обозначающие улицу:

<ADDRESS>
  <STREET>
    Hollywood
  </STREET>
  <NUMBER>
    75
  </NUMBER>
</ADDRESS>

Соответственно, я определил соответствующие настраиваемые типы в соответствии с требованиями, и они следующие:

Простой тип почтового адреса:

<xsd:simpleType name="SimpleAddressType">
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="[a-zA-Z ]+ St\. ?[0-9]{1,2}" />
  </xsd:restriction>
</xsd:simpleType>

Сложный тип для тегов Street + Number:

<xsd:complexType name="ComplexAddressType">
  <xsd:sequence>
    <xsd:element name="STREET" type="xsd:string" />
    <xsd:element name="NUMBER" type="xsd:integer" />
  </xsd:sequence>
</xsd:complexType>

И это та часть, в которой я застрял, поскольку понятия не имею, как определить такой вариант использования. Моя общая идея заключалась в том, чтобы добавить оба типа вxsd:choice теги как ADDRESSэлементы и назвать это днем, но потом я понял, что это не допускается. Любая помощь будет принята с благодарностью.

0 ответов

Другие вопросы по тегам