XML-схема для ограничения дочернего узла - PullRequest
0 голосов
/ 02 мая 2011

Мне нужно создать XML-схему, в которой все узлы <foo> должны содержать одно или несколько вхождений только <c1> или одно вхождение <c2> только следующим образом.1007 *

<main>
  <foo>
    <a></a>
    <b></b>
    <c2></c2>
  </foo>
  <foo>
    <a></a>
    <b></b>
    <c2></c2>
  </foo>
  <foo>
    <a></a>
    <b></b>
    <c2></c2>
  </foo>
</main>

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 04 мая 2011

Если у вас ситуация "или - или", ваше решение обычно <xs:choice>. Используйте атрибуты maxOccurs и minOccurs, чтобы ограничить, сколько раз элемент может появляться. Значением по умолчанию для этих атрибутов является «1», которое используется, если вы не добавляете эти атрибуты.

Пример кода для определения элемента <foo>. Обратите внимание на использование <xs:choice> и maxOccurs="unbounded"

<xs:element name="foo">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="a" type="xs:string />
            <xs:element name="b" type="xs:string />
            <xs:choice>
                <xs:element name="c1" maxOccurs="unbounded" type="xs:string />
                <xs:element name="c2" type="xs:string />
            </xs:choice>
        </xs:sequence>
    </xs:complexType>
</xs:element>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...