Xsd схемы имен имен пространства пространства

StackOverflow https://stackoverflow.com/questions/4558997

  •  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:" Во всех местах в вашем документе экземпляра, и все хорошо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top