混叠
1、类混叠:用来创建一个类的XML完全限定名称的别名。
设置:
xstream.alias("address", Address.class);
xstream.alias("addresses", Addresses.class);
xstream.alias("person", Person.class);
xstream.alias("persons", Persons.class);
输出:
<persons>
<type>001</type>
<listPerson>
<person>
<name>6666554</name>
<sex>lavasoft</sex>
<tel>man</tel>
<addes>
<listAdd>
<address>
<addType>type1</addType>
<place>人民广场1</place>
</address>
<address>
<addType>type2</addType>
<place>人民广场2</place>
</address>
</listAdd>
</addes>
</person>
<person>
<name>7777754</name>
<sex>yutian</sex>
<tel>man</tel>
<addes>
<listAdd>
<address>
<addType>type3</addType>
<place>人民广场3</place>
</address>
<address>
<addType>type4</addType>
<place>人民广场4</place>
</address>
</listAdd>
</addes>
</person>
</listPerson>
</persons>
2.字段混叠:用于创建以XML字段的别名
xstream.aliasField("personName", Person.class, "name");
输出:
<com.xstream.vo1.Persons>
<type>001</type>
<listPerson>
<com.xstream.vo1.Person>
<personName>6666554</personName>
<sex>lavasoft</sex>
<tel>man</tel>
<addes>
<listAdd>
<com.xstream.vo1.Address>
<addType>type1</addType>
<place>人民广场1</place>
</com.xstream.vo1.Address>
<com.xstream.vo1.Address>
<addType>type2</addType>
<place>人民广场2</place>
</com.xstream.vo1.Address>
</listAdd>
</addes>
</com.xstream.vo1.Person>
<com.xstream.vo1.Person>
<personName>7777754</personName>
<sex>yutian</sex>
<tel>man</tel>
<addes>
<listAdd>
<com.xstream.vo1.Address>
<addType>type3</addType>
<place>人民广场3</place>
</com.xstream.vo1.Address>
<com.xstream.vo1.Address>
<addType>type4</addType>
<place>人民广场4</place>
</com.xstream.vo1.Address>
</listAdd>
</addes>
</com.xstream.vo1.Person>
</listPerson>
</com.xstream.vo1.Persons>
3.隐式集合混叠:表示在XML无需显示根
xstream.addImplicitCollection(Persons.class, "listPerson");
<com.xstream.vo1.Persons>
<type>001</type>
<!-- <listPerson> 没有了-->
<com.xstream.vo1.Person>
<personName>6666554</personName>
<sex>lavasoft</sex>
<tel>man</tel>
<addes>
<listAdd>
<com.xstream.vo1.Address>
<addType>type1</addType>
<place>人民广场1</place>
</com.xstream.vo1.Address>
<com.xstream.vo1.Address>
<addType>type2</addType>
<place>人民广场2</place>
</com.xstream.vo1.Address>
</listAdd>
</addes>
</com.xstream.vo1.Person>
<com.xstream.vo1.Person>
<personName>7777754</personName>
<sex>yutian</sex>
<tel>man</tel>
<addes>
<listAdd>
<com.xstream.vo1.Address>
<addType>type3</addType>
<place>人民广场3</place>
</com.xstream.vo1.Address>
<com.xstream.vo1.Address>
<addType>type4</addType>
<place>人民广场4</place>
</com.xstream.vo1.Address>
</listAdd>
</addes>
</com.xstream.vo1.Person>
<!-- </listPerson> -->
</com.xstream.vo1.Persons>
4.属性混叠:创建一个成员变量作为XML属性序列化
xstream.useAttributeFor(Person.class, "name");
xstream.aliasField("personName", Person.class, "name");
输出:
<com.xstream.vo1.Persons>
<type>001</type>
<listPerson>
<com.xstream.vo1.Person personName="6666554">
<sex>lavasoft</sex>
<tel>man</tel>
<addes>
<listAdd>
<com.xstream.vo1.Address>
<addType>type1</addType>
<place>人民广场1</place>
</com.xstream.vo1.Address>
<com.xstream.vo1.Address>
<addType>type2</addType>
<place>人民广场2</place>
</com.xstream.vo1.Address>
</listAdd>
</addes>
</com.xstream.vo1.Person>
<com.xstream.vo1.Person personName="7777754">
<sex>yutian</sex>
<tel>man</tel>
<addes>
<listAdd>
<com.xstream.vo1.Address>
<addType>type3</addType>
<place>人民广场3</place>
</com.xstream.vo1.Address>
<com.xstream.vo1.Address>
<addType>type4</addType>
<place>人民广场4</place>
</com.xstream.vo1.Address>
</listAdd>
</addes>
</com.xstream.vo1.Person>
</listPerson>
</com.xstream.vo1.Persons>
5、包混叠:创建一个类XML的完全限定名称的别名到一个新的限定名称
xstream.aliasPackage("my.test.xstream", "com.xstream.vo1");
输出:
<my.test.xstream.Persons>
<type>001</type>
<listPerson>
<my.test.xstream.Person>
<name>6666554</name>
<sex>lavasoft</sex>
<tel>man</tel>
<addes>
<listAdd>
<my.test.xstream.Address>
<addType>type1</addType>
<place>人民广场1</place>
</my.test.xstream.Address>
<my.test.xstream.Address>
<addType>type2</addType>
<place>人民广场2</place>
</my.test.xstream.Address>
</listAdd>
</addes>
</my.test.xstream.Person>
<my.test.xstream.Person>
<name>7777754</name>
<sex>yutian</sex>
<tel>man</tel>
<addes>
<listAdd>
<my.test.xstream.Address>
<addType>type3</addType>
<place>人民广场3</place>
</my.test.xstream.Address>
<my.test.xstream.Address>
<addType>type4</addType>
<place>人民广场4</place>
</my.test.xstream.Address>
</listAdd>
</addes>
</my.test.xstream.Person>
</listPerson>
</my.test.xstream.Persons>