Мне нужно проверить XML с некоторыми необходимыми и некоторыми неизвестными элементами.
Проблема в том, что xs:any
ожидает быть внутри xs:sequence
Также применяется правило UPA *1012* (относится ли неизвестный элемент к xs:any
или к необязательному элементу minOccurs="0"
?).
XML:
<person>
<name>John</name> <!-- required -->
<address>Lane 1</address> <!-- optional -->
<unknown>someValue</unknown> <!-- unknown -->
<status>1</status> <!-- required -->
</person>
Мой лучший снимок (на самом деле: мое желание, как это должно работать):
<xs:complexType name="person">
<xs:sequence>
<xs:element name="name" minOccurs="1" maxOccurs="1" />
<xs:element name="address" minOccurs="0" maxOccurs="1" />
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
<xs:element name="status" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
Но, согласно всей документации, это не разрешено.
Я также пробовал разные способы вложения, например ::1010 *
<xs:all>
<xs:sequence>
Однако я пока не смог найти решение.
У кого-нибудь есть решение, как совместить обязательные с неизвестными элементами?