Castor marshalling della coppia nome / valore
-
28-10-2019 - |
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
Dovrebbe essere semplice, e sono sicuro che lo sarà, ma non riesco ad arrivarci.
Qualche idea?
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