Было обнаружено недопустимое содержимое, начинающееся с элемента "страна". Ожидается одна из "стран".. Строка "10", Колонка "14"
Я пытаюсь решить эту проблему, но не могу понять основную причину этой ошибки:
Недопустимый контент был найден, начиная с элемента стране''. Ожидается один из " {страна}".. Строка '10', Столбец ' 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>
1 ответ:
Как написано, ваша схема ожидает "глобального"
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
к локальным, а также глобальным объявлениям элементов.