6
如何使用JAXP驗證針對XML Schema的(已解析的)org.w3c.dom.Document
?JAXP:如何根據XML Schema驗證org.w3c.dom.Document
如何使用JAXP驗證針對XML Schema的(已解析的)org.w3c.dom.Document
?JAXP:如何根據XML Schema驗證org.w3c.dom.Document
您可以使用javax.xml.validation API。
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
URL schemaURL = // The URL to your XML Schema;
Schema schema = sf.newSchema(schemaURL);
Validator validator = schema.newValidator();
DOMSource source = new DOMSource(xmlDOM);
validator.validate(source);
下面的例子演示瞭如何來驗證架構JAXB對象模型,但你會看到它很容易與DOMSource的更換JAXBSource爲DOM:
謝謝布萊斯。雖然與問題沒有直接關係,但我還想問問另一個問題:如果指定的Schema(已由StreamSource傳遞給SchemaFactory)包含另一個僅作爲ClassLoader資源提供的模式,該怎麼辦?不幸的是,傳遞兩個StreamSource不起作用。 – MRalwasser 2011-03-02 16:53:47
@MRalwasser - 請參閱'SchemaFactory.setResourceResolver'。在javadocs中有各種各樣的偉大信息... – jtahlborn 2011-03-02 16:58:12
@jtahlbborn:謝謝,這工作。但是:似乎在驗證文檔時,模式默認值不被遵守,文檔及其節點保持不變。 – MRalwasser 2011-03-02 17:45:56