2012-03-08 2 views
0

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

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

названия списка и элементами товара и будет ли определенный ключ будет суб-элемент или атрибут элемента меняется в зависимости от индивидуальной задачи. Я хотел бы свести к минимуму ручную привязку ключей Карты к XML.

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

Спасибо за чтение через :)

+0

Просто подумал об этом немного, и я думаю, это также должно быть возможно сделать с помощью JAXB, но вам нужно будет описать ожидаемый формат немного более основательно, чтобы мы могли определить, разумно ли это для этого путем настройки сортировки JAXB. – tveon

ответ

0

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

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

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

  • Нет связанных вопросов^_^