Ошибка проверки XML-схемы - PullRequest
2 голосов
/ 16 апреля 2009

Я использую следующую схему для проверки следующего XML-файла. И я обнаружил, что если в элементах People есть несколько элементов Information, проверка схемы завершится неудачей. Почему и как это исправить (я хочу, чтобы элемент People мог вкладывать более одного информационного элемента)?

Файл XML-схемы:

  <xs:element name="People">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Information">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Name" type="xs:string"/>
            </xs:sequence>
            <xs:attribute name="Id" type="xs:string"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

XML-файл (проверка схемы не удалась):

  <People>
    <Information Id="1">
      <Name>John</Name>
    </Information>
    <Information Id="2">
      <Name>Mike</Name>
    </Information>
  </People>

XML-файл (проверка схемы будет успешной):

  <People>
    <Information Id="1">
      <Name>John</Name>
    </Information>
  </People>

спасибо заранее, George

Ответы [ 2 ]

6 голосов
/ 16 апреля 2009

Если вы не указали minOccurs и maxOccurs с последовательностью, значение по умолчанию равно 1.

<xs:element name="Information" minOccurs = "1" maxOccurs = "unbounded">
4 голосов
/ 16 апреля 2009
<xs:element name="People">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="unbounded" name="Information">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Name" type="xs:string"/>
            </xs:sequence>
            <xs:attribute name="Id" type="xs:string"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

Попробуйте, это точно будет работать

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