XStream生成XMl文件,设置别名

public class B2BPayToXml {

    public Head head;

    public Body body;

    public void setHead(Head head) {
        this.head = head;
    }

    public void setBody(Body body) {
        this.body = body;
    }
}

/**
 * 报文头部信息
 * @author lizhiyong
 * @version $Id: Head.java, v 0.1
		2014年9月24日 上午10:01:57 Exp $
 */
public class Head {
    public String MerPtcId;

    public String TranTime;

    public String TranCode;

    public String TranDate;

    public Head(String merPtcId, String tranTime, String tranCode, String tranDate) {
        MerPtcId = merPtcId;
        TranTime = tranTime;
        TranCode = tranCode;
        TranDate = tranDate;
    }
}
/**
 * 报文体信息
 * @author lizhiyong
 * @version $Id: Body.java, v 0.1
		2014年9月24日 上午10:03:30 Exp $
 */
public class Body {
    public String      MerTranSerialNo;

    public String      SafeReserved;

    //协议信息
    public PtcInfo     ptcInfo;

    //业务信息
    public BusiInfo    busiInfo;

    //会员信息
    public UserInfo    userInfo;

    //商品信息
    public GoodsInfo   goodsInfo;

    //交易信息
    public TranInfo    tranInfo;

    //通道信息
    public ChannelInfo channelInfo;

    //备注信息
    public MemoInfo    memoInfo;

    public void setMerTranSerialNo(String merTranSerialNo) {
        MerTranSerialNo = merTranSerialNo;
    }

    public void setSafeReserved(String safeReserved) {
        SafeReserved = safeReserved;
    }

    public void setPtcInfo(PtcInfo ptcInfo) {
        this.ptcInfo = ptcInfo;
    }

    public void setBusiInfo(BusiInfo busiInfo) {
        this.busiInfo = busiInfo;
    }

    public void setUserInfo(UserInfo userInfo) {
        this.userInfo = userInfo;
    }

    public void setGoodsInfo(GoodsInfo goodsInfo) {
        this.goodsInfo = goodsInfo;
    }

    public void setTranInfo(TranInfo tranInfo) {
        this.tranInfo = tranInfo;
    }

    public void setChannelInfo(ChannelInfo channelInfo) {
        this.channelInfo = channelInfo;
    }

    public void setMemoInfo(MemoInfo memoInfo) {
        this.memoInfo = memoInfo;
    }
}
/**
 * 协议信息
 * @author lizhiyong
 * @version $Id: PtcInfo.java, v 0.1
		2014年9月24日 上午10:09:52 Exp $
 */
public class PtcInfo {
    public String SubMerPtcId;

    public PtcInfo(String subMerPtcId) {
        SubMerPtcId = subMerPtcId;
    }
}
/**
 * 业务信息
 * @author lizhiyong
 * @version $Id: BusiInfo.java, v 0.1
		2014年9月24日 上午10:08:00 Exp $
 */
public class BusiInfo {
    public String MerOrderNo;

    public BusiInfo(String merOrderNo) {
        MerOrderNo = merOrderNo;
    }
}
/**
 * 会员信息
 * @author lizhiyong
 * @version $Id: UserInfo.java, v 0.1
		2014年9月24日 上午10:08:47 Exp $
 */
public class UserInfo {
    public String BuyerId;

    public String BuyerName;

    public String SellerId;

    public String SellerName;

    public UserInfo(String buyerId, String buyerName, String sellerId, String sellerName) {
        BuyerId = buyerId;
        BuyerName = buyerName;
        SellerId = sellerId;
        SellerName = sellerName;
    }
}
/**
 * 商品信息
 * @author lizhiyong
 * @version $Id: GoodsInfo.java, v 0.1
		2014年9月24日 上午10:09:15 Exp $
 */
public class GoodsInfo {
    public String GoodsName;

    public String GoodsTxt;

    public String GoodsDesc;

    public GoodsInfo(String goodsName, String goodsTxt, String goodsDesc) {
        GoodsName = goodsName;
        GoodsTxt = goodsTxt;
        GoodsDesc = goodsDesc;
    }
}
/**
 * 交易信息
 * @author lizhiyong
 * @version $Id: TranInfo.java, v 0.1
		2014年9月24日 上午10:10:17 Exp $
 */
public class TranInfo {
    public String TranModeId;

    public String TranAmt;

    public String TranCry;

