2013-05-27 5 views
2

При загрузке на сайт валидатора отображаются следующие ошибки: 1) s4s-elt-must-match.1: Содержимое «пиццы» должно соответствовать (аннотация ?, (simpleType | complexType) ?, (уникальный | ключ | keyref) *)). Проблема была найдена, начиная с: complexType. 2) cvc-complex-type.2.4.a: Недействительный контент был найден, начиная с элемента 'name'. Ожидается одна из «пиццы».Проверка правильности XML и XML

код выглядит следующим образом: XML:

<?xml version="1.0"?> 
<pizzamenu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:noNamespaceSchemaLocation="schemasnippet.xsd"> 
    <pizza id = "0011"/> 
    <name> Tal Fenek </name> 
    <price> 9.95 </price> 
<description>The application of Web protocols to Biology</description> 

</pizzamenu> 

Схема:

<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<xs:element name="pizzamenu"> 
    <xs:complexType> 
    <xs:sequence maxOccurs="unbounded"> 
     <xs:element name="pizza"> 
     <xs:complexType> 
       <xs:attribute name="id" type="xs:string" /> 

       </xs:complexType> 
     <xs:complexType> 
      <xs:sequence> 
      <xs:element name="name"> 

      </xs:element> <!-- name --> 
      <xs:element name="price"> 

      </xs:element> <!-- price --> 
      <xs:element name="description"> 
      </xs:element> <!-- description --> 
      </xs:sequence> 
     </xs:complexType> 
     </xs:element> <!-- pizza --> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> <!-- pizzamenu --> 
</xs:schema> 

Пожалуйста, помогите

ответ

1

Вы, кажется, есть проблемы в вашей схеме как и ваш XML.

В вашей схеме, судя по всему, делается попытка указать, что метки тега name, price и description должны содержаться внутри тега pizza. В вашем xml это не так.

Скорее всего XML должно быть что-то подобное:

<?xml version="1.0"?> 
<pizzamenu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:noNamespaceSchemaLocation="schemasnippet.xsd"> 
    <pizza id = "0011"> 
     <name> Tal Fenek </name> 
     <price> 9.95 </price> 
     <description>The application of Web protocols to Biology</description> 
    </pizza> 
</pizzamenu> 

Но ваша схема использует два <xs:complexType> теги определить один тип, который не работает. Один <xs:complexType> может использоваться для определения как атрибутов, так и содержимого вашего тега <pizza>, если атрибуты помещаются последним. Это означает, что ваша схема должна выглядеть следующим образом:

<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="pizzamenu"> 
     <xs:complexType > 
      <xs:sequence maxOccurs="unbounded"> 
       <xs:element name="pizza"> 
        <xs:complexType> 
         <xs:sequence> 
          <xs:element name="name"> 

          </xs:element> <!-- name --> 
          <xs:element name="price"> 

          </xs:element> <!-- price --> 
          <xs:element name="description"> 
          </xs:element> <!-- description --> 
         </xs:sequence> 
         <xs:attribute name="id" type="xs:string" /> 
        </xs:complexType> 
       </xs:element> <!-- pizza --> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> <!-- pizzamenu --> 
</xs:schema> 
+0

Я все еще получаю те же ошибки =/XML, действительно, схема, как представляется, проблема ... – user2410659

+0

Существует действительно также проблема схемы. См. Мой отредактированный ответ. –

+0

Большое вам спасибо :) – user2410659

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