Как иметь несколько элементов в любом порядке? - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть это 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...