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 閱讀(1843) 評論(2)  編輯  收藏 所屬分類: Web Service

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

          能給出詳細(xì)的步聚嗎

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

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

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


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

          <2008年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(2)

          隨筆分類(20)

          隨筆檔案(12)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 靖州| 绿春县| 延吉市| 弥渡县| 宽城| 东源县| 包头市| 富源县| 尉犁县| 萍乡市| 东山县| 略阳县| 武乡县| 博客| 容城县| 肇州县| 垦利县| 开化县| 宜都市| 淮安市| 大洼县| 德化县| 北流市| 中山市| 阳泉市| 东辽县| 灵武市| 博罗县| 舒城县| 灵石县| 拉萨市| 南靖县| 桐梓县| 黑龙江省| 仁怀市| 鹿泉市| 福鼎市| 贵港市| 罗甸县| 尉犁县| 天镇县|