Как смешивать индикаторы в XSD - PullRequest
1 голос
/ 14 октября 2010

У меня есть следующий фрагмент XML

<restriction>
    <name>notempty</name>
    <field>title</field>
</restriction>

, который подтвержден этим XSD

<xs:element name="restriction" maxOccurs="unbounded">
    <xs:complexType>
        <xs:all>
            <xs:element name="name" type="xs:string" minOccurs="1" />
            <xs:element name="field" type="xs:string" />
        </xs:all>
    </xs:complexType>
</xs:element>

Мне нужно изменить XSD, чтобы он также подтвердил следующее:

<restriction>
   <name>notempty</name>
   <fields>
       <field>title</field>
       <field>info</field>
   </fields>
</restriction>

Видимо, xs: выбор используется для такого рода вещей, но я не уверен, как это включить Есть идеи?

1 Ответ

0 голосов
/ 14 октября 2010

Вам нужно изменить all на sequence и создать выбор между field и fields. В разделе 2.7 построение моделей контента Учебника по XML-схемам приведен пример использования последовательности и выбора таким способом.

Я бы также рекомендовал определить field в другом месте и использовать xs:element/@ref дляукажите на это, чтобы не повторять.

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