2017-01-11 15 views
0

JavaオブジェクトからXMLを作成しようとしていますが、実際にはList<MyElem>です。これらのオブジェクトのリストをマーシャリングすることはできませんが、MyElemオブジェクト自体は整列していますが、そのリストをラップする別のクラスを作成しているのが醜いと思われるソリューションの1つです。よりエレガントな方法はありますか?名前空間でJAXBを使用してXMLを作成する方法

さらに、各要素にスキーマ接頭辞を指定する方法はありますか( <n:elem>some val</n:elem>など)

UPD:私はpublic String elementのような性質を持っている場合、私はそれ(および他のすべてのプロパティ)したいしながら、それは<elem>some val</elem>として整列化されることを意味し2つ目の質問では、例えば、n:の接頭辞を付けること<n:elem>

そして、私は最初のもののためのコードを提供してみましょう:私はあなたが以下のようにjava.util.Listとして指定することができます

+0

2番目の質問は不動産の意味を明確にしていませんか?言い換えれば – ulab

答えて

0

内のbook要素を持つようにしたいながら <?xml version="1.0" encoding="UTF-8" standalone="yes"?> を生成 List<Book> list = new ArrayList<>(); JAXBContext context = JAXBContext.newInstance(Book.class); Marshaller jaxbMarshaller = context.createMarshaller(); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); list.add(new Book()); list.add(new Book()); jaxbMarshaller.marshal(list, writer);

@XmlElement(name="myElem") 
    List<MyElem> flexField; 

    public List<MyElem> getMyElem() { 
     if(myElem == null) { 
      myElem = new ArrayList<MyElem>(); 
     } 
     return this.myElem; 
    } 
関連する問題