2013-06-18 2 views
21

Я пытаюсь решить эту проблему, но не мог понять причину этой ошибки:Недействительный контент был найден, начиная с элемента «страна». Одна из «{страна}» Ожидается, .. Line «10», Column «14»

Invalid Content Was Found Starting With Element 'country'. One Of '{country}' Is Expected.. Line '10', Column '14'

Вот мой XML:

<?xml version="1.0"?> 
<!--DTD file reference--> 
<!--<!DOCTYPE countries SYSTEM "http://localhost:8080/ajaxprac/file.dtd">--> 

<!--DTD file reference--> 
<!----> 
<countries xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns="http://localhost:8080/ajaxprac" 
      xsi:schemaLocation="http://localhost:8080/ajaxprac fileSchema.xsd"> 
    <country> 
     <name>pakistan</name> 
     <cities> 
      <city>Kassowal</city> 
      <city>Faisalabad</city> 
      <city>Multan</city> 
     </cities> 
    </country> 
    <country> 
     <name>india</name> 
     <cities> 
      <city>Agra</city> 
      <city>Amritsar</city> 
      <city>Ayodhya</city> 
     </cities> 
    </country> 
</countries> 

и XSD-файл для этого:

<?xml version="1.0"?> 
<!-- 
To change this template, choose Tools | Templates 
and open the template in the editor. 
--> 

<xs:schema version="1.0" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="http://localhost:8080/ajaxprac" 
      xmlns="http://localhost:8080/ajaxprac"> 

    <xs:element name="countries" type="countriesType"/> 
    <xs:element name="name" type="xs:string"/> 
    <xs:element name="city" type="xs:string"/> 

    <xs:complexType name="countriesType"> 
     <xs:sequence> 
      <xs:element name="country" type="countryType"/> 
     </xs:sequence> 
    </xs:complexType> 

    <xs:complexType name="countryType"> 
     <xs:sequence> 
      <xs:element ref="name"/> 
      <xs:element name="cities" type="citiesType"/> 
     </xs:sequence> 
    </xs:complexType> 

    <xs:complexType name="citiesType"> 
     <xs:sequence> 
      <xs:element ref="city"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:schema> 

ответ

33

Как написано, ваша схема ожидает "глобального" countries, name и city элементов, которые должны быть в пространстве имен http://localhost:8080/ajaxprac, но «локальные» элементы (те, которые указаны внутри complexType, то есть country и cities) находятся в no пространство имен. Вы, вероятно, хотите добавить elementFormDefault="qualified", т.е.

<xs:schema version="1.0" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="http://localhost:8080/ajaxprac" 
      xmlns="http://localhost:8080/ajaxprac" 
      elementFormDefault="qualified"> 

который применяет targetNamespace к местным, а также декларации глобальных, элементов.

+0

Thanks Ian Roberts :-). Я трачу два дня на этот вопрос, и ваша помощь решает мою проблему. elementFormDefault = «квалифицированный» отсутствовал: -p – nwzhaider

+2

Спасибо, ты спас мой день. Теперь я могу вернуться с работы. :) –

+0

Трудно поверить, насколько неправдоподобно, что сообщение об ошибке LOL. Во всяком случае, ваш совет был прав - у меня был «глобальный» окружающий тег с xmlns =, у которого не было префикса. Добавляя префикс к глобальному тегу и его xmlns и альте, проблема решена. – rogerdpack

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

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