最近使用javax.xml.validation.Validator及Schema对XML Document进行校验,但是遇到了一个问题:同样的代码在Oracle JDK下运行成功,但是在IBM JDK下就报错:
org.xml.sax.SAXParseException: cvc-elt.1:找不到元素“root”的声明。
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
at org.apache.xerces.jaxp.validation.DOMValidatorHelper.beginNode(Unknown Source)
at org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown Source)
at org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown Source)
at org.apache.xerces.jaxp.validation.ValidatorImpl.validate(Unknown Source)
at javax.xml.validation.Validator.validate(Unknown Source)
at albert.yao.xml.ValidateXMLDocument.main(ValidateXMLDocument.java:63)
应该是namespace设置的问题,折腾了几天,只能先用Oracle的JDK了,等后面有时间再研究