problemi di spazio dei nomi dello schema XSD
-
14-10-2019 - |
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>
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