У меня есть это XML
<contacts>
<entry id="10">
<commonName>Susan Sonntag</commonName>
<tel>+844332232323</tel>
<email>susan23@evermail.com</email>
<email>susa112@private.uk</email>
</entry>
<entry id="20">
<commonName>John Balber</commonName>
<email>balber@hatebook.com</email>
<tel>017297123232</tel>
<email>home@balber.org</email>
</entry>
<entry id="25">
<commonName>Mary Palmer</commonName>
<tel>017297123232</tel>
</entry>
</contacts>
Я хочу, чтобы <tel>
и <email>
встречались в любом порядке, а также необязательно (ноль или неограниченно). Я сделал это с xs:choice maxOccurs="unbounded"
, но я не уверен, действительно ли это. Он действителен, хотя и не уверен, что это правильный путь.
<xs:choice maxOccurs="unbounded">
<xs:element name="tel" type="telType"/>
<xs:element name="email" type="emailType"/>
</xs:choice>
AFAIK xs:choice
означает, что я могу использовать только один из них, но maxOccurs="unbounded
позволяет мне использовать все из них в любом порядке.
Это разрешено? Если нет, есть ли другой способ?
Я не совсем уверен, что именно делает xs:choice
. Означает ли это, что порядок не имеет значения, или я могу использовать один элемент?
А что именно является xs:choice minOccurs="0" maxOccurs="unbounded"
? Означает ли это, что я могу использовать 0 для неограниченного количества элементов?
И как насчет этого?
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:choice>
...
</xs:choice>
</xs:sequence>