2013-11-27 1 views
-1

Может быть, я повторяю этот вопрос по сравнению с предыдущим вопросом (Define namespaces tags so that generated XML have those tags?), но так как в моем предыдущем вопросе эта область ограничена XStream, поэтому мне нужно задать этот новый вопрос.Как использовать JAXB для вывода xml с пространствами имен?

У меня есть два класса People.java и PeopleMain.java

People.java

package com.test; 

public class People { 

    private String name; 
    private String age; 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public String getAge() { 
     return age; 
    } 
    public void setAge(String age) { 
     this.age = age; 
    } 

} 

PeopleMain.java

package com.test; 

import com.thoughtworks.xstream.XStream; 

public class PeopleMain { 

    public static void main(String args[]){ 

     People p= new People(); 

     p.setAge("21"); 
     p.setName("Manish Sharma"); 

     String xml = //JAXB code to get xml from Person p object 

     System.out.println(xml);  
    } 
} 

Мой вывод на консоль на управлении PeopleMain.java поставляется в :

<com.test.People> 
    <name>Manish Sharma</name> 
    <age>21</age> 
</com.test.People> 

, но я хочу, выход в

<People xmlns:ns2="http://example.com/foo" xmlns:ns3="http://example.com/bar"> 
    <ns2:name>Manish Sharma</ns2:name> 
    <ns3:age>21</ns3:age> 
</People> 

Какие изменения я должен сделать в моем файле People.java, чтобы получить желаемый результат?

+0

Если вы пишете «Пожалуйста, не спускайте вниз и не отвечайте», возможно, вы уже можете догадаться, что это не совсем хороший вопрос. Возможно, вы хотите улучшить его. –

ответ

2

Вы можете сделать следующее и указать пространство имен на @XmlElement аннотацию:

import javax.xml.bind.annotation.*; 

@XmlRootElement(name="People") 
@XmlAccessorType(XmlAccessType.FIELD) 
public class People { 

    @XmlElement(namespace="http://example.com/foo") 
    private String name; 

    @XmlElement(namespace="http://example.com/bar") 
    private int age; 

} 

Для получения более подробной информации

Смежные вопросы