xstream ---混叠(二)

混叠

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>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值