Überprüfen Sie eine XML-Datei anhand mehrerer Schemadefinitionen

Ich versuche, eine XML-Datei anhand einer Reihe verschiedener Schemata zu validieren (entschuldige mich für das erfundene Beispiel):

a.xsdb.xsdc.xsd

c.xsd importiert insbesondere b.xsd und b.xsd importiert a.xsd unter Verwendung von:

<xs:include schemaLocation="b.xsd"/>

Ich versuche dies über Xerces auf folgende Weise zu tun:

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)));

Dies kann jedoch nicht alle drei Schemas korrekt importieren, was dazu führt, dass der Name 'blah' nicht in eine (n) 'Gruppen'-Komponente aufgelöst werden kann.

Ich habe dies erfolgreich mit validiertPython, aber echte Probleme mitJava 6.0 undXerces 2.8.1. Kann jemand vorschlagen, was hier falsch läuft, oder eine einfachere Methode, um meine XML-Dokumente zu validieren?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage