XStream生成XMl文件,设置别名

前端之家收集整理的这篇文章主要介绍了XStream生成XMl文件,设置别名前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. public class B2BPayToXml {
  2.  
  3. public Head head;
  4. public Body body;
  5.  
  6. public void setHead(Head head) {
  7. this.head = head;
  8. }
  9.  
  10. public void setBody(Body body) {
  11. this.body = body;
  12. }
  13. }


  1. /**
  2. * 报文头部信息
  3. * @author lizhiyong
  4. * @version $Id: Head.java,v 0.1
  5. 2014年9月24日 上午10:01:57 Exp $
  6. */
  7. public class Head {
  8. public String MerPtcId;
  9.  
  10. public String TranTime;
  11.  
  12. public String TranCode;
  13.  
  14. public String TranDate;
  15.  
  16. public Head(String merPtcId,String tranTime,String tranCode,String tranDate) {
  17. MerPtcId = merPtcId;
  18. TranTime = tranTime;
  19. TranCode = tranCode;
  20. TranDate = tranDate;
  21. }
  22. }


  1. /**
  2. * 报文体信息
  3. * @author lizhiyong
  4. * @version $Id: Body.java,v 0.1
  5. 2014年9月24日 上午10:03:30 Exp $
  6. */
  7. public class Body {
  8. public String MerTranSerialNo;
  9.  
  10. public String SafeReserved;
  11. //协议信息
  12. public PtcInfo ptcInfo;
  13.  
  14. //业务信息
  15. public BusiInfo busiInfo;
  16.  
  17. //会员信息
  18. public UserInfo userInfo;
  19.  
  20. //商品信息
  21. public GoodsInfo goodsInfo;
  22.  
  23. //交易信息
  24. public TranInfo tranInfo;
  25.  
  26. //通道信息
  27. public ChannelInfo channelInfo;
  28.  
  29. //备注信息
  30. public MemoInfo memoInfo;
  31.  
  32. public void setMerTranSerialNo(String merTranSerialNo) {
  33. MerTranSerialNo = merTranSerialNo;
  34. }
  35.  
  36. public void setSafeReserved(String safeReserved) {
  37. SafeReserved = safeReserved;
  38. }
  39.  
  40. public void setPtcInfo(PtcInfo ptcInfo) {
  41. this.ptcInfo = ptcInfo;
  42. }
  43.  
  44. public void setBusiInfo(BusiInfo busiInfo) {
  45. this.busiInfo = busiInfo;
  46. }
  47.  
  48. public void setUserInfo(UserInfo userInfo) {
  49. this.userInfo = userInfo;
  50. }
  51.  
  52. public void setGoodsInfo(GoodsInfo goodsInfo) {
  53. this.goodsInfo = goodsInfo;
  54. }
  55.  
  56. public void setTranInfo(TranInfo tranInfo) {
  57. this.tranInfo = tranInfo;
  58. }
  59.  
  60. public void setChannelInfo(ChannelInfo channelInfo) {
  61. this.channelInfo = channelInfo;
  62. }
  63.  
  64. public void setMemoInfo(MemoInfo memoInfo) {
  65. this.memoInfo = memoInfo;
  66. }
  67. }



  1. /**
  2. * 协议信息
  3. * @author lizhiyong
  4. * @version $Id: PtcInfo.java,v 0.1
  5. 2014年9月24日 上午10:09:52 Exp $
  6. */
  7. public class PtcInfo {
  8. public String SubMerPtcId;
  9.  
  10. public PtcInfo(String subMerPtcId) {
  11. SubMerPtcId = subMerPtcId;
  12. }
  13. }

  1. /**
  2. * 业务信息
  3. * @author lizhiyong
  4. * @version $Id: BusiInfo.java,v 0.1
  5. 2014年9月24日 上午10:08:00 Exp $
  6. */
  7. public class BusiInfo {
  8. public String MerOrderNo;
  9.  
  10. public BusiInfo(String merOrderNo) {
  11. MerOrderNo = merOrderNo;
  12. }
  13. }

  1. /**
  2. * 会员信息
  3. * @author lizhiyong
  4. * @version $Id: UserInfo.java,v 0.1
  5. 2014年9月24日 上午10:08:47 Exp $
  6. */
  7. public class UserInfo {
  8. public String BuyerId;
  9.  
  10. public String BuyerName;
  11.  
  12. public String SellerId;
  13.  
  14. public String SellerName;
  15.  
  16. public UserInfo(String buyerId,String buyerName,String sellerId,String sellerName) {
  17. BuyerId = buyerId;
  18. BuyerName = buyerName;
  19. SellerId = sellerId;
  20. SellerName = sellerName;
  21. }
  22. }

  1. /**
  2. * 商品信息
  3. * @author lizhiyong
  4. * @version $Id: GoodsInfo.java,v 0.1
  5. 2014年9月24日 上午10:09:15 Exp $
  6. */
  7. public class GoodsInfo {
  8. public String GoodsName;
  9.  
  10. public String GoodsTxt;
  11.  
  12. public String GoodsDesc;
  13.  
  14. public GoodsInfo(String goodsName,String goodsTxt,String goodsDesc) {
  15. GoodsName = goodsName;
  16. GoodsTxt = goodsTxt;
  17. GoodsDesc = goodsDesc;
  18. }
  19. }

  1. /**
  2. * 交易信息
  3. * @author lizhiyong
  4. * @version $Id: TranInfo.java,v 0.1
  5. 2014年9月24日 上午10:10:17 Exp $
  6. */
  7. public class TranInfo {
  8. public String TranModeId;
  9.  
  10. public String TranAmt;
  11.  
  12. public String TranCry;
  13.  
  14. public TranInfo(String tranModeId,String tranAmt,String tranCry) {
  15. TranModeId = tranModeId;
  16. TranAmt = tranAmt;
  17. TranCry = tranCry;
  18. }
  19. }

  1. /**
  2. * 通道信息
  3. * @author lizhiyong
  4. * @version $Id: ChannelInfo.java,v 0.1
  5. 2014年9月24日 上午10:10:46 Exp $
  6. */
  7. public class ChannelInfo {
  8. public String ChannelApi;
  9.  
  10. public String ChannelInst;
  11.  
  12. public ChannelInfo(String channelApi,String channelInst) {
  13. ChannelApi = channelApi;
  14. ChannelInst = channelInst;
  15. }
  16. }

  1. /**
  2. * 备注信息
  3. * @author lizhiyong
  4. * @version $Id: MemoInfo.java,v 0.1
  5. 2014年9月24日 上午10:11:10 Exp $
  6. */
  7. public class MemoInfo {
  8. public String BuyerMemo;
  9.  
  10. public String SellerMemo;
  11.  
  12. public String PlatMemo;
  13.  
  14. public String PayMemo;
  15.  
  16. public MemoInfo(String buyerMemo,String sellerMemo,String platMemo,String payMemo) {
  17. BuyerMemo = buyerMemo;
  18. SellerMemo = sellerMemo;
  19. PlatMemo = platMemo;
  20. PayMemo = payMemo;
  21. }
  22. }

  1. XStream xStream = new XStream(new DomDriver());
  2. xStream.alias("Document",B2BPayToXml.class);
  3. //设置类别名
  4. xStream.aliasField("Head",B2BPayToXml.class,"head");
  5. xStream.aliasField("Body","body");
  6. xStream.aliasField("PtcInfo",Body.class,"ptcInfo");
  7. xStream.aliasField("BusiInfo","busiInfo");
  8. xStream.aliasField("UserInfo","userInfo");
  9. xStream.aliasField("GoodsInfo","goodsInfo");
  10. xStream.aliasField("TranInfo","tranInfo");
  11. xStream.aliasField("ChannelInfo","channelInfo");
  12. xStream.aliasField("MemoInfo","memoInfo");
  13. B2BPayToXml bToXml = new B2BPayToXml();
  14. //头部信息
  15. bToXml.setHead(new Head(merPtcId,tranTime,tranCode,tranDate));
  16. //协议信息
  17. PtcInfo ptcInfo = new PtcInfo(subMerPtcId);
  18. //业务信息
  19. BusiInfo busiInfo = new BusiInfo(merOrderNo);
  20. //会员信息
  21. UserInfo userInfo = new UserInfo(buyerId,buyerName,sellerId,sellerName);
  22. //商品信息
  23. GoodsInfo goodsInfo = new GoodsInfo(goodsName,goodsTxt,goodsDesc);
  24. //交易信息
  25. TranInfo tranInfo = new TranInfo(tranModeId,tranAmt,tranCry);
  26. //通道信息
  27. ChannelInfo channelInfo = new ChannelInfo(channelApi,channelInst);
  28. //备注信息
  29. MemoInfo memoInfo = new MemoInfo(buyerMemo,sellerMemo,platMemo,payMemo);
  30.  
  31. Body body = new Body();
  32. body.setMerTranSerialNo(merTranSerialNo);
  33. body.setSafeReserved(safeReserved);
  34. body.setPtcInfo(ptcInfo);
  35. body.setBusiInfo(busiInfo);
  36. body.setUserInfo(userInfo);
  37. body.setGoodsInfo(goodsInfo);
  38. body.setTranInfo(tranInfo);
  39. body.setChannelInfo(channelInfo);
  40. body.setMemoInfo(memoInfo);
  41.  
  42. bToXml.setBody(body);
  43. String top = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n";
  44. String xml = top + xStream.toXML(bToXml);

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

结果:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Document>
  3. <Head>
  4. <MerPtcId>0000</MerPtcId>
  5. <TranTime>0000</TranTime>
  6. <TranCode>0000</TranCode>
  7. <TranDate>0000</TranDate>
  8. </Head>
  9. <Body>
  10. <MerTranSerialNo>0000</MerTranSerialNo>
  11. <SafeReserved>0000</SafeReserved>
  12. <PtcInfo>
  13. <SubMerPtcId>0000</SubMerPtcId>
  14. </PtcInfo>
  15. <BusiInfo>
  16. <MerOrderNo>0000</MerOrderNo>
  17. </BusiInfo>
  18. <UserInfo>
  19. <BuyerId>0000</BuyerId>
  20. <BuyerName>0000</BuyerName>
  21. <SellerId>0000</SellerId>
  22. <SellerName>0000</SellerName>
  23. </UserInfo>
  24. <GoodsInfo>
  25. <GoodsName>0000</GoodsName>
  26. <GoodsTxt>0000</GoodsTxt>
  27. <GoodsDesc>0000</GoodsDesc>
  28. </GoodsInfo>
  29. <TranInfo>
  30. <TranModeId>0000</TranModeId>
  31. <TranAmt>0000</TranAmt>
  32. <TranCry>0000</TranCry>
  33. </TranInfo>
  34. <ChannelInfo>
  35. <ChannelApi>0000</ChannelApi>
  36. <ChannelInst>0000</ChannelInst>
  37. </ChannelInfo>
  38. <MemoInfo>
  39. <BuyerMemo>0000</BuyerMemo>
  40. <SellerMemo>0000</SellerMemo>
  41. <PlatMemo>0000</PlatMemo>
  42. <PayMemo>0000</PayMemo>
  43. </MemoInfo>
  44. </Body>
  45. </Document>

猜你在找的XML相关文章