我正在驗證針對多個XSD模式的xml實例。如果驗證失敗,我想確定xml實例失敗的模式。 SAXParseException
不包含足夠的信息來確定這一點。確定哪個XSD XML實例在驗證過程中失敗
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
Source[] sources = getXsdSources();
Schema schema = factory.newSchema(sources);
Validator validator = schema.newValidator();
try {
validator.validate(input);
} catch (SAXParseException e) {
// Error handling.
}
我最終重構了我的驗證過程,只傳遞了根名稱空間的模式。儘管我仍然無法確定它是主模式還是導入模式,但我認爲將它們指向根模式總比沒有好。我看着Xerces,它可能會工作,但還沒有嘗試過實施它。 –