- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用 SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI) 中的 javax.xml.validation.Validator 来执行 XSD 验证。
我希望能够针对验证错误返回更好的错误消息。我目前得到的是: org.xml.sax.SAXParseException: cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'TypeCode'.
是否可以打印出哪个元素或 xml 片段未通过验证的错误?
*编辑:我正在使用标准的 java6 xml 解析器*Edit2:抱歉没有提及 - 我正在使用 JAXB 通过内容处理程序和监听器读取 XML(因为 XML 大多数时候大于 1GB)。
最佳答案
可能不适用于您正在使用的 validator (也许是 Xerces 使用的?)。还有其他 validator ,例如 Sun 的 Multi-Schema Validator,但我不知道是否有任何具有特别好的模式验证错误消息。对于 DTD 验证,Woodstox 有更好的异常消息,但对于 XML Schema 验证,它依赖于 MSV。
然而;即使是默认的解析器/validator 也应该能够为您提供实际的错误位置(或附近的位置)。如果没有错误消息,您至少应该能够通过注册 SAX 监听器来跟踪前面的位置,因为您正在使用的 validator 正在使用 SAX API。
关于java xml 验证 : getting a better validation error description,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3956743/
我是一名优秀的程序员,十分优秀!