繁体   English   中英

针对XSD验证格式正确的XML时出现问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM