Sprawdź poprawność pliku XML w wielu definicjach schematu
Próbuję zweryfikować plik XML pod kątem różnych schematów (przeprosiny za wymyślony przykład):
a.xsdb.xsdc.xsdc.xsd w szczególności importuje b.xsd i b.xsd importuje a.xsd, używając:
<xs:include schemaLocation="b.xsd"/>
Próbuję to zrobić za pośrednictwem Xerces w następujący sposób:
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)));
ale nie jest w stanie poprawnie zaimportować wszystkich trzech schematów, w wyniku czego nie można rozwiązać nazwy „bla” na składnik (n) „grupa”.
Sprawdziłem to pomyślnie, używającPyton, ale z prawdziwymi problemamiJava 6.0 iXerces 2.8.1. Czy ktoś może zasugerować, co się tutaj dzieje, lub łatwiejsze podejście do sprawdzania poprawności moich dokumentów XML?