由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - JAXB
相关主题
XML schema to instance generator?试着比较 JAXB/StAX/XStream/SAX
How to create a binding schema in jaxb.java web service 得迷惑
ETL process in JAVA. --有建议的请回这个贴。现在做jasper report,amazon web services了,goodbug我要经常向你请教了。
新手学习web service,有人想一起做点project吗?Java XML parser的问题
探讨一个 ORM + web service 的问题need help from the J2EE expert
any JAXB high hands?讨论一下web framework吧
Web service neededWhat do you use to process XML?
XSD to java beans谁推荐一本XML的书?
相关话题的讨论汇总
话题: jaxb话题: xml话题: xsd话题: string话题: wsdl
进入Java版参与讨论
1 (共1页)
A**o
发帖数: 1550
1
这个东西不错,大家都用什么工具搞定JAXB的?
schema to java, java to schema, and round trip?
t*******e
发帖数: 684
2
去java.net下载吧,ant tasks,和maven plugin都是内建的。
A**o
发帖数: 1550
3
继续问问题,如果给你一个xml数据样本,没有xsd,你怎么生成自己的xsd和java类?
如果数据样本以后有一定的扩展,你怎么保持你的xsd和java跟得上形势?
目前的use case是在使用人家的web service,人家的wsdl上说返回的是一个string,
但实际上是一个xml string……我要parse丫的,怎么做比较容易呢?
我现在是手动model java类,然后以此为样板生成自己的xsd,然后用JAXB unmarshal。
有啥更简洁的方法吗?当然的,要让人家更新wsdl是不大现实的。nnd

【在 A**o 的大作中提到】
: 这个东西不错,大家都用什么工具搞定JAXB的?
: schema to java, java to schema, and round trip?

g*****g
发帖数: 34805
4
俺用CXF做webservice, 对这些细节是不关心的。
如果service你管不了,或者不是java的,axis之类
的也可以通过wsdl产生stub吧。

unmarshal。

【在 A**o 的大作中提到】
: 继续问问题,如果给你一个xml数据样本,没有xsd,你怎么生成自己的xsd和java类?
: 如果数据样本以后有一定的扩展,你怎么保持你的xsd和java跟得上形势?
: 目前的use case是在使用人家的web service,人家的wsdl上说返回的是一个string,
: 但实际上是一个xml string……我要parse丫的,怎么做比较容易呢?
: 我现在是手动model java类,然后以此为样板生成自己的xsd,然后用JAXB unmarshal。
: 有啥更简洁的方法吗?当然的,要让人家更新wsdl是不大现实的。nnd

S*********t
发帖数: 78
5
返回来的 wsdl 里面应该有 schema location吧

unmarshal。

【在 A**o 的大作中提到】
: 继续问问题,如果给你一个xml数据样本,没有xsd,你怎么生成自己的xsd和java类?
: 如果数据样本以后有一定的扩展,你怎么保持你的xsd和java跟得上形势?
: 目前的use case是在使用人家的web service,人家的wsdl上说返回的是一个string,
: 但实际上是一个xml string……我要parse丫的,怎么做比较容易呢?
: 我现在是手动model java类,然后以此为样板生成自己的xsd,然后用JAXB unmarshal。
: 有啥更简洁的方法吗?当然的,要让人家更新wsdl是不大现实的。nnd

t*******e
发帖数: 684
6
WSDL有好几个部分,包括XSD,Operations,SOAP bindings. 其中XSD是data structure,
Operations是method interfaces.
只有XML没有XSD是不能用JAXB的, 设想XSD就是Java class definition,XML是Java
object.有了XSD,就能用JAXB生成Schema derived classes. 如果给你的string包含所
有的elements和attributes,可以自己搞个XSD,再用JAXB.
A**o
发帖数: 1550
7
看样子没完全说清楚,人家的wsdl里面是有xsd的,但是声明的返回的变量是个string
,我拿到了这个string一看,其实这个string是一个xml data,所以,wsdl里面并没有
定义这个xml data的结构的。为了方便,我要自己把这个xml转换成java数据结构。不
知道这么讲是不是清楚了,人家的wsdl对我这个例子其实是没有帮助的,我的客户stub
仅仅可以给我一个String。
简单的说,就是给你一个xml数据,你要转换成java内部数据,怎么整最方便。而这个
数据今后可能增加新的数据,怎么才能保证新增数据的时候调试的痛苦最小化。
A**o
发帖数: 1550
8
对了,谢谢上面三位的回答。
t*******e
发帖数: 684
9
可以自己搞个XSD,再用JAXB runtime parsing XML string.
或者用JDOM,dom4j之类的不要求XSD.
A**o
发帖数: 1550
10
我现在是先建好java model,然后生成xsd,因为我没有xsd的开发经验。
昨天折腾了几个小时,搞定了。想听听大家有没有类似的经历和建议。

