Генерируйте XML из XSD и данных, пропуская генерацию классов

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

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

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

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

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

1 ответ

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

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

Другие вопросы по тегам