0

我想使用 JiBX 来解组巨大的 XML 文件,但我不希望它针对 XSD 进行验证。我该怎么做呢?

概念证明(适用于符合 XSD 的 XML 的 jUnit 片段):

IBindingFactory bfact = BindingDirectory.getFactory(Customer.class);
IUnmarshallingContext uctx = bfact.createUnmarshallingContext();
Customer customer = (Customer) uctx.unmarshalDocument(new FileInputStream(fileLocation), null);

为什么我需要这个?我有一个 RESTful 服务,允许用户上传巨大的 XML 文件。Castor 被证明对这项工作来说太慢了,我现在正在用 JiBX 重写东西。虽然,我从经验中知道,用户有时会上传 99.9% 可处理的文件,但元素中的一个额外 XML 属性会使整个 XML 不正确。我仍然想在内存中解组所有我能做的事情并手动进行验证。

4

1 回答 1

0

波马里奥,
你想做的都是可能的。我建议您从github下载我们的源代码并针对一些 xml 文件进行测试。如果 JiBX 抱怨模型中没有的 XML 元素和属性,请在我们的源代码中找到错误并更改代码以忽略错误的 XML 数据而不是抛出错误。
我不应该太难。
祝你好运!
大学教师

于 2012-06-08T16:02:45.860 回答