XML-схема для проверки неупорядоченных элементов XML-документа - PullRequest
1 голос
/ 19 января 2012

Я пишу XML-схему для проверки XML-документа.Я придерживался определения некоторого содержимого complexType для некоторых неупорядоченных элементов данных XML.

Данные XML отображаются следующим образом:

<country name="India">
    <state name="Karnataka">
        <!-- about state -->
        <capital>Bangalore</capital>
        <largestCity>Bangalore</largestCity>
        <districts>30</districts>
        <population>61130704</population>
        <language>Kannada</language>

        <!-- cities in state -->
        <city name="Bijapur">
            <talukas>30</talukas>
            <population>611307</population>
        </city>
        <city name="Belgaum">
                <talukas>30</talukas>
                <population>6113070</population>
        </city>

        <!-- cities will be listed here -->
    </state>

    <state name="Maharashtra">
        <!-- about state -->
        <largestCity>Mumbai</largestCity>
        <capital>Mumbai</capital>
        <population>112372972</population>
        <language>Marathi</language>
        <districts>35</districts>

        <!-- cities in state -->
        <!-- cities will be listed here -->

    </state>
</country>

Как показано в данных XML выше, первые пять элементов под каждымТег 'state' может появляться в любом порядке.

Может кто-нибудь помочь мне написать определение схемы XML для такого рода входных данных.Я пытался написать что-то вроде этого:

<xs:group name="stateElements">
      <xs:all>
         <xs:element name="capital" type="xs:string"/>
          ....
   <xs:all>
</xs:group>
<xs:element name="state">
   <xs:complexType>
      <xs:sequence>
         <xs:group ref="stateElements"/>
         <xs:element name="city" type="cityType" maxOccurs="unbound"/>
      </xs:sequence>
   <xs:complexType>
<xs:element>

Это не работает.

Заранее спасибо

1 Ответ

0 голосов
/ 19 января 2012

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

Ограничение, которое вы должны обойти, состоит в том, что любая частица в compositor не должна повторяться (maxOccurs = "1").

...