2011-03-14 149 views
1

我从Web服务调用中获取InputStream,并使用JAXB将其转换为对象,因此我不必解析xml。将JAXB数据映射到域模型

对象包含一堆我不感兴趣的数据以及我关心的数据,我想实例化一个自定义域模型类型对象。例如,JAXB对象包含大约50个分布在20个类中的数据。 我想挑选我关心的数据,大约10条数据,并用10条数据实例化我的域模型类。

我必须使用Java 1.4,有没有我可以使用的框架,还是应该只是遍历JAXB对象并获取我关心的数据然后实例化一个领域模型并设置数据?

+0

您是否使用了JAXB 1 IMPL与JDK 1.4吗? – 2011-03-14 22:03:41

+0

我怎么知道我使用的是哪个JAXB版本? – bmw0128 2011-03-14 22:35:55

+0

发现它,使用JAXB 1.3 – bmw0128 2011-03-14 22:39:22

回答

1

使用JAXB 1.0

您可以应用XSLT转换的文件,只是你所关心的信息。然后,您可以为这个较小的文档创建一个XML模式,并从中生成您的对象模型。我下面一个相关的问题的答案会给你的javax.xml.transform中的API是如何适应的感觉:

使用JAXB 2.0

如果你能要升级到Java SE 5,那么您可以利用JAXB 2.0。我带领EclipseLink JAXB (MOXy)实现,你可能有兴趣在我们的XPath扩展:

+0

非常有趣的想法,我想我会研究转换的想法,因为我无法在此时升级 – bmw0128 2011-03-15 16:02:27

0

编写一些自定义的XPath查询来提取所需的字段将会相当干净和简单。你可以使用XPath作为xalan的一部分或一帮其他的XML库的,我相信:API Link

为了澄清(如果你以前没有使用过的XPath),XPath允许你写一个简单的,径处理查询通过搜索xml文档。因此root/child/grandchild/将返回位于根节点下的子节点下的孙节点的值。