JAXB を使用して、以下を「タグ」オブジェクトにアンマーシャリングしたいと考えています。これは、クライアントが結果を私に渡す方法です -
<Tag type="a">
<![CDATA[html text here]]>
</Tag>
CDATA は、「タイプ」属性を持つ「タグ」内に直接ラップされていることに注意してください。
私のクラスは次のとおりです。
@XmlRootElement(name = "Tag")
public class Tag {
private String type;
private String tag;
public String getTag() {
return tag;
}
@XmlCDATA
public void setTag(String tag) {
this.tag = tag;
}
public String getType() {
return type;
}
@XmlAttribute
public void setType(String type) {
this.type = type;
}
}
これが正しい方法だとは思いません。予想どおり、アンマーシャルすると、Tag オブジェクトには「タイプ」が入力されますが、CDATA 値は「タグ」に入力されません。
何か案が?