我想使用 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 不正确。我仍然想在内存中解组我所能做的所有内容,并手动进行验证。
Pomario,
你想做的是可能的。我建议你从github下载我们的源代码,并针对一些xml文件进行测试。如果 JiBX 抱怨模型中没有的 XML 元素和属性,请在我们的源代码中找到错误并更改代码以忽略错误的 XML 数据,而不是抛出错误。
我不应该太难。
祝你好运!
唐