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)方法去轉換 XML string 和 Date. 下面是轉換代碼
          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: 轉換 xs:date 到 java.util.Date 的Tips[未登錄]
          2012-08-12 06:37 | 劉軍
          你好, 我想問下 JAXB如何覆蓋自定義的數(shù)據(jù)類型

          能給出詳細的步聚嗎

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

          跪求!  回復  更多評論
            

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


          網(wǎng)站導航:
           

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

          常用鏈接

          留言簿(2)

          隨筆分類(20)

          隨筆檔案(12)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 蒙自县| 三原县| 张家界市| 深州市| 个旧市| 安庆市| 北安市| 婺源县| 两当县| 梨树县| 汝州市| 阳春市| 华池县| 曲阳县| 鞍山市| 龙口市| 全南县| 灯塔市| 临西县| 尼勒克县| 湟中县| 德阳市| 临海市| 海安县| 宝山区| 石嘴山市| 凤冈县| 伊春市| 镇巴县| 宁陵县| 体育| 社旗县| 镇原县| 忻州市| 福贡县| 天镇县| 凌源市| 长沙市| 富民县| 礼泉县| 山阴县|