2013年5月31日 星期五

學習新知java validate xml API

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檔使用其內部資源來解決問題。

沒有留言:

張貼留言