【在 t*******e 的大作中提到】
: 可以自己搞个XSD,再用JAXB runtime parsing XML string.
: 或者用JDOM,dom4j之类的不要求XSD.

相关主题
any JAXB high hands?试着比较 JAXB/StAX/XStream/SAX
Web service neededjava web service 得迷惑
XSD to java beans现在做jasper report,amazon web services了,goodbug我要经常向你请教了。
进入Java版参与讨论
t*******e
发帖数: 684
11
你的这个象是Document-centric web services,要求对XML,XSD,WSDL有比较深的了解
。返回的string也可以表达成SOAPElement,或一个stream的表像。现在web services发
展奇快。看看java.net上面的metro项目会有很多帮助的。
A**o
发帖数: 1550
12
你说得没错,但是我的问题是wsdl不是我的,是第三方的,我改不了。
有空我再多看看,这个新的jaxb已经很不错了,比dom自己parse要简单多了。

【在 t*******e 的大作中提到】
: 你的这个象是Document-centric web services,要求对XML,XSD,WSDL有比较深的了解
: 。返回的string也可以表达成SOAPElement,或一个stream的表像。现在web services发
: 展奇快。看看java.net上面的metro项目会有很多帮助的。

m******t
发帖数: 2416
13

This is where you lost me.
...and here. 8-)
stub

【在 A**o 的大作中提到】
: 看样子没完全说清楚,人家的wsdl里面是有xsd的,但是声明的返回的变量是个string
: ,我拿到了这个string一看,其实这个string是一个xml data,所以,wsdl里面并没有
: 定义这个xml data的结构的。为了方便,我要自己把这个xml转换成java数据结构。不
: 知道这么讲是不是清楚了,人家的wsdl对我这个例子其实是没有帮助的,我的客户stub
: 仅仅可以给我一个String。
: 简单的说,就是给你一个xml数据,你要转换成java内部数据,怎么整最方便。而这个
: 数据今后可能增加新的数据,怎么才能保证新增数据的时候调试的痛苦最小化。

A**o
发帖数: 1550
14







比如wsdl里是这个样子,所以你通过stub拿到的是一个String对吧?
然后这个String实际上是一个xml,比如什么
的,我现在要对付的是这个xml。
这么说清楚一点儿了吗?
F****n
发帖数: 3271
15
你说的这个问题非常TYPICAL,N年前在JAXB尚为成标准的时候我就发现了这个东东,觉
得是好东西一度将所有PROJECTS里的XML应用都做成JAXB。但过了几个月许多就不得不
改回来。为什么?JAXB容错性太差,实际应用中XML数据不标准的太多,用JAXB会产生
huge headache
总结的经验是,如果是自己定义的新标准,应该推广JAXB,如果是LEGACY的数据格式(
特别象你这种连XSD都没有的),还是别浪费时间了,老老实实写HANDLER吧。

unmarshal。

【在 A**o 的大作中提到】
: 继续问问题,如果给你一个xml数据样本,没有xsd,你怎么生成自己的xsd和java类?
: 如果数据样本以后有一定的扩展,你怎么保持你的xsd和java跟得上形势?
: 目前的use case是在使用人家的web service,人家的wsdl上说返回的是一个string,
: 但实际上是一个xml string……我要parse丫的,怎么做比较容易呢?
: 我现在是手动model java类,然后以此为样板生成自己的xsd,然后用JAXB unmarshal。
: 有啥更简洁的方法吗?当然的,要让人家更新wsdl是不大现实的。nnd

