2017-09-15 7 views
0

단순한 Java 객체를 XML로 변환하고 Java 객체로 변환하려는 경우 어떤 요소도 @XmlRootElement@XmlAttribute으로 언급되지 않습니다. JAXB와이 작업이 가능합니까?Java 클래스에서 @XmlRootElement를 사용하지 않고 Java 객체를 XML로 변환

내 자바 객체는 다음과 같습니다

public class myrequest implements java.io.Serializable { 
    private java.lang.String id; 

    private java.lang.String code; 

    private java.lang.String type; 

    private java.lang.String name; 

    private java.lang.String count; 
and getters and setters.... 

답변

0

당신은 클래스 javax.xml.bind.JAXB에서 marshal 방법을 사용하여 JAXB 주석의 필요없이 자바 객체를 마샬링 할 수 있습니다. JAXB의 일반, 간단한 사용하기에 편리한 메소드를 정의

등급 :

는 자바 독에서 인용.
이 클래스에서 정의 된 메소드는 JAXBContext, Unmarshaller 및 Marshaller의 여러 기본 연산을 결합하는 편리한 메소드입니다. 이들은 JAXB를 처음 사용하는 개발자에게 선호되는 방법으로 설계되었습니다.

myrequest obj = new myrequest(); 
obj.setId("1"); 
obj.setCode("2"); 
obj.setCount("3"); 
JAXB.marshal(obj, System.out); 

그리고 다음과 같은 XML 출력을 얻을 것이다 :

이 같은 예를 들어 사용할 수 있습니다

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<myrequest> 
    <code>2</code> 
    <count>3</count> 
    <id>1</id> 
</myrequest> 
0

예를; 이렇게하려면 myrequest을 마샬 러에게 직접 전달하는 대신 JAXBElement<myrequest>을 만들고이를 마샬 러에게 전달해야합니다. 예 :

myrequest request = ...; 

JAXBContext context = new JAXBContext(myrequest.class); 
Marshaller marshaller = context.createMarshaller(); 

// Create a JAXBElement wrapper 
JAXBElement<myrequest> element = new JAXBElement<>(request); 

// Pass that to the marshaller 
marshaller.marshall(element, System.out);