java validate xml API 應用來驗證XML validate,一般來說,如果驗證一份XML文件如果只使用一份Schema時程式碼如下:
DocumentBuilder parser=DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = parser.parse(new File("instance.xml"));
SchemaFactory factory=SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Source schemaFile = new StreamSource(new File("mySchema.xsd"));
Schema schema = factory.newSchema(schemaFile);
Validator validator = schema.newValidator();
try {
validator.validate(new DOMSource(document));
}
catch (SAXException e)
{
// instance document is invalid!
}
只需要輸入一份XSD檔即可,但是如果是多份schema來驗證一份XML文件且這些schema都有互相關聯,那麼直接套用API季會有錯誤,匯音樂讀取不到<xs:include> ...等造成驗證錯誤。
到網路上搜尋相關解決方法,發現說原來這個錯誤是一個BUG,根據此篇說法可以增加ResourceResolver的程式碼解決這個BUG。或者匯入第3方Jar檔使用其內部資源來解決問題。
沒有留言:
張貼留言