【发布时间】:2010-11-16 09:30:04
【问题描述】:
我正在本着这种精神升级一个当前具有 XML 表示的 Java 对象:
<myObjects>
<myObject uid="42" type="someEnum">
<name>Waldo</name>
<description>yada yada</description>
<myElement>some_string</myElement>
...
</myObject>
...
</myObjects>
myElement 是可选的 - 在 Java 中可以为 null / 在 XML 中可以省略。
如果 myElement 具有实际值,我将添加一个 仅 相关的字段
(并且为了与以前的 XML 保持兼容性,它本身是可选的)
我试图避免这种情况:
<myElement>some_string</myElement>
<myAttr>foo</myAttr>
并且更喜欢这样的东西:
<myElement myAttr="foo">some_string</myElement>
但是现在我花了 2 天时间来讨论如何注释它。
- 我想用 XmlTransient 标记它,并在解组时让 XmlAnyElement 捕获它 - 但似乎在将对象从 Java 编组回XML。
- 我尝试为元素创建一个 XmlAdapter - 但 unmarshal 方法只获取内部内容(“some_string”)。 我是否错过了这项技术?
-
有没有办法将元素作为字符串 ("
some_string ") 我会自己处理它?强> - 您是否推荐任何其他方法?
【问题讨论】:
-
我们需要看看你的java
-
如果不清楚 - 我只需要保持与以前的 XML 文件的兼容性。我可以用 Java 代码做任何我想做的事情。所以我故意不提供它,以免给你带来偏见(Blaise Doughan 在下面解释得很好)。
标签: jaxb