W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
XML 與 Java 都有自身語言的數(shù)據(jù)類型,它們大多數(shù)是對應(yīng)的,有時候我們想更改這種映射關(guān)系,就需要使用到 bindings.xml
。
如下是一個簡單的映射關(guān)系,表示將 XML 中的 xs:date
類型映射到 Java 中的 java.util.Calendar
。
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<globalBindings>
<javaType name="java.util.Calendar" xmlType="xs:date"
parseMethod="javax.xml.bind.DatatypeConverter.parseDate"
printMethod="javax.xml.bind.DatatypeConverter.printDate" />
</globalBindings>
</bindings>
這里使用到了內(nèi)置的解析函數(shù)parseDate
。
xjc book.xsd -b bindings.xml
-b
參數(shù)
xjc book.xsd -b binding1.xml -b binding2.xml
如果不能滿足業(yè)務(wù)需求,還可以自己實現(xiàn)解析規(guī)則:
public class DateAdapter {
public static Date parseDate(String s) {
return DatatypeConverter.parseDate(s).getTime();
}
public static String printDate(Date dt) {
Calendar cal = new GregorianCalendar();
cal.setTime(dt);
return DatatypeConverter.printDate(cal);
}
}
代碼置于 com.csdn.jaxb.DateAadpter
,編寫自定義mybindings.xml
<bindings xmlns="http://java.sun.com/xml/ns/jaxb"
version="2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<globalBindings>
<javaType name="java.util.Date" xmlType="xs:date"
parseMethod="com.csdn.jaxb.DateAadpter.parseDate"
printMethod="com.csdn.jaxb.DateAdapter.printDate"
/>
</globalBindings>
</binding>
指定為自己定義的映射文件(如果要直接在終端運行,需要配置Java 的 CLASSPATH)
xjc book.xsd -b mybindings.xml
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: