给定一个.xsd
文件,我的策略是使用 Maven 工具从中生成 Java 类,然后使用 Jackson 序列化数据。
我在用着:
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
更改?