tengo un XML (first.xml) que se parece ::cómo manejar varios espacios de nombres con diferentes URI en 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>
La continuación XML (second.xml) es igual que el anterior pero con una espacio de nombres diferente
<?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>
Como tengo el mismo elemento y nombres de atributo, tanto en el xml de que estoy usando el mismo archivo xsd para validar ambos.
archivo 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">
Después de incluir xmlns: Jabón = "urn: //bi.webservices/v6" la validación del esquema fracasó por second.xml diciendo elemento desconocido "jabón: jobinfo". Busqué y encontré que el valor targetNamespace debe ser el mismo que el URI del espacio de nombres. Por favor, hágame saber cómo usar el mismo XSD para dos espacios de nombres diferentes que tengan diferentes URI.
@@ Petru: Muchas gracias por la respuesta. No puedo hacer un Chameleon.XSD, ya que hay muchos XSD. Por favor explícalo con un diagrama o con un ejemplo para que pueda entenderlo mejor. – prathima
@prathima, ya he actualizado mi respuesta, solo el tiempo ... Si tienes esquemas realmente complejos que incluyen otros espacios de nombres, entonces no puedes lograr lo que quieres, camaleón o no. La idea de un camaleón es asumir el espacio de nombres del esquema que lo compone. Por lo tanto, podría tener las mismas estructuras en diferentes espacios de nombres, sin tener duplicaciones. Una cosa para recordar es que un XSD = un espacio de nombres. –