Я работаю в кредитном союзе (около 60 тысяч счетов). Процесс утверждения относится к 70-м годам, и он тесно связывает данные с макетом. Короче говоря, вы запускаете задание, и оно создает текстовый файл, содержащий выписку для каждой учетной записи. Я изменил конфигурацию мэйнфрейма, и теперь вместо вывода текста я получаю такой XML:
<statements>
<statement account='1'>
...statement info like checking/savings/certificate/visa/loan/heloc shares
</statement>
<statement account='N'>
...statement info like checking/savings/certificate/visa/loan/heloc shares
</statement>
</statements>
Я написал Java-код для извлечения данных из реляционных таблиц и создания PDF-файлов на лету с помощью iText. Некоторые данные, отображаемые в операторе, вычисляются на основе данных в XML. Например, XML содержит все транзакции на общем ресурсе. В выписке мы хотим показать количество кредитов и количество дебетов. После загрузки в БД я могу использовать представление для вычисления этих значений на лету и предоставления данных моему Java-приложению.
размер этого XML-файла составляет ~ 900 МБ, и он будет только увеличиваться по мере добавления новых участников.
Я хочу обрабатывать xml по одному «заявлению» за раз. http://mrico.eu/entry/parsing_chunks_of_xml_documents
Может ли JAXB анализировать большие файлы XML по частям)
Когда у меня есть индивидуальный отчет, я хочу загрузить его доли (проверки, сбережения, визы и т. Д.) В соответствующие таблицы БД.
Похоже, что самый простой способ сделать это - привязать оператор к POJO, а затем для каждого сложного элемента (доли, транзакции или ссуды) в POJO выполнить вставку.
какую комбинацию инструментов синтаксического анализа / связывания / сохранения вы бы порекомендовали?
лично я бы предпочел необработанные вставки JDBC, поэтому вопрос синтаксического анализатора и связующего более важен.
Примечание: я, вероятно, мог бы создать схему для XML, но она может быть хрупкой из-за того, как мэйнфрейм создает файл XML. Любой, кто пользуется программой Spectrum от Fiserv, чувствует мою боль.