开心小屋
BlogJava
首页
新文章
新随笔
聚合
管理
posts - 19, comments - 11, trackbacks - 0
转换 xs:date 到 java.util.Date 的Tips
如果想 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, 需要定义一对静态方法去转换 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
阅读(1819)
评论(2)
编辑
收藏
所属分类:
Web Service
FeedBack:
#
re: 转换 xs:date 到 java.util.Date 的Tips[未登录]
2012-08-12 06:37 |
刘军
你好, 我想问下 JAXB如何覆盖自定义的数据类型
能给出详细的步聚吗
谢谢!
回复
更多评论
#
re: 转换 xs:date 到 java.util.Date 的Tips[未登录]
2012-08-12 06:45 |
刘军
你好, 我想问下 JAXB如何覆盖自定义的数据类型
能给出详细的步聚吗
跪求!
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
编写User Token Authentication 的 WS-Security client
转换 xs:date 到 java.util.Date 的Tips
From 2007/05/09
<
2008年11月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
(20)
Database相关(1)
Hibernate 相关
JAVA(4)
JMX 相关
Report(1)
Spring(2)
Tomcat(2)
Web Service(2)
Web 相关(1)
Wiki 相关(1)
转贴区(4)
随笔(2)
随笔档案
(12)
2009年4月 (3)
2008年11月 (8)
2008年6月 (1)
搜索
最新评论
1. re: 使用Tomcat的jmx服务
你确定能用?
--cydyhty
2. re: 转换 xs:date 到 java.util.Date 的Tips[未登录]
你好, 我想问下 JAXB如何覆盖自定义的数据类型
能给出详细的步聚吗
跪求!
--刘军
3. re: 转换 xs:date 到 java.util.Date 的Tips[未登录]
你好, 我想问下 JAXB如何覆盖自定义的数据类型
能给出详细的步聚吗
谢谢!
--刘军
4. re: 安装个人Confluence 和 Mysql
评论内容较长,点击标题查看
--Burun Estetigi
5. re: 安装个人Confluence 和 Mysql
@geniuswiki
不错的说,准备下来试一试
--happyy2k
阅读排行榜
1. 使用Tomcat的jmx服务(6274)
2. 安装个人Confluence 和 Mysql(5544)
3. 编写User Token Authentication 的 WS-Security client (2334)
4. 转换 xs:date 到 java.util.Date 的Tips(1819)
5. 使用JMX-Adaptor 远程连接Tomcat(1516)
评论排行榜
1. 安装个人Confluence 和 Mysql(6)
2. 转换 xs:date 到 java.util.Date 的Tips(2)
3. 编写User Token Authentication 的 WS-Security client (2)
4. 使用Tomcat的jmx服务(1)
5. 下载Google Gadget 的方法(0)