2016-08-08 33 views
1

Ich habe eine Klassendatei, sagen "com.main.module.Test.java". Ich muss diese Datei in XML konvertieren. Wenn ich javax.xml.bind.JAXB verwenden, sieht die Rückkehr xml wie:Benötigen Sie Jaxb zu XML zurück xml mit voller Paketname

<Test> 
<sample> 
</sample> 
</Test> 

Aber ich brauche die XML wie angezeigt werden:

<com.main.module.Test> 
<com.main.module.sample> 
</com.main.module.sample> 
</com.main.module.Test> 

Antwort

1

Sie können die Elemente einen beliebigen Namen geben wollen, solange es ein valid name ist.

Beispiel:

@XmlRootElement(name = "com.main.module.Test") 
class Foo { 
    @XmlElement(name = "com.main.module.sample") 
    String bar; 

    public static void main(String[] args) throws Exception { 
     Foo foo = new Foo(); 
     foo.bar = "Hello World"; 

     Marshaller marshaller = JAXBContext.newInstance(Foo.class).createMarshaller(); 
     marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 
     marshaller.marshal(foo, System.out); 
    } 
} 

Ausgabe

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<com.main.module.Test> 
    <com.main.module.sample>Hello World</com.main.module.sample> 
</com.main.module.Test> 

Wie Sie sehen können, hat das Wurzelelement Name nichts mit dem Klassennamen zu tun, und das Unterelement Name hat nichts mit dem zu tun der Feldname

+0

Danke. Es funktionierte. – Ismail