2013-11-27 3 views
-1

이전 질문 (Define namespaces tags so that generated XML have those tags?)과 비교하여이 질문을 반복 할 수도 있지만 이전 질문에서이 범위는 XStream으로 제한되므로이 새로운 질문을해야합니다.JAXB를 사용하여 네임 스페이스로 XML을 출력하는 방법?

나는

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 실행에 콘솔 내 출력이 온다 두 개의 클래스 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이 :

하지만 난 내 People.java 파일에 변경할 사항

<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> 

같은 출력이 원하는 출력을 얻으려면?

+0

"당신이"downvote and answer "이라고 쓰면 이미 좋은 질문이 아닐 수도 있습니다. 어쩌면 그것을 향상시키고 자 할 수도 있습니다. –

답변

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; 

} 

관련 문제