1

我的 JAXB 对象模型的一个实例包含一个元素,当我为该实例生成 Xml 而不是当我生成 json 时我想要输出该元素

即我想要

<release-group>
<type>Album</type>
<title>Fred</title>
</release-group>

"release-group" : {
         "title" : "fred",
       },

但有

"release-group" : {
         "type" : "Album",
         "title" : "fred"
      },         

我可以使用 oxml.xml 映射文件执行此操作吗

这个答案显示了如何使用瞬态关键字为属性执行此操作,我可以让 MOXy 在生成 json 时不输出属性吗?但我不能让它为一个元素工作。

4

1 回答 1

1

抱歉问题解决了,我有点困惑。

我上面给出的示例实际上并没有准确匹配真实情况,type 实际上是作为 Xml 的属性输出的,但是由于它已在 JAXB 中重命名,因此使用瞬态不起作用

@XmlAttribute(name = "target-type", required = true)
@XmlSchemaType(name = "anyURI")
protected String targetType;

所以添加

 <java-type name="ReleaseGroup">
            <java-attributes>
                <xml-transient java-attribute="targetType"/>
            </java-attributes>
        </java-type>

工作,以前我做错了

 <java-type name="ReleaseGroup">
            <java-attributes>
                <xml-transient java-attribute="target-type"/>
            </java-attributes>
        </java-type>
于 2012-09-09T09:51:17.807 回答