2014-05-23 1 views
2

y 질문은 간단하지만 동일한 문제가있는 다른 사람을 찾지 못했습니다.JAXB 변수의 값을 XML 태그로 사용

공용 클래스 데모 {내가받을

public static void main(String[] args) throws Exception { 
    JAXBContext jc = JAXBContext.newInstance(Container.class); 

    Container container = new Container("potatoes","5"); 


    Marshaller marshaller = jc.createMarshaller(); 
    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 
    marshaller.marshal(container, System.out); 
    } 
} 

출력 : 정렬 화를 사용

@XmlRootElement 
public class Container{ 
private String name; 
private String value; 

public Container(String name, String value){ 
    this.name = name; 
    this.value = value; 
    } 
} 

: 나는 XML을 생성하기 위해 JAXB를 사용하는 것을 시도하고있다, 그래서 나는 클래스가 is :

<Container> 
<name>potatoes</name> 
<value>5</value> 
</Container> 

같은 출력은 다음과 같습니다.

<Container> 
<potatoes>5</potatoes> 
</Container> 

JAXB?

+1

이 http://stackoverflow.com/questions/3293493/dynamic-tag-names-with-jaxb – helderdarocha

+0

출력을 참조하십시오 당신은 ... 감자 = 5와 가치 = 5. (5가 반복됨)를 원합니다. 그것은별로 의미가 없습니다. 태그는 일반적으로 그 안에 몇 가지 정보를 가지고있을 것입니다 .... 당신은 당신의 필요성/디자인을 다시 생각할 필요가있을 수 있습니다. 아니면 잘못된 예를 들었을 수도 있습니다. – prembhaskal

+0

이것은 예입니다. 물론 좀 더 의미있는 일을하고 싶습니다. 그럼에도 불구하고 나는 예를 조정했다 :) – Zebedeu

답변

2

당신은 @의 XmlAnyElement로-주석 속성을 사용하고 JAXBElement 첨부로 요소를 반환 할 수 있습니다

@XmlAnyElement 
public JAXBElement<String> getThing() { 
    return new JAXBElement<String>(new QName(this.name), String.class, this.value); 
} 
+0

나는 월요일에 시험해 보겠다. 답변을 주셔서 감사합니다. – Zebedeu

+0

마음에 리버스 (XML -> 개체) 가능하지 않습니다 – Reno

+0

도와 줘서 고마워 :) – Zebedeu