Я пытаюсь прочитать файл XML, но он продолжает выдавать эту ошибку:
cvc-complex-type.2.4.a: Обнаружено недопустимое содержимое, начиная с элемента «контакт». Ожидается один из '{contact}'.
номер строки: 2; номер столбца: 68; cvc-elt.1: Не удается найти объявление элемента «контакты».]
Я обыскал сеть, чтобы найти ответы. Если я удалю свой targetNamespace
, то он не жалуется на поиск элементов, а начинает жаловаться на то, что не может найти мои пользовательские типы, объявленные в пространстве имен tns
.
Я проверяю это здесь: http://www.corefiling.com/opensource/schemaValidate.html а>
Я использую JAXB, чтобы убедиться, что документ соответствует его схеме.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.example.com/ContactsSchema"
xmlns:tns="http://www.example.com/ContactsSchema">
<xs:element name="contacts" type="tns:Contacts" />
<xs:complexType name="Contacts">
<xs:sequence>
<xs:element name="contact" type="tns:Contact" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
</xs:complexType>
<xs:complexType name="Contact">
<xs:sequence>
<xs:element name="id" type="xs:long"/>
<xs:element name="firstName" type="xs:string" />
<xs:element name="lastName" type="xs:string" />
<xs:element name="firstName" type="xs:string" />
<xs:element name="address" type="tns:Address" />
<xs:element name="favorite" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Address">
<xs:sequence>
<xs:element name="street" type="xs:string" />
<xs:element name="city" type="xs:string" />
<xs:element name="state" type="xs:string" />
<xs:element name="zip" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<contacts xmlns="http://www.oracle.com/ContactsSchema" name="Test">
<contact id="1">
<firstName>Herman</firstName>
<lastName>Munster</lastName>
<address>
<street>1313 Mockingbird Lane</street>
<city>Camelot</city>
<state>NJ</state>
<zip>15490</zip>
</address>
<favorite>true</favorite>
</contact>
<contact id="2">
<firstName>Al</firstName>
<lastName>Bundy</lastName>
<address>
<street>9764 Jeopardy Lane</street>
<city>Chicago</city>
<state>IL</state>
<zip>60629</zip>
</address>
<favorite>false</favorite>
</contact>
</contacts>
xsi:schemaLocation="http://www.oracle.com/ContactsSchema ContactsSchema.xsd"
16.01.2014it begins to complain about how it cannot find my custom types declared in the tns namespace
... установки пространства имен XML по умолчанию (в файле XSD, т.е. xmlns), равного targetNamespace, в элементе схемы... считается лучшей практикой, избавляющей вас от необходимости использовать a tns, и, кроме того, это значительно упрощает обращение и чтение XSD... 16.01.2014