2017-09-15 14 views
0

単純なJavaオブジェクトをXMLに変換し、Javaオブジェクトに変換したいだけです。要素のいずれも@XmlRootElement@XmlAttributeと記載されていません。これはJAXBと可能ですか?Javaクラスの@XmlRootElementを使用せずにJavaオブジェクトをXMLに変換する

私のJavaオブジェクトは、以下のようになります。

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注釈を必要とせずに、あなたのJavaオブジェクトをマーシャリングすることができます。 JAXBの一般的な、簡単な使用のための便利なメソッドを定義し

クラス:

は、そのjavadocをより引用します。
このクラスで定義されているメソッドは、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); 
関連する問題