Определение элемента с помощью 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
элементы и назвать это днем, но потом я понял, что это не допускается. Любая помощь будет принята с благодарностью.