【问题标题】:NIL/NULL attributes in XML and JAXBXML 和 JAXB 中的 NIL/NULL 属性
【发布时间】:2013-07-10 17:13:51
【问题描述】:

我有一些 XML 映射到 Java 类并包含类似的属性

<element attrib = 'true|false|null'>

这意味着,该属性被映射到一个布尔字段并且可以是真/假或空。我确实需要能够显式设置它,以覆盖默认的 true 值。

这在 XML 中可行吗?它在 JAXB 中可能吗?如果没有,是否有推荐的最佳实践?我读过你可以这样做using a sub-element,但是我不喜欢在不需要的时候这样做。我想将属性保留为属性。目前,听起来唯一的方法是使用 XmlAdapter,我想知道是否有更快的方法。

【问题讨论】:

  • I do need to be able to explicitly set it, in order to override the default true value. - 你能更准确地解释一下吗?
  • 我在 Java 级别使用 attrib = null 表示“未指定,应用配置文件中定义的默认值”。但是 Element.attribute 的默认值是 true,所以从 XML 中将其设置为 null 的唯一方法是能够以某种方式显式地说 null,而不是完全省略属性定义,因为我理解,这会保留默认值原封不动。

标签: java xml jaxb xsd xml-nil


【解决方案1】:

对于此用例,您需要使用 XmlAdapter。如果您可以将null 表示为缺少该属性,那么您可以将字段/属性设置为Boolean

【讨论】:

  • 缺席相当于“忽略并保留默认/以前的值”,所以是的,显然唯一的方法是 XmlAdapter。谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-04-04
  • 2019-05-06
  • 2014-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-14
  • 2015-09-01
相关资源
最近更新 更多