2016-04-04 15 views
0

Ich habe den folgenden Code:JAXB: Entfernen Sie zusätzliche unnötige Tag

public class TestElement { 

    @XmlElement 
    private Field field; 

    private boolean isEmpty; 
    ... 

} 

@XmlRootElement 
public class MainTest { 

    @XmlElement 
    private TestElement el1 

    @XmlElement 
    private TestElement el2 
    ... 
} 

Nach Rangier-, führt dies zu einer XML-Datei mit so etwas wie:

<MainTest> 
    <TestElement id=el1> 
    <Field>...</Field> 
    </TestElement> 
    <TestElement id=el2> 
    <Field>...</Field> 
    </TestElement>  
</MainTest> 

Ich möchte jedoch die entfernen < Field> Tags, so dass die Datei als

zeigt sich
<MainTest> 
    <TestElement id=el1>...</TestElement> 
    <TestElement id=el2>...</TestElement>  
</MainTest> 

gibt es eine Möglichkeit, dies zu tun? Das Feld field in der Klasse TestElement ist das einzige Feld, das in der XML-Datei enthalten sein sollte.

(Zur Klarstellung: Ich möchte nicht den Wert zwischen <Field> und </Field> ich einfach Mangel fallen die unnötigen Tags den Wert Einkapseln fallen zu lassen.)

Vielen Dank im Voraus!

+0

@RobertMoskal: Ich habe MainTest geändert Ich versuche nicht, das Feld 'Field' auszuschließen. Ich versuche einfach, das XML-Tag um seinen Wert herum zu legen, da das Tag selbst unnötig ist. –

Antwort

0

Ich habe eine Lösung gefunden, die für mich funktioniert. Anstatt das gesamte TestElement-Objekt mit Anmerkungen zu versehen, habe ich in meiner Klasse MainTest für jedes TestElement-Objekt einen (privaten) Getter erstellt.

@XmlRootElement 
public class MainTest { 

    private TestElement el1 

    private TestElement el2 
    ... 

    @XmlElement(name="TestElement") 
    private Field getFieldEl1() { 
    return el1.getField(); 
} 
-2

Verwenden @XmlValue auf Feld Getter-Methode

Verwandte Themen