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>
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With