23.09.2012
Автоматизация маппинга XML - Java.
Я уже
упоминал об одном из способов связывания Java классов с их XML представлением - JAXB. Если стоит задача создания структуры Java классов для преобразования данных из XML документа заданного формата с помощью JAXB, то для этого обычно используется утилита
jaxb-xjc (Java Architecture for XML Binding Binding Compiler): достаточно иметь XSD файл со схемой документа, чтобы сгенерировать структуру классов. А что если схемы нет, а есть только пример самого XML документа? Конечно, ничто не мешает создать классы для JAXB вручную, но если исходные XML данные сложны по структуре и велики по объему - то зачастую это может оказаться лишней тратой времени. С помощью утилиты
trang можно создать схему на основе примера XML. Допустим есть такой XML файл и нам нужно создать соответствующие ему Java классы для JAXB:
example.xml:
<data type="dictionaries"> <dictionary name="buildings"> <itemnum>2</itemnum> <comment>Buildings</comment> <element> <id>0</id> <name>building 1</name> <cost>10000.50</cost> </element> <element> <id>1</id> <name>building 2</name> <cost>20000.50</cost> </element> </dictionary> </data>