2012-06-07 3 views
0

Я хочу использовать JiBX для отмены огромных XML-файлов, но я не хочу, чтобы он проверял XSD. Как мне это сделать?Как отключить использование JiBX и не использовать XSD?

Доказательство концепции (JUnit сниппета, который работает для XMLs совместимый против XSD):

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

Зачем мне это нужно? У меня есть служба RESTful, которая позволяет пользователям загружать огромные XML-файлы. Кастор оказался слишком медленным для работы, и теперь я переписываю вещи в JiBX. Хотя, по опыту, я знаю, что пользователи иногда загружают файлы, которые обрабатываются на 99,9%, но один дополнительный атрибут XML в элементе сделает XML неверным. Я все равно хотел бы разобрать все, что я могу, в памяти и выполнить мои проверки вручную.

ответ

0

Pomario,
Что вы хотите сделать, это возможно. Я предлагаю вам загрузить наш исходный код с github и протестировать некоторые файлы xml. Если JiBX жалуется на элементы и атрибуты XML, которые не находятся в модели, найдите ошибку в нашем исходном коде и измените код, чтобы игнорировать плохие XML-данные, а не бросать ошибку.
Я не должен быть слишком твердым.
Удачи!
Дон