由于我是JiBX的新手,我不知道这是否可能,但我觉得我忽略了一些东西。我试图找到一种方法将两个属性从一个POJO绑定到两个不同方式的相同结构。一个作为结构的值,第二个作为相同结构的属性。
以下示例显示了我打算做的事情。
请记住,此绑定只需要以一种方式工作,从Java到XML。 (绑定将定义为<binding direction="output">
)
我想要映射的类的简化版本:
public Example(){
private objectToMap;
//Constructor, getters and setters go here
}
public ObjectToMap(){
private String randomProperty;
private String value = "a";
private Attribute;
//Constructor, getters and setters go here
}
public Attribute(){
private String attribute = "b";
//Constructor, getters and setters go here
}
我想要生成的XML看起来像这样:
<Example>
<RandomProperty>randomValue</RandomProperty>
<ObjectToMapValue attribute="b">a</ObjectToMapValue>
</Example>
这就是我被困的地方:
<binding direction="output">
<mapping name="Example" class="com.example.pojo.Example">
<structure field="objectToMap" type="com.example.pojo.ObjectToMap">
<value name="RandomProperty" field="randomProperty">
<structure name="ObjectToMapValue" field="value"/>
<!-- But how to add the attribute? -->
</structure>
</mapping>
</binding>
是否可以制作JiBX绑定?
答案 0 :(得分:0)
让它工作,正如我想的那样,我忽略了一些东西。这就解决了它:
<binding direction="output">
<mapping name="Example" class="com.example.pojo.Example">
<structure field="objectToMap" type="com.example.pojo.ObjectToMap">
<value name="RandomProperty" field="randomProperty">
<structure name="ObjectToMapValue" field="value">
<structure field="Attribute"/>
<value style="text" field="value">
</structure>
</structure>
</mapping>
<mapping class="com.example.pojo.Attribute" abstract="true">
<value name="attribute" field="attribute" style="attribute">
</mapping>
</binding>