Domanda

Ho un semplice POJO che contiene una coppia nome / valore:

public class Parameter {

    private String name = null;
    private String value = null;

    public Parameter() {
        // Do Nothing
    }

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

    public String getName() {
        return name;
    }

    public String getValue() {
        return value;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setValue(String value) {
        this.value = value;
    }

}

Voglio eseguire il marshalling di questo in una struttura XML simile a questa:

<parameter name="P3">Parameter 3</parameter>

Ho provato una mappatura simile a questa ma non funziona:

<class name="pkg.Parameter">
    <field name="Name">
        <bind-xml name="name" node="attribute" />
    </field>
    <field name="Value">
        <bind-xml name="paramValue"/>
    </field>
</class>

Mi dà questo:

<parameter name="P3">
  <paramValue>Parameter 3</paramValue>
</parameter>

È quasi arrivato, ma il valore è ovviamente fuori luogo.Essenzialmente voglio che il valore restituito da Parameter.getValue () formi il contenuto dell'elemento piuttosto che un sottoelemento.

Dovrebbe essere semplice, e sono sicuro che lo sarà, ma non riesco ad arrivarci.

Qualche idea?

È stato utile?

Soluzione

Oh buon dolore.È come se dedicare del tempo a spiegare il problema riorganizzasse tutto nel tuo cervello e la soluzione ti arrivasse subito dopo aver fatto clic su "Pubblica"!

Si scopre che tutto quello che dovevo fare era cambiare

<field name="Value">
    <bind-xml name="paramValue"/>
</field>

a

<field name="Value">
    <bind-xml node="text"/>
</field>

Fatto ciò, ora vedo questo:

<parameter name="P3">Parameter 3</parameter>

Steve

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top