Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

I am trying to resolve this issue but could not understand the root cause of this error:

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

Here is my 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> 

and xsd file for this is:

<?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> 
like image 495
nwzhaider Avatar asked Jun 18 '13 15:06

nwzhaider


1 Answers

As written, your schema expects the "global" countries, name and city elements to be in the http://localhost:8080/ajaxprac namespace, but the "local" elements (those declared inside a complexType, i.e. country and cities) to be in no namespace. You probably want to add elementFormDefault="qualified", i.e.

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

which applies the targetNamespace to local, as well as global, element declarations.

like image 159
Ian Roberts Avatar answered Sep 27 '22 03:09

Ian Roberts