Xsd схемы имен имен пространства пространства
-
14-10-2019 - |
Вопрос
Как я могу «ожидать» элемента, чтобы иметь пространство имен с помощью XSD? На этом этапе я получаю ошибку, в которой говорится: «Неверное содержание было найдено, начиная с элемента« ns: person ». Один из« {»:« человек} »ожидается».
Как видите, я определяю name
атрибут на xs:element
: "человек". Если я определю "ns: человек" как name
Тогда я получаю ошибку, что имя недействительное.
Что мне здесь не хватает?
Это xsd (ns.xsd):
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="peoples">
<xs:complexType>
<xs:sequence>
<xs:element name="person"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Это XML (peoples.xml):
<?xml version="1.0" encoding="ISO-8859-1"?>
<peoples xmlns:ns="url" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ns.xsd">
<ns:person>
<name>John</name>
</ns:person>
</peoples>
Решение
Вы должны включить полный XSD, чтобы помочь вам. Но из -за ошибки, которую я вижу, и того факта, что вы включили «XSI: Nonamespacesschemalocation» в ваш документ экземпляра XML, проблема, которую я вижу, заключается в том, что вы определили свою схему с помощью Нет TargetNamesPace указано, но вы квалифицируете человек Элемент с префиксом пространства имен. Просто удалите "NS:" Во всех местах в вашем документе экземпляра, и все хорошо.