Ho un XML (first.xml) che sembra ::come gestire più domini con differenti URI in XSD
<?xml version="1.0" encoding="utf-8"?>
<saw:jobInfo xmlns:saw="com.analytics.web/report/v1.1">
<saw:jobStats>...........</saw:jobStats>
<saw:detailedInfo> .....</saw:detailedInfo>
<saw:fileInfo>..........</saw:fileInfo>
</saw:jobInfo>
XML di seguito (second.xml) è lo stesso come sopra, ma con un spazio dei nomi diverso.
<?xml version="1.0" encoding="utf-8"?>
<soap:jobInfo xmlns:soap="urn://bi.webservices/v6">
<soap:jobStats>...........</saw:jobStats>
<soap:detailedInfo> .....</saw:detailedInfo>
<soap:fileInfo>..........</saw:fileInfo>
</soap:jobInfo>
Come ho lo stesso elemento e nomi degli attributi in entrambe le XML di sto usando lo stesso file XSD per convalidare entrambi.
file XSD ::
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="com.analytics.web/report/v1.1"
xmlns="com.analytics.web/report/v1.1"
xmlns:saw="com.analytics.web/report/v1.1"
xmlns:soap="urn://bi.webservices/v6"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
Dopo aver incluso xmlns: soap = "urn: //bi.webservices/v6" la convalida dello schema non riuscita per second.xml dicendo elemento unkown "soap: jobinfo". Mi sono girato e ho trovato che il valore targetNamespace dovrebbe essere uguale all'URI dello spazio dei nomi. Per favore fatemi sapere come usare lo stesso XSD per due diversi namespace con URI diversi.
@@ Petru: Grazie mille per la risposta. Non riesco a creare un Chameleon.XSD in quanto vi sono molti XSD. Per favore spiegalo con un diagramma o con un esempio in modo che io possa capirlo meglio. – prathima
@prathima, ho aggiornato la mia risposta, solo il tempismo ... Se hai schemi davvero complessi che includono altri spazi dei nomi, allora non puoi ottenere ciò che vuoi, Camaleonte o no. L'idea di un camaleonte è di assumere lo spazio dei nomi dello schema che lo compone. Quindi potresti avere le stesse strutture in spazi dei nomi diversi, senza duplicazioni. Una cosa da ricordare è che uno XSD = uno spazio dei nomi. –