2011-11-09 5 views
1

XStreamのエイリアシングに問題があります。XStreamを使用したセットの内容のエイリアシング

<types> 
    <type>abc</type> 
    <type>def</type> 
</types> 

は、しかし、私はこの問題を解決するための良い方法を見つけるように見えることはできません。

は、私は私はこのようなXMLにシリアライズしたい文字列アイテムのセットを持っています。私は、文字列のリストを試みたが、その後、私は

<types> 
    <string>abc</string> 
    <string>def</string> 
</types> 

で終わる私はまた、単純なクラスに文字列を入れて試してみたが、その後、私は<type>がある

<types> 
    <type> 
    <aType>abc</aType> 
    </type> 
</types> 

を取得しますカスタムクラスのエイリアスであり、aTypeはクラス内の属性です。つまり、このアプローチを使用するとレベルが上がりすぎます。余分なレベルをなくすか、<string>をカスタムタグ名に置き換えるだけですか?

答えて

3

Listとリストの項目の両方にエイリアスを付ける必要があります。

<types> 
    <type>abc</type> 
    <type>def</type> 
</types> 
+0

List<String> types = new ArrayList<String>(); types.add("abc"); types.add("def"); XStream xstream = new XStream(); xstream.alias("types", List.class); xstream.alias("type", String.class); System.out.println(xstream.toXML(types)); 

を発生しますが代わりに別名で「種類」と「タイプ」の分野名を使用することは可能ですか? – coffeMug

関連する問題