2009-04-16 2 views
2

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

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

ответ

6

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

<xs:element name="Information" minOccurs = "1" maxOccurs = "unbounded"> 
+0

Спасибо Mork0075, ваша затруднительную работу. Я хочу подтвердить, что по умолчанию, если не указывается min/max, элемент может существовать один раз и только один раз? – George2

+0

Да, значение по умолчанию для обоих, min и maxoccurs равно 1. И это в прозе «существует ровно один раз и только один раз». – Mork0075

+0

@ Mork0075, крутой вопрос ответ. – George2

4
<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> 

Попробуйте это будет работать наверняка

+0

Спасибо, Прашант, ваше исправление работает. Я хочу подтвердить, что по умолчанию, если не указывается min/max, элемент может существовать один раз и только один раз? – George2

Смежные вопросы