smooks xml to java_Smooks

软件简介

Smooks 是一款基于 LGPL 协议的开源 Java 框架,主要用于处理 XML 与 non-XML 格式 ( 包括 CSV,EDI,Java)

之间的转换。Smooks 于 2008 年 5 月发布 v1.0,目前最新的版本已是 v1.3.1。正如 Smooks 开发人员所言,“Smooks

…让操作 XML, EDI,XML,CSV 变得更简单”。

实际上,我们通常将 Smooks 看做是一个 XML 到 non-XML 格式的“数据转换引擎”,然而在 Smooks 的核心实现中,本质上是为 XML,

CSV, EDI 和 Java 等数据源提供了一个事件流(Event

Stream),对数据源的处理其实可以看做是针对此输入数据流的一个个逻辑事件处理。因此,Smooks

的核心其实是一个“结构化数据事件流处理器”。在这样的设计中,开发人员可以用以下两种模式使用 Smooks:

开发人员可以编写自己的逻辑事件处理器,用于定制化处理一个数据源事件流中的特定事件;

开发人员也可以直接使用 Smooks 发行版中提供的解决方案(out-of-box solutions )。在这种模式下,开发人员只需重用别人创建的组件并重新配置它们来对数据源进行处理。例如,通过使用 Smooks 提供的组件便可完成从 XML 到 Java 对象的转换(正如本文下面将会展示的一样)

因此,在开始使用 Smooks 之前,让我们先了解一下 Smooks 发行版中已经提供了哪些数据转换功能。在 Smooks 的发行版中,主要包含了 4

大类也已实现的 XML 和 non-XML 数据转换组件 ,分别为:

Java 绑定 (Java binding)

Smooks 支持从多种数据源生成 Java 对象,包括从 CSV, EDI, XML 或 Java 等(如图 1 所示)。生成的 Java

对象既可以作为数据转换的结果进行使用,也可以成为另一个数据转的输入。

图 1. Smooks Java 绑定

fa5f248c57266381b34dd01f3eab1a66.png

数据格式转换(Transformation )

Smooks 支持多种数据格式之间的转换,包括:XML > XML, CSV > XML, EDI > XML, XML > EDI, XML > CSV,

Java > XML, Java > EDI, Java > CSV, Java > Java, XML > Java, EDI > Java 等(图 2

)。

图 2. Smooks 数据转换

06c6193b4443b71a6df8df4214da039a.png

海量数据处理(Huge Message Processing )

Smooks 能够支持对海量数据(GB 量级)的处理,例如拆分 (Split),转换 (Transform) 海量数据至数据分片 (message

fragment) 以及路由 (Route) 这些数据分片至文件,数据库或者 JMS(Java Message Service)。

图 3. Smooks 海量数据处理

2133e434ad512eaddcb56edb1fcc09fb.png

数据信息补充(Message Enrichment )

Smooks

可以利用数据库或者其他数据源,添加额外的信息至输入的数据中。例如在网络购物应用中可以将用户的偏好(preference)从数据库中添加到用户订单

中,以便为后续业务流程提供更多信息。

图 4. Smooks 数据信息补充

1dcd4ff7b39cab5cae3e3f3b66bfd180.png

在提供了如此丰富的 XML 和 non-XML 数据转换功能的同时,Smooks 同时还提供了 Eclipse Smooks 插件以方便开发人员在

Eclipse 集成开发环境中开发和测试基于 Smooks 的数据转换应用 [7]。接下来,本文将以 Java 绑定 为例,结合 Smooks

Eclipse 插件,较为详细的介绍如何在 Eclipse 中轻松完成设计、配置和测试基于 Smooks 的 XML 到 Java 对象的数据转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值