如何避免 Jaxb XML 中的所有空标签
Posted
技术标签:
【中文标题】如何避免 Jaxb XML 中的所有空标签【英文标题】:How to avoid all empty tags from 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);
【问题讨论】:
FirstName
和 LastName
是 null 还是空字符串?
如果值不存在,我将其设置为 null
您使用的是哪种 JAXB 实现?
用编组更新了问题
不过,我的问题仍然存在。您正在使用哪种 JAXB 实现?
【参考方案1】:
鉴于您似乎正在使用 JAXB (JSR-222) 的参考实现,它不会编组带有 @XmlAttribute
注释且包含空值的属性。话虽如此,请尝试在模型类中使用 @XmlAttribute
注释 FirstName
和 LastName
属性。
【讨论】:
以上是关于如何避免 Jaxb XML 中的所有空标签的主要内容,如果未能解决你的问题,请参考以下文章