如何使用 XStream 为同一类元素的 XML 元素设置不同的别名?
我有以下类,并希望重用 Phone 类来表示将生成以下格式的 XML 的家庭电话和工作电话
<customer>
<id>222</id>
<name>TestCustomer</name>
<workPhone>
<workPhoneNumber>12345678</workPhoneNumber>
<workPhoneExtn>2345</workPhoneExtn>
</workPhone>
<workPhone>
<workPhoneNumber>23456789</workPhoneNumber>
<workPhoneExtn>2555</workPhoneExtn>
</workPhone>
<homePhone>
<homePhoneNumber>222222222</homePhoneNumber>
<homePhoneExtn>1234</homePhoneExtn>
</homePhone>
</customer>
使用以下代码,我只能为 homephone 和 workphone 对象设置不同的别名,直到类级别。
@XStreamAlias("customer")
public class Customer {
private String id;
private String name;
@XStreamImplicit(itemFieldName = "workPhone")
private ArrayList<Phone> workPhones;
@XStreamImplicit(itemFieldName = "homePhone")
private ArrayList<Phone> homePhones;
}
public class Phone {
private String number;
private String extn;
}
通过上面的类定义,我只能得到如下的 XML 结构:
<customer>
<id>222</id>
<name>TestCustomer</name>
<workPhone>
<number>12345678</number>
<extn>2345</extn>
</workPhone>
<workPhone>
<number>12345678</number>
<extn>2355</extn>
</workPhone>
<homePhone>
<number>222222222</number>
<extn>1234</extn>
</homePhone>
</customer>
我不清楚映射器或转换器是否有助于实现这一目标。
有人可以建议是否有设置电话号码和分机以取别名“workphoneNumber”、“workphoneExtn”/“homePhoneNumber”、“homePhoneExtn”,具体取决于其类的别名?它应该在编组和解组期间都有效。请建议。