2017-01-11 6 views
0

Я пытаюсь создать XML из java-объектов, это фактически List<MyElem>. Сам объект MyElem упорядочен, хотя я не могу упорядочить список этих объектов - одно из решений, которое приходит на ум, - это создать еще один класс, чтобы обернуть этот список, но кажется, что это так уродливо. Есть ли более элегантный способ?Как создать xml с помощью JAXB с пространством имен

И еще один вопрос - есть ли способ предоставить префикс схемы для каждого элемента, например <n:elem>some val</n:elem> без указания его для каждого свойства?

UPD: во втором вопросе я имел в виду, что если у меня есть свойство, как public String element он получает выстроил в <elem>some val</elem> в то время как я хочу (и любой другой собственности) с префиксом n:, например, <n:elem>.

И позвольте мне предоставить код для первого: 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); который производит <?xml version="1.0" encoding="UTF-8" standalone="yes"?> в то время как я хочу иметь книжные элементы внутри

+0

Второй вопрос неясно, что вы имеете в виду? перефразируйте его. – ulab

ответ

0

Вы можете указать, как java.util.List, как показано ниже.

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

    public List<MyElem> getMyElem() { 
     if(myElem == null) { 
      myElem = new ArrayList<MyElem>(); 
     } 
     return this.myElem; 
    }