我的输入是格式良好的XML文档和相应的XML Schema文档.我想要做的是确定XML文档中的位置,导致它无法验证XML Schema文档.我无法弄清楚如何使用Java中的标准验证方法来做到这一点:
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(... /* the .xsd source */);
Validator validator = schema.newValidator();
DocumentBuilderFactory ...
DocumentBuilder ...
Document document = DocumentBuilder.parse(... /* the .xml source */);
try {
validator.validate(new DOMSource(document));
...
} catch (SAXParseException e) {
...
}
Run Code Online (Sandbox Code Playgroud)
我已经玩弄了至少从SAXParseException获取行号和列号的想法,但是在验证错误时它们总是设置为-1,-1.