首页 > 解决方案 > 序列化 XML 嵌套在自动生成的 Java 类中

问题描述

给定一个.xsd文件,我的策略是使用 Maven 工具从中生成 Java 类,然后使用 Jackson 序列化数据。

我在用着:

生成代码示例:

@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 是嵌套的。

这是应该控制的东西:

标签: xmlmaven-jaxb2-pluginjackson-dataformat-xml

解决方案


终于找到了答案。我看过很多使用这个配置的例子,但不知道它实际上在做什么。正是这个错误报告通过这句话给了我线索

列表的包装元素

XmlMapper xmlMapper = new XmlMapper();
xmlMapper.setDefaultUseWrapper( false ); // This prevents unnecessary nesting of XML elements

推荐阅读