2016-04-18 4 views
-2

Я пытаюсь проверить свой документ xml с помощью схемы xsd.XML validation againts XSD

Я использую эту страницу http://www.freeformatter.com/xml-validator-xsd.html, и я получаю сообщение об ошибке: «S4s-elt-must-match.1: Содержимое« последовательности »должно соответствовать (аннотация ?, (элемент | Группа | Выбор | Последовательность | Любой) *). Проблема была найдена, начиная с: ComplexType. "

Вот XML http://wklej.org/id/2303662/, здесь XSD: http://wklej.org/id/2303799/

Можете ли вы помочь мне исправить эту ошибку? Я думаю, это проблема с элементом Address.

+1

Пожалуйста, создайте [mcve] *** в теле вопроса ***. Ссылки на внешние XML и XSD неприемлемы, потому что эти ссылки могут сломаться в будущем, оставив ваш вопрос и наши ответы бесполезными для будущих читателей. – kjhughes

ответ

1

Заменить:

<xs:element name="Address" type="addressType"/> 
<xs:complexType > 
<xs:sequence> 
<xs:element name="street" type="streetType"/> 
<xs:element name="home" type="homeType"/> 
<xs:element name="city" type="cityType"/> 
<xs:element name="country" type="countryType"/> 
<xs:element name="code" type="codeType"/> 
</xs:sequence> 
</xs:complexType> 
</xs:sequence> 
</xs:complexType> 
</xs:element> 
<xs:complexTypeType name="addressType"> 
</xs:complexTypeType> 

с:

<xs:element name="Address" type="addressType"/> 
</xs:sequence> 
</xs:complexType> 
</xs:element> 
<xs:complexType name="addressType"> 
<xs:sequence> 
<xs:element name="street" type="streetType"/> 
<xs:element name="home" type="homeType"/> 
<xs:element name="city" type="cityType"/> 
<xs:element name="country" type="countryType"/> 
<xs:element name="code" type="codeType"/> 
</xs:sequence> 
</xs:complexType> 

Схема должна затем быть действительным.

Файл XML не будет действительным, хотя, как

<code>72-864</code> 

не соответствует ожидаемому шаблон в вашей схеме:

<xs:pattern value="[0-9]{5}(-[0-9]{4})?"/> 

Я не знаю, что правильно.

0

Заменить следующее:

<xs:element name="person"> 
    <xs:complexType> 
     <xs:sequence minOccurs="0" maxOccurs="unbounded"> 
      <xs:element name="firstname" type="namesType"/> 
      <xs:element name="lastname" type="namesType"/> 
      <xs:element name="birthdate" type="birthType"/> 
      <xs:element name="PESEL" type="peselType"/> 
      <xs:element name="sex" type="sexType"/> 
      <xs:element name="Address" type="addressType"/> 
      <xs:complexType > 
       <xs:sequence> 
        <xs:element name="street" type="streetType"/> 
        <xs:element name="home" type="homeType"/> 
        <xs:element name="city" type="cityType"/> 
        <xs:element name="country" type="countryType"/> 
        <xs:element name="code" type="codeType"/> 
       </xs:sequence> 
      </xs:complexType> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

<xs:complexType name="addressType"> 
</xs:complexType> 

С:

<xs:element name="person"> 
     <xs:complexType> 
      <xs:sequence minOccurs="0" maxOccurs="unbounded"> 
       <xs:element name="firstname" type="namesType"/> 
       <xs:element name="lastname" type="namesType"/> 
       <xs:element name="birthdate" type="birthType"/> 
       <xs:element name="PESEL" type="peselType"/> 
       <xs:element name="sex" type="sexType"/> 
       <xs:element name="Address" type="addressType"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
<xs:complexType name="addressType"> 
    <xs:sequence> 
     <xs:element name="street" type="streetType"/> 
     <xs:element name="home" type="homeType"/> 
     <xs:element name="city" type="cityType"/> 
     <xs:element name="country" type="countryType"/> 
     <xs:element name="code" type="codeType"/> 
    </xs:sequence> 
</xs:complexType> 

И как сказал ChrisC, элемент не будет проверять с текущим шаблоном.