posts - 19,  comments - 11,  trackbacks - 0
          如果想 JAXB 2.0 XJC 映射 xs:date 到 java.util.Date
          最簡單的方法是直接更改生成的代碼, 找到所有XMLGregorianCalendar 然后用Date 替換. 如果有好的IDE工具很容易做到, 但這只對schema不常改動有用,否則每次都要做替換.

          如果想讓XJC生成正確的東西, 需要做customization
          <xs:schema elementFormDefault="qualified" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0" targetNamespace="calendar-schemalet">
            
          <xs:annotation><xs:appinfo>
              
          <jaxb:globalBindings>
                
          <jaxb:javaType name="java.util.Calendar" xmlType="xs:date"
                  parseMethod
          ="javax.xml.bind.DatatypeConverter.parseDate"
                  printMethod
          ="javax.xml.bind.DatatypeConverter.printDate"
                  
          />
              
          </jaxb:globalBindings>
            
          </xs:appinfo></xs:annotation>
          </xs:schema>
          javaType 會做到, 上面是把xs:date 映射到 Calendar類型, 如果要映射到Date, 需要定義一對靜態(tài)方法去轉(zhuǎn)換 XML string 和 Date. 下面是轉(zhuǎn)換代碼
          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);
            }

          }
          替換上面 parse/print 方面就可以了
          <xs:schema elementFormDefault="qualified" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0" targetNamespace="calendar-schemalet">
            
          <xs:annotation><xs:appinfo>
              
          <jaxb:globalBindings>
                
          <jaxb:javaType name="java.util.Date" xmlType="xs:date"
                  parseMethod
          ="DateAdapter.parseDate"
                  printMethod
          ="DateAdapter.printDate"
                  
          />
              
          </jaxb:globalBindings>
            
          </xs:appinfo></xs:annotation>
          </xs:schema>

          posted on 2008-11-14 15:06 happyy2k 閱讀(1838) 評論(2)  編輯  收藏 所屬分類: Web Service

          FeedBack:
          # re: 轉(zhuǎn)換 xs:date 到 java.util.Date 的Tips[未登錄]
          2012-08-12 06:37 | 劉軍
          你好, 我想問下 JAXB如何覆蓋自定義的數(shù)據(jù)類型

          能給出詳細的步聚嗎

          謝謝!  回復(fù)  更多評論
            
          # re: 轉(zhuǎn)換 xs:date 到 java.util.Date 的Tips[未登錄]
          2012-08-12 06:45 | 劉軍
          你好, 我想問下 JAXB如何覆蓋自定義的數(shù)據(jù)類型
          能給出詳細的步聚嗎

          跪求!  回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          <2012年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(2)

          隨筆分類(20)

          隨筆檔案(12)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 琼中| 旬阳县| 刚察县| 芷江| 昆明市| 保德县| 吉水县| 西藏| 搜索| 瓦房店市| 且末县| 深州市| 博爱县| 鹤峰县| 新丰县| 利川市| 仙居县| 巩义市| 吉水县| 凤山市| 水城县| 龙泉市| 股票| 保山市| 抚州市| 乳源| 长沙县| 福海县| 灵宝市| 友谊县| 南澳县| 连山| 望奎县| 寿宁县| 修文县| 伊宁市| 平凉市| 北京市| 阿合奇县| 调兵山市| 南京市|