[英]Issue while Validating the well formed XML against XSD
我正在创建一个XML验证器,该验证器将针对特定模式验证XML。 我当前正在使用OASIS架构来验证针对该架构的声明。以下是将其传递给SchemaFactory并创建架构对象然后未解析的xenc:EncryptedData元素(存在于导入的架构xenc-schema.xsd中)。
当我创建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());
}
我正在寻找答案。
似乎未在您的XML文件中声明xenc
命名空间,或者至少未声明整个元素xenc:EncryptedData
。 请发布您的XML文件。 我在XSD文件中看不到EncryptedData
元素定义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.