F****n
发帖数: 3271
16
就是说这个STRING的结构根本没有用XSD严格定义,而且还有可能变,
所以别浪费时间在JAXB上了。

【在 A**o 的大作中提到】
:
:
:
:
:

:

:

: 比如wsdl里是这个样子,所以你通过stub拿到的是一个String对吧?
: 然后这个String实际上是一个xml,比如什么

A**o
发帖数: 1550
17
你说到点子上了,可讲讲jaxb的容错性么?我没什么经验。
另外,我会尽量隐藏jaxb的model,减少对其他组件的影响。

【在 F****n 的大作中提到】
: 你说的这个问题非常TYPICAL,N年前在JAXB尚为成标准的时候我就发现了这个东东,觉
: 得是好东西一度将所有PROJECTS里的XML应用都做成JAXB。但过了几个月许多就不得不
: 改回来。为什么?JAXB容错性太差,实际应用中XML数据不标准的太多,用JAXB会产生
: huge headache
: 总结的经验是,如果是自己定义的新标准,应该推广JAXB,如果是LEGACY的数据格式(
: 特别象你这种连XSD都没有的),还是别浪费时间了,老老实实写HANDLER吧。
:
: unmarshal。

F****n
发帖数: 3271
18
JAXB基本没有容错性, ERROR Handler在这里不适用。你无非就是要读XML,没必要用
JAXB
t*******e
发帖数: 684
19
如果有XSD的话,用JAXB还是很不错的,灵活的custom binding,用着像普通的Java Beans
,performance也很好,如果object graph很大的话,可以结合JXPath,navigate比较容易.
类似的XMLBean(也算JAXB的implementation)的performance就差很多。
c*****t
发帖数: 1879
20
Ehmm, Use CookXml to parse XML :) Absolutely the fastest way to
develop an XML parser from scratch.
http://cookxml.yuanheng.org/
Online tutorial available.

【在 A**o 的大作中提到】
: 你说到点子上了,可讲讲jaxb的容错性么?我没什么经验。
: 另外,我会尽量隐藏jaxb的model,减少对其他组件的影响。

相关主题
Java XML parser的问题What do you use to process XML?
need help from the J2EE expert谁推荐一本XML的书?
讨论一下web framework吧Axis vs. XFire?
进入Java版参与讨论
m******t
发帖数: 2416
21

+1. Just bite the bullet and parse it. 8-)

【在 F****n 的大作中提到】
: 就是说这个STRING的结构根本没有用XSD严格定义,而且还有可能变,
: 所以别浪费时间在JAXB上了。

t*******e
发帖数: 684
22
试一下新的头像
m******t
发帖数: 2416
23

怎么矮矮胖胖的,成了图腾桩子了。

【在 t*******e 的大作中提到】
: 试一下新的头像
t*******e
发帖数: 684
24

柱子太细长,看不清细节。呵呵

【在 m******t 的大作中提到】
:
: 怎么矮矮胖胖的,成了图腾桩子了。

t*******e
发帖数: 684
25
关于JAXB 2.0的一个article. 说明了JAXB有能力通过StAX处理巨大的XML document
stream 而不消费太多memory, 另外JAXWS也是用JAXB binding的。
http://www.javarants.com/C1464297901/E20060501083853/index.html
The best of both worlds exists within JAXB 2.0. Not only can you get typed
objects from your XML documents but you can also drop down to StAX when you
need to stream data from the document. The biggest limitation is that JAXB
does need some sort of schema in order to generate the typed objects. Using
a great tool called trang, we ca
1 (共1页)
进入Java版参与讨论
相关主题
谁推荐一本XML的书?探讨一个 ORM + web service 的问题
Axis vs. XFire?any JAXB high hands?
什么是JAX WSWeb service needed
what do u think of SOAP vs REST ( or even FB's thrift server)?XSD to java beans
XML schema to instance generator?试着比较 JAXB/StAX/XStream/SAX
How to create a binding schema in jaxb.java web service 得迷惑
ETL process in JAVA. --有建议的请回这个贴。现在做jasper report,amazon web services了,goodbug我要经常向你请教了。
新手学习web service,有人想一起做点project吗?Java XML parser的问题
相关话题的讨论汇总
话题: jaxb话题: xml话题: xsd话题: string话题: wsdl