почему некоторые схемы используют <xsd: choice> вместо <xsd: enumeration>? - PullRequest
3 голосов
/ 18 июня 2011

Я видел XML-схему ( EPP ), которая использовала xsd:choice с элементом, даже если вместо этого мы можем использовать xsd:enumeration:

 <element name="access" type="epp:dcpAccessType"/>
    <complexType name="dcpAccessType">
      <choice>
        <element name="all"/>
        <element name="none"/>
        <element name="null"/>
        <element name="other"/>
        <element name="personal"/>
        <element name="personalAndOther"/>
      </choice>
    </complexType>

, чтобы сделатьясный вопрос, я буду использовать этот пример вместо:

<element name="sport" type="sportType"/>

<!-- using choice-->
<complexType name="sportType">
  <choice>
    <element name="football"/>
    <element name="tennis"/>
  </choice>
</complexType>

<!-- Or using enumeration-->
<simpleType name="sportType">
  <restriction base="string">
    <enumeration value="football"/>
    <enumeration value="tennis"/>
  </restriction>
</simpleType>  

XML-пример с использованием этой схемы:

<!--using choice-->
<sport>
  <football/>
</sport>

<!--using enumeration-->
<sport>football</sport>

почему они предпочитают xsd:choiceвместо xsd:enumeration в этой ситуации ?

Спасибо

Ответы [ 2 ]

3 голосов
/ 18 июня 2011

Выбор для выбора между элементами, в то время как перечисление позволяет выбирать между набором значений.Значения могут быть строковыми, как в вашем примере, но если вы хотите перечислить несколько объектов-элементов, вам придется использовать выбор.

2 голосов
/ 18 июня 2011

почему они предпочитают xsd: choice вместо перечисления xsd: в этой ситуации?

Предположительно, они хотят тег вместо текстового содержимого в поддерживаемом xml.

Решение использовать тот или иной вопрос в значительной степени зависит от xml, который вы хотите поддерживать, поскольку они делают совершенно разные вещи.Какая форма XML предпочтительна, весьма субъективна.

См. Также связанный вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...