XStream生成XMl檔案,設定別名
阿新 • • 發佈:2019-02-02
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>