根據xml生成xsd,再根據xsd生成對應javabean
阿新 • • 發佈:2018-12-13
1、利用trang.jar將Xml 轉換成xsd
Trang 是一種命令列的可以XML生成XSD的工具,生成XML檔案對應的XSD檔案只需要3個簡單的步驟: 第一步 下載Trang 從http://www.thaiopensource.com/relaxng/trang.html 上下載trang-version.zip
第二步 解壓zip 將trang-version.zip解壓到某個目錄,比如d:\trang 第三步 生成XSD 假設在 d:\trang 下有一個xml檔案 test.xml
<?xml version="1.0" encoding="UTF-8"standalone="yes"?> <AP> <MSG_CODE>test</MSG_CODE> <MSG_TEXT>test</MSG_TEXT> <TRANS_NO>test</TRANS_NO> <RESULT_LIST> <RESULT> <TRD_DATE>test</TRD_DATE> <APP_TIMESTAMP>test</APP_TIMESTAMP> <APP_SNO>test</APP_SNO> <CUST_CODE>test</CUST_CODE> <CUST_NAME>test</CUST_NAME> <CUACCT_CODE>test</CUACCT_CODE> <TA_CODE>test</TA_CODE> <TA_ACCT>test</TA_ACCT> <TRANS_ACCT>test</TRANS_ACCT> <MBR_CODE>test</MBR_CODE> <ORI_APP_SNO>test</ORI_APP_SNO> <ISS_CODE>test</ISS_CODE> <INST_CODE>test</INST_CODE> <INST_ID>test</INST_ID> <INST_SNAME>test</INST_SNAME> <INST_TYPE>test</INST_TYPE> <INST_CLS>test</INST_CLS> <TRD_ID>test</TRD_ID> <CANCEL_FLAG>test</CANCEL_FLAG> <TRD_QTY>test</TRD_QTY> </RESULT> <RESULT> <TRD_DATE>test</TRD_DATE> <APP_TIMESTAMP>test</APP_TIMESTAMP> <APP_SNO>test</APP_SNO> <CUST_CODE>test</CUST_CODE> <CUST_NAME>test</CUST_NAME> <CUACCT_CODE>test</CUACCT_CODE> <TA_CODE>test</TA_CODE> <TA_ACCT>test</TA_ACCT> <TRANS_ACCT>test</TRANS_ACCT> <MBR_CODE>test</MBR_CODE> <ORI_APP_SNO>test</ORI_APP_SNO> <ISS_CODE>test</ISS_CODE> <INST_CODE>test</INST_CODE> <INST_ID>test</INST_ID> <INST_SNAME>test</INST_SNAME> <INST_TYPE>test</INST_TYPE> <INST_CLS>test</INST_CLS> <TRD_ID>test</TRD_ID> <CANCEL_FLAG>test</CANCEL_FLAG> <TRD_QTY>test</TRD_QTY> </RESULT> </RESULT_LIST> </AP>
開啟windows命令列,將當前位置變更到 d:\trang 輸入 java -jar trang.jar test.xml test.xsd (trang.jar 接受兩個引數,第一個為原始檔,第二個為目標檔案) ok!你可以看到在 d:\trang 下就生成了 test.xsd 檔案
<?xmlversion="1.0" encoding="UTF-8"?> <xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema"elementFormDefault="qualified"> <xs:element name="AP"> <xs:complexType> <xs:sequence> <xs:elementref="MSG_CODE"/> <xs:elementref="MSG_TEXT"/> <xs:elementref="TRANS_NO"/> <xs:elementref="RESULT_LIST"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="MSG_CODE"type="xs:NCName"/> <xs:element name="MSG_TEXT"type="xs:NCName"/> <xs:element name="TRANS_NO"type="xs:NCName"/> <xs:elementname="RESULT_LIST"> <xs:complexType> <xs:sequence> <xs:elementmaxOccurs="unbounded" ref="RESULT"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="RESULT"> <xs:complexType> <xs:sequence> <xs:elementref="TRD_DATE"/> <xs:elementref="APP_TIMESTAMP"/> <xs:elementref="APP_SNO"/> <xs:elementref="CUST_CODE"/> <xs:elementref="CUST_NAME"/> <xs:elementref="CUACCT_CODE"/> <xs:elementref="TA_CODE"/> <xs:elementref="TA_ACCT"/> <xs:element ref="TRANS_ACCT"/> <xs:elementref="MBR_CODE"/> <xs:elementref="ORI_APP_SNO"/> <xs:elementref="ISS_CODE"/> <xs:elementref="INST_CODE"/> <xs:elementref="INST_ID"/> <xs:elementref="INST_SNAME"/> <xs:element ref="INST_TYPE"/> <xs:elementref="INST_CLS"/> <xs:elementref="CANCEL_FLAG"/> <xs:elementref="TRD_QTY"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="TRD_DATE"type="xs:NCName"/> <xs:element name="APP_TIMESTAMP"type="xs:NCName"/> <xs:element name="APP_SNO"type="xs:NCName"/> <xs:element name="CUST_CODE"type="xs:NCName"/> <xs:element name="CUST_NAME"type="xs:NCName"/> <xs:element name="CUACCT_CODE"type="xs:NCName"/> <xs:element name="TA_CODE"type="xs:NCName"/> <xs:element name="TA_ACCT"type="xs:NCName"/> <xs:element name="TRANS_ACCT"type="xs:NCName"/> <xs:element name="MBR_CODE"type="xs:NCName"/> <xs:element name="ORI_APP_SNO"type="xs:NCName"/> <xs:element name="ISS_CODE"type="xs:NCName"/> <xs:element name="INST_CODE"type="xs:NCName"/> <xs:element name="INST_ID"type="xs:NCName"/> <xs:element name="INST_SNAME"type="xs:NCName"/> <xs:element name="INST_TYPE"type="xs:NCName"/> <xs:element name="INST_CLS"type="xs:NCName"/> <xs:element name="TRD_ID"type="xs:NCName"/> <xs:element name="CANCEL_FLAG"type="xs:NCName"/> <xs:element name="TRD_QTY"type="xs:NCName"/> </xs:schema>
這裡的xs:NCName可以改為xs:string這樣生成的bean屬性就是String型別的。
2、利用網路線上工具將xml轉成xsd和dtd
3、Jaxb將xsd轉成Bean
進入到你的xsd的資料夾下,在cmd模式下執行 xjc -p com.ebupt a.xsd -d abc 說明下: xjc -p 包的路徑 xsd的名字.xsd -d 目標的資料夾