2016-04-15 12 views
0

JAXB注釈を使用してXMLを生成するとき、相互排他的であるため、同じJavaメンバー上で@XmlElement(name="City") & @XmlValueを使用することはできません。 同時に@XmlElementで値を持つXMLタグを生成することはできますか?これを行うことができないと、大量のオブジェクトが作成され、過度の攻撃に見えます。値付きのJAXB注釈を使用する

Javaコード

.... 
@XmlElement(name="City") 
@XmlValue  <---- I'm wanting to do this but I'm limited by the API 
private String city; 

予想される出力

.... 
<City>some value here</City> 
.... 
+0

は '@のXmlElement'は、パラメータとしてdefaultValue''のようなものを持っていませんか? –

+0

この場合、私はデフォルト値を探していません。 – gpeters

答えて

0

我々は@XmlValue注釈を使用して、別のタイプを使用して同じことを達成しようとすることができます。 、今

public class CityName { 
    @XmlValue 
    String name; 
} 

以下のように

@XmlRootElement(name="CityRoot") 
@XmlType(name="CityRootType") 
public class CityRoot { 
    @XmlElement(name="City") 
    public CityName s; 
} 

CityName定義を生成.xsdファイルを持っているschemagenにこれら2つのファイルを供給し、それがに.xmlファイルを生成し使用して - 以下

あなたが試すことができるものです確認する。以下は

私はそれを生成したときに生成されたXMLファイルがどのように見えるかである -

<?xml version="1.0" encoding="UTF-8"?> 
<CityRoot> 
     <City>SomeCityName</City> 
</CityRoot> 
0

あなたが単純なテキストを持つ要素を持っているしたい場合は、あなたが必要とする唯一の注釈が@XmlElement注釈です。フィールドの型がStringの場合、JAXBは要素の値としてStringの値を持つxml要素を生成します。

あなたが必要とする唯一のものはこれです:それはあなたが探しているものかどう

@XmlElement(name="City") 
private String city; 
関連する問題