2012-03-28 4 views
0

Я начинаю разрабатывать приложение, которое в основном преобразует XML из одного формата в другой. Пользователь предоставляет входной XML и сообщает приложению, какой он тип, и каков тип выходного XML, который он/она хочет, и приложение затем преобразует входной XML-адрес в вывод xml. Я хотел спросить, есть ли хорошие рамки (желательно на основе Java), которые это делают. Я думаю об использовании XSLT с пользовательскими действиями, но если кто-то может предложить существующую инфраструктуру, которая уже предоставляет все леса, я сэкономлю время. Я собираюсь изучить Smooks. Одна из проблем с XSLT, о которой упоминалось, заключалась в том, что она не сможет обрабатывать огромные файлы> 50 МБ или около того, не загружая их все в память. Это правда? Также формат ввода иногда может не быть XML .. может быть текстовым файлом, поэтому я должен иметь возможность добавлять другие трансформаторы. Конечно, я понимаю, что структура будет только таковой - я буду предоставлять код конверсии. Но хотелось бы услышать от экспертов там :) Спасибо -v-Предложения XML Transformation Framework?

ответ

0

Если вы преобразуете XML в XML, то XSLT - это путь. Размер документа, который вы можете преобразовать, на самом деле ограничен только процессором и памятью (как и все остальное). Вы не найдете более элегантного решения для преобразования XML, чем XSLT. Что касается кода вашего леса, я бы предложил сделать объекты преобразования модульными (через инфраструктуру инъекции зависимостей, например Spring), так что, если входные форматы меняются, вы также можете легко изменить логику преобразования.

+0

спасибо за ответ. Я согласен с тем, что XSLT идеален, но помните, что я мог бы также иметь не-xml (текстовые) файлы в качестве входных данных. Кроме того, что, если размер входного файла - 20 ГБ, а память моего сервера - 16 ГБ, XSLT будет обрабатывать это изящно, так как я думаю, что он будет основан на анализе DOM, загружающем все в память. – Vishal

0

Я нацелился на следующих структур для удовлетворения моих требований, Apache Camel Smooks XSLT (как Camel конечных точек) XMLDB в Oracle

Смежные вопросы