Генерируйте XML из XSD и данных, пропуская генерацию классов - PullRequest
0 голосов
/ 08 марта 2012

У меня есть следующий повторяющийся шаблон: я вызываю черный ящик с некоторыми параметрами и в результате получаю List<Map<String, Object>> (или что-то эквивалентное), где каждая карта имеет один и тот же набор ключей. Затем я должен создать XML вида

<list>
    <item key1='value1' ...>
        <keyX>valueX</keyX>
    </item>
</list>

Имена элементов списка и элементов, а также то, будет ли определенный ключ подэлементом или атрибутом элемента, зависит от конкретной задачи. Я хотел бы свести к минимуму ручное подключение ключей Map к XML.

Сначала я представлял себе способ создать шаблон XML, который описывал бы ключи карты для сопоставления элемента / атрибута. Затем я решил, что для этого и нужен XSD, поэтому я мог бы использовать этот формат для определения шаблона. Однако я не мог найти хорошее решение для генерации XML из XSD. Я посмотрел на JAXB, и он кажется слишком тяжелым для моих сценариев: мне не нужны классы Java - было бы неплохо иметь доменные объекты, за исключением того, что я никогда ничего не делаю с данными. Затем я должен сначала сопоставить свои данные с классами, что кажется неэффективным, если просто выгрузить их маршаллером. Во-вторых, я хотел бы сохранить большую гибкость - если формат данных (т. Е. Набор ключей в каждой карте) изменится, мне нужно будет только изменить схему, а не восстанавливать источники и перестраивать.

Спасибо, что прочитали:)

1 Ответ

0 голосов
/ 08 марта 2012

Я помню, что делал что-то подобное год или около того назад.Что я сделал, так это написал и XSLT, который взял некоторые параметры и обработал их с JAXP для создания XML.

Если вы новичок в XSL, это может быть немного сложно, но есть много хорошегодокументация вокруг.:)

...