18

このようなクラスを変換しようとしています...

public class Amenity {
   public String id;
   public String value;
}

JaxB アノテーションを使用して次の XML に変換します。

<amenity id="id-string-here">value-string-here</amenity>

valueこれを達成するためにメンバー変数で使用する注釈を知っている人はいますか? 私がこれまでに得た最も近いものは次のとおりです。

@XmlRootElement
public class Amenity {
   @XmlAttribute
   public String id;
   @XmlElement
   public String value;
}

残念ながら、このアプローチでは、valueメンバー変数を独自のタグとしてレンダリングしないように指定することはできません<value></value>

4

4 に答える 4

29

これについて 100% 確信があるわけではありませんが、@XmlValue代わりに注釈を使用してみてください@XmlElement

于 2009-09-30T08:43:00.527 に答える
4

質問はCDATAノードではなくテキストノードを参照していたようですが、EclipseLink JAXB(MOXy)がCDATAを処理する方法に関するリンクは次のとおりです。

于 2010-07-15T00:12:26.970 に答える
1

このドキュメントには次のように書かれています。

Q. Marshaller に CDATA ブロックを生成させるにはどうすればよいですか?

A. この機能は JAXB から直接利用することはできませんが、CDATA ブロックを生成するように Apache Xerces-J XMLSerializer を構成できます。詳細については、JaxbCDATASample.java サンプル アプリを確認してください。

(ところで、これはあなたの特定の質問には答えませんが、質問のタイトルは誤解を招くものであり、これは の最初のグーグルの結果であるためjaxb CDATA、少し異なる質問に答えています)

于 2011-02-04T13:07:57.537 に答える
0

JAXB does not support marshaling/marshaling to/from CDATA xml types.

于 2010-07-13T05:21:51.763 に答える