如何解散使用JiBX而不使用XSD?

时间:2012-06-07 15:35:07

标签: xsd unmarshalling castor jibx

我想使用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不正确。我仍然希望在内存中解组所有内容并手动进行验证。

1 个答案:

答案 0 :(得分:0)

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