Domanda

Come faccio 'aspetto' un elemento di avere uno spazio dei nomi utilizzando XSD? A questo punto viene visualizzato un errore che dice: "contenuto non valido è stato trovato a partire da elementi 'NS: persona' Uno dei '{ ': Persona}.''. È previsto"

Come si può vedere io definisco l'attributo name sul xs:element: "persona". Se io definisco "ns: persona". Come la name allora ottengo un errore che il nome è Aaarghh valido

Che cosa mi manca qui?

Questo è il 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>

Questo è il 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>
È stato utile?

Soluzione

È necessario includere il XSD completa per aiutarvi. Ma l'errore che vedo e il fatto di aver incluso "xsi: noNamespaceSchemaLocation" nel documento XML esempio, il problema che vedo è che si è definito lo schema con non targetNamespace è specificato, ma si sta qualificanti < strong> persona elemento con un prefisso dello spazio dei nomi. Basta rimuovere "ns". A tutti i posti nel documento istanza e siete tutti buoni

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top