Valide un archivo XML contra múltiples definiciones de esquema
Estoy tratando de validar un archivo XML contra una serie de esquemas diferentes (disculpas por el ejemplo creado):
a.xsdb.xsdc.xsdc.xsd en particular importa b.xsd y b.xsd importa a.xsd, usando:
<xs:include schemaLocation="b.xsd"/>
Estoy tratando de hacer esto a través de Xerces de la siguiente manera:
XMLSchemaFactory xmlSchemaFactory = new XMLSchemaFactory();
Schema schema = xmlSchemaFactory.newSchema(new StreamSource[] { new StreamSource(this.getClass().getResourceAsStream("a.xsd"), "a.xsd"),
new StreamSource(this.getClass().getResourceAsStream("b.xsd"), "b.xsd"),
new StreamSource(this.getClass().getResourceAsStream("c.xsd"), "c.xsd")});
Validator validator = schema.newValidator();
validator.validate(new StreamSource(new StringReader(xmlContent)));
pero esto falla al importar los tres esquemas correctamente, lo que resulta en que no se puede resolver el nombre 'blah' a un (n) 'grupo' componente.
He validado esto con éxito usandoPitón, pero teniendo problemas reales conJava 6.0 yXerces 2.8.1. ¿Alguien puede sugerir qué está mal aquí o un enfoque más sencillo para validar mis documentos XML?