2016-07-07 9 views
0

Как генерировать ниже XML из Java класса, т.е. элемента XML с атрибутом и содержаниемSpring загрузки XML элемент с атрибутом и содержанием

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<bookstore> 
    <book category="gaming"> 
     <author>Pratap A K</author> 
     <price>100र</price> 
     <title lang="en">some title</title> 
     <year>2017</year> 
    </book> 
</bookstore> 

Controller.java

@RequestMapping(value = "/xml", method = RequestMethod.GET, produces = MediaType.APPLICATION_XML_VALUE) 
    @ResponseStatus(HttpStatus.OK) 
    @ResponseBody 
    public Bookstore getXMLData() { 

     Bookstore bookstore = new Bookstore(); 
     Book book = new Book(); 

     book.setCategory("gaming"); 
     book.setAuthor("Pratap A K"); 
     book.setPrice("100र"); 
     book.setYear("2017"); 

     Title title = new Title(); 
     title.setLang("kannada"); 
     book.setTitle(title); 

     bookstore.setBook(book); 

     return bookstore; 
    } 

Bookstore.java

@XmlRootElement(name="bookstore") 
public class Bookstore { 

    private Book book; 
    //getters and setters 
} 

Book.java

public class Book { 

    private String category; 
    private String author; 
    private String year; 
    private String price; 
    private String lang; 
    private Title title; 

    @XmlAttribute(name="category") 
    public String getCategory() { 
     return category; 
    } 
    //getters and setters continue... 

} 

Title.java

public class Title { 

    private String lang; 

    @XmlAttribute(name="lang") 
    public String getLang() { 
     return lang; 
    } 

    public void setLang(String lang) { 
     this.lang = lang; 
    } 
} 

Я получаю выход, как показано ниже

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<bookstore> 
    <book category="gaming"> 
     <author>Pratap A K</author> 
     <price>100र</price> 
     <title lang="en"/> 
     <year>2017</year> 
    </book> 
</bookstore> 

Теперь Как я могу установить название Whithout с помощью каких-либо дополнительных тегов/переменная члена в классе Java?

Заранее спасибо

ответ

0

Выполнено это с помощью @XMLValue аннотацию

Title.java

public class Title { 

    private String lang; 
    private String value; 

    @XmlValue 
    public String getValue() { 
     return value; 
    } 

    public void setValue(String value) { 
     this.value = value; 
    } 

    @XmlAttribute 
    public String getLang() { 
     return lang; 
    } 

    public void setLang(String lang) { 
     this.lang = lang; 
    } 
} 

Уже ответил на ссылку answered here....