我正在創建一個XML驗證器,它將根據特定模式驗證XML。我正在使用OASIS模式來驗證針對該模式的斷言。下面是將模式傳遞給SchemaFactory並且架構對象已創建時使用xenc的模式:未導入EncryptedData元素,導入模式中存在xenc-schema.xsd「問題,同時驗證XSD格式良好的XML
當我創建的SchemaFactory的實例,並嘗試加載模式,它是無法找到在上述模式中導入的模式:
XML is not valid because
src-resolve: Cannot resolve the name 'xenc:EncryptedData' to a(n) 'element declaration' component.
如何解決進口創建模式對象當SchemaFactory的模式應該能夠找到導入的模式?下面是我寫的代碼:
...
System.out.println("Executing the value");
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Source schemaFile = new StreamSource(new File("D:\\saml-schema-assertion- 2.0.xsd"));
Schema schema = sf.newSchema(schemaFile);
Validator validator = schema.newValidator();
validator.setErrorHandler(new SAMLErrorHandler());
validator.validate(new StreamSource(new File("D:\\Saml.xml")));
System.out.println("XML is valid");
} catch (IOException ex) {
} catch (SAXException e) {
System.out.println("XML is not valid because ");
System.out.println(e.getMessage());
}
我正在尋求答覆。
我使用綠洲架構的一部分,在共享//docs.oasis-open.org/security/saml/v2.0/saml-schema-assertion-2.0.xsd –