Pregunta

¿Cómo se esperaba '' un elemento a tener un espacio de nombres XSD usando? En este punto, recibo un error que dice: "que se encontró contenido no válido a partir de elementos 'ns: persona Uno de '{ ': persona}.''. Se espera"

Como se puede ver defino el atributo name en el xs:element: "persona". Si defino "ns: persona". Como el name entonces consigo un error que el nombre es válido aaarghh

¿Qué me estoy perdiendo aquí?

Este es el 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>

Este es el 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>
¿Fue útil?

Solución

Es necesario incluir el XSD completo para ayudarle. Pero a partir del error que veo y el hecho de que ha incluido "xsi: noNamespaceSchemaLocation" en su documento de instancia XML, el problema que veo es que ha definido el esquema con no targetNamespace especificado, pero haya calificado < strong> persona con un prefijo de espacio de nombres. Basta con retirar "ns:". En todos los lugares en su documento de instancia y que está todo bien

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top