    public TranInfo(String tranModeId, String tranAmt, String tranCry) {
        TranModeId = tranModeId;
        TranAmt = tranAmt;
        TranCry = tranCry;
    }
}
/**
 * 通道信息
 * @author lizhiyong
 * @version $Id: ChannelInfo.java, v 0.1
		2014年9月24日 上午10:10:46 Exp $
 */
public class ChannelInfo {
    public String ChannelApi;

    public String ChannelInst;

    public ChannelInfo(String channelApi, String channelInst) {
        ChannelApi = channelApi;
        ChannelInst = channelInst;
    }
}
/**
 * 备注信息
 * @author lizhiyong
 * @version $Id: MemoInfo.java, v 0.1
		2014年9月24日 上午10:11:10 Exp $
 */
public class MemoInfo {
    public String BuyerMemo;

    public String SellerMemo;

    public String PlatMemo;

    public String PayMemo;

    public MemoInfo(String buyerMemo, String sellerMemo, String platMemo, String payMemo) {
        BuyerMemo = buyerMemo;
        SellerMemo = sellerMemo;
        PlatMemo = platMemo;
        PayMemo = payMemo;
    }
}
XStream xStream = new XStream(new DomDriver());
            xStream.alias("Document", B2BPayToXml.class);
            //设置类别名
            xStream.aliasField("Head", B2BPayToXml.class, "head");
            xStream.aliasField("Body", B2BPayToXml.class, "body");
            xStream.aliasField("PtcInfo", Body.class, "ptcInfo");
            xStream.aliasField("BusiInfo", Body.class, "busiInfo");
            xStream.aliasField("UserInfo", Body.class, "userInfo");
            xStream.aliasField("GoodsInfo", Body.class, "goodsInfo");
            xStream.aliasField("TranInfo", Body.class, "tranInfo");
            xStream.aliasField("ChannelInfo", Body.class, "channelInfo");
            xStream.aliasField("MemoInfo", Body.class, "memoInfo");
            B2BPayToXml bToXml = new B2BPayToXml();
            //头部信息
            bToXml.setHead(new Head(merPtcId, tranTime, tranCode, tranDate));
            //协议信息
            PtcInfo ptcInfo = new PtcInfo(subMerPtcId);
            //业务信息
            BusiInfo busiInfo = new BusiInfo(merOrderNo);
            //会员信息
            UserInfo userInfo = new UserInfo(buyerId, buyerName, sellerId, sellerName);
            //商品信息
            GoodsInfo goodsInfo = new GoodsInfo(goodsName, goodsTxt, goodsDesc);
            //交易信息
            TranInfo tranInfo = new TranInfo(tranModeId, tranAmt, tranCry);
            //通道信息
            ChannelInfo channelInfo = new ChannelInfo(channelApi, channelInst);
            //备注信息
            MemoInfo memoInfo = new MemoInfo(buyerMemo, sellerMemo, platMemo, payMemo);

            Body body = new Body();
            body.setMerTranSerialNo(merTranSerialNo);
            body.setSafeReserved(safeReserved);
            body.setPtcInfo(ptcInfo);
            body.setBusiInfo(busiInfo);
            body.setUserInfo(userInfo);
            body.setGoodsInfo(goodsInfo);
            body.setTranInfo(tranInfo);
            body.setChannelInfo(channelInfo);
            body.setMemoInfo(memoInfo);

            bToXml.setBody(body);
            String top = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n";
            String xml = top + xStream.toXML(bToXml);

写一个测试类:代码就不写了:

结果:

<?xml version="1.0" encoding="UTF-8"?>
<Document>
  <Head>
    <MerPtcId>0000</MerPtcId>
    <TranTime>0000</TranTime>
    <TranCode>0000</TranCode>
    <TranDate>0000</TranDate>
  </Head>
  <Body>
    <MerTranSerialNo>0000</MerTranSerialNo>
    <SafeReserved>0000</SafeReserved>
    <PtcInfo>
      <SubMerPtcId>0000</SubMerPtcId>
    </PtcInfo>
    <BusiInfo>
      <MerOrderNo>0000</MerOrderNo>
    </BusiInfo>
    <UserInfo>
      <BuyerId>0000</BuyerId>
      <BuyerName>0000</BuyerName>
      <SellerId>0000</SellerId>
      <SellerName>0000</SellerName>
    </UserInfo>
    <GoodsInfo>
      <GoodsName>0000</GoodsName>
      <GoodsTxt>0000</GoodsTxt>
      <GoodsDesc>0000</GoodsDesc>
    </GoodsInfo>
    <TranInfo>
      <TranModeId>0000</TranModeId>
      <TranAmt>0000</TranAmt>
      <TranCry>0000</TranCry>
    </TranInfo>
    <ChannelInfo>
      <ChannelApi>0000</ChannelApi>
      <ChannelInst>0000</ChannelInst>
    </ChannelInfo>
    <MemoInfo>
      <BuyerMemo>0000</BuyerMemo>
      <SellerMemo>0000</SellerMemo>
      <PlatMemo>0000</PlatMemo>
      <PayMemo>0000</PayMemo>
    </MemoInfo>
  </Body>
</Document>
时间: 2024-11-03 21:04:50

XStream生成XMl文件,设置别名的相关文章

跨平台支持的WebService接口Demo,利用xstream快速解析和生成xml文件

原文:跨平台支持的WebService接口Demo,利用xstream快速解析和生成xml文件 源代码下载地址:http://www.zuidaima.com/share/1591110000167936.htm 这个是我本人写的CXF的WebService的一个正在项目中使用的程序, 支持跨平台,经测试,java和C#客户端能正常使用,其中利用Xstream生成和解析xml,不需要修改对象;支持内部私有字段,直接根据生成java类生成xml,反过来根据xml生成java类. 运行说明: 部署到

使用XML序列化器生成XML文件和利用pull解析XML文件

首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message> <sms> <body> 陈驰0 </body> <date> 1462162910995 </date> <address> 1380 </address> <type> 1 </type> &

利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析

首先下载oxygen软件(Oxygen XML Editor),目前使用的是试用版(可以安装好软件以后get trial licence,获得免费使用30天的权限,当然这里鼓励大家用正版软件!!!) 1 首先建立一个空白XML文件,直接点击下图所示即可: 2 可以使用xml文本编辑界面,或者使用xml树状图编辑界面 切换到xml树状图编辑界面的方法为: 即可调出当前xml文件所对应的xml树状图编辑界面 3 设计并编辑xml文件 根据自己的需要可以利用xml树状图操作界面来方便的设计自己的xml

使用Pull解析器生成XML文件

有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使用pull解析器生成XML文件,这里推荐大家使用Pull解析器. 1.使用Pull解析器生成一个与itcast.xml文件内容相同的myitcast.xml文件,代码在下方 public static String writeXML(List<Person> persons, Writer wri

5.29日 自己程序的编写,目的:生成xml文件

1.创建了XMLModel这个类:本来还有个rebuildformXML的方法,但是现在用不到,以后再说. public interface XmlModel { public void initModel(); public void doSaveXML(); } 2.对AbstractModel这个类进行了修改,最终变为: package hellogef.model; import java.beans.PropertyChangeListener; import java.beans.P

获取mysql内容,生成xml文件,并且以webservice形式发送

<xyt> <news id> <url></url> <title></title> </news> </xyt> 其实是三个知识点综合到一起的,包括如何访问mysql,如何生成xml文件,如何使用进行webservice开发 好了,话不多说,直接粘代码 package com.service; import java.io.FileOutputStream; import java.io.IOExcepti

PHP读取及生成xml文件实测

PHP生成xml文件方法的四个方法,博主google了下http://www.phppan.com/2009/10/use-php-create-xml-file/这篇写的还不错,实测用了php现成支持的DomDocument方式生成xml文件,是可以用的. 注意XMLWriter的方式生成需要PHP开启扩展php-xml支持. 以下是博主亲测可用的demo: $xml = new DOMDocument('1.0', 'utf-8'); $xml_MeetingAttendee = $xml-

获得mysql内容,生成xml文件,另外,为了webservice发送

<xyt> <news id> <url></url> <title></title> </news> </xyt> 事实上是三个知识点综合到一起的.包含怎样訪问mysql.怎样生成xml文件,怎样使用进行webservice开发 好了.话不多说.直接粘代码 package com.service; import java.io.FileOutputStream; import java.io.IOExcept

Android下使用pull解析器生成XML文件、读取XML文件

Android下使用Pull解析器 1,Pull解析器的运行方式与SAX解析器相似.它提供了类似的事件,如:开始元素和结束元素事件. 2,使用parser.next()可以进入下一个元素并触发相应事件. 3,事件将作为一个int数值被发送,因此可以使用一个switch对相应的事件进行处理. 4,当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型节点的值. 5,相关API: 获得当前节点事件类型:parser.getEventType(); 获得下一节点事件类型