Ciao a tutti, documentandosi si può vedere come l'utilizzo dei namespace sia la soluzione a tutti i problemi per l'integrazione di più linguaggi XML.
Ho letto questa guida (http://xml.html.it/articoli/leggi/16...ei-namespaces/) ed ho capito che se io ho due dialetti XML e voglio integrarli si dice si possa fare come segue:
Allora ho a.xsd
Ecco un'istanza valida a.xml (validata correttamente con Eclipse). Ovviamente gli ho messo a.xsd nello stesso path.codice:<?xml version="1.0"?> <xs:schema targetNamespace="http://www.aURL.com/a" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.aURL.com/a" elementFormDefault="qualified"> <xs:element name="a" type="tns:aType" /> <xs:complexType name="aType"> <xs:sequence> <xs:element name="uno" type="xs:string" /> <xs:element name="due" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:schema>
Ora supponiamo di voler integrare il dialetto b. Ecco b.xsd:codice:<?xml version="1.0"?> <a xmlns="http://www.aURL.com/a" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.aURL.com/a a.xsd"> <uno>cc</uno> <due>cc</due> </a>
Di cui presento la solita istanza valida b.xml:codice:<?xml version="1.0"?> <xs:schema targetNamespace="http://www.aURL.com/b" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.aURL.com/b" elementFormDefault="qualified"> <xs:element name="b" type="tns:bType" /> <xs:complexType name="bType"> <xs:sequence> <xs:element name="due" type="xs:string" /> <xs:element name="tre" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:schema>
Il risultato dell'integrazione dovrebbe essere il seguente a_b.xmlcodice:<?xml version="1.0"?> <b xmlns="http://www.aURL.com/b" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.aURL.com/b b.xsd"> <due>cc</due> <tre>cc</tre> [/b]
eppure non valida.codice:<?xml version="1.0"?> <a xmlns="http://www.aURL.com/a" xmlns:nw="http://www.aURL.com/b" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.aURL.com/a a.xsd http://www.aURL.com/b b.xsd"> <uno>cc</uno> <due>cc</due> <nw:b> <nw:due>cc</nw:due> <nw:tre>cc</nw:tre> </nw:b> </a>
Ecco l'errore:
Description Resource Path Location Type
cvc-complex-type.2.4.d: Invalid content was found starting with element 'nw:b'. No child element is expected at this point.
Come mai?
Chiedo delucidazioni. Grazie Ciao!

Rispondi quotando