【问题标题】:How to avoid all empty tags from Jaxb XML如何避免 Jaxb XML 中的所有空标签
【发布时间】:2021-11-16 01:38:56
【问题描述】:

嗨,我正在使用 maven 插件从 XSD 创建一个 xml,并使用 JAXB 对其进行编组。 但是如果值不存在,XML 将带有空标签。我怎样才能在全球范围内避免它。下面是我在 XML 中得到的示例空标签。如果它是空的,我不需要任何这些标签。有什么方法可以在 JAXB 级别的 XSD 中实现吗?

<INDIVIDUAL>
    <NAME>
        <FirstName></FirstName>
        <LastName></LastName>
    </NAME>
</INDIVIDUAL>

将其编组为

StringResult result = new StringResult();
JAXBContext jaxbContext     = JAXBContext.newInstance( MESSAGE.class );
Marshaller jaxbMarshaller   = jaxbContext.createMarshaller();
jaxbMarshaller.marshal(messageObj,result);

【问题讨论】:

  • FirstNameLastName 是 null 还是空字符串?
  • 如果值不存在,我将其设置为 null
  • 您使用的是哪种 JAXB 实现?
  • 用编组更新了问题
  • 不过,我的问题仍然存在。您正在使用哪种 JAXB 实现?

标签: xml spring xsd jaxb


【解决方案1】:

鉴于您似乎正在使用 JAXB (JSR-222) 的参考实现,它不会编组带有 @XmlAttribute 注释且包含空值的属性。话虽如此,请尝试在模型类中使用 @XmlAttribute 注释 FirstNameLastName 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    相关资源
    最近更新 更多