Учитывая файл .xsd
, у меня была стратегия использовать инструмент Maven для генерации Java-классов из этого, а затем использовать Джексона для сериализации данных.
Я использую:
org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.13.3
для генерации классов Java com.fasterxml.jackson.dataformat.xml.XmlMapper
(2.9.2) с new JaxbAnnotationModule()
для сериализации
Пример сгенерированного кода:
@XmlElement(required = true)
protected List<TLocalizedString> title;
Пример использования:
TLocalizedString tls = new TLocalizedString();
tls.setValue( string );
tls.setLocale( LOCALE );
item.getTitle().add( tls );
Мы получаем:
<item ....>
<title>
<title locale="en_US">The Title</title>
</title>
То, что мы ожидали:
<item ....>
<title locale="en_US">The Title</title>
Другими словами XML
Это то, что должно контролироваться:
- В коде в точке использования?
- В конфигурации для сериализатора Джексона?
- При генерации кода через конфиг или флаги генерации?
- При генерации кода через
.xsd
меняется?