编程之家(jb51.cc)编程百科栏目主要推荐程序员常用编程技术介绍,以下是程序开发相关编程语言,主要信息提供给程序员快速了解所需要学习的编程技术语言。

Smooks Java的XML转换框架

程序名称:Smooks

授权协议: LGPL

操作系统: 跨平台

开发语言: 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 绑定

数据格式转换(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 数据转换

海量数据处理(Huge Message Processing )

Smooks 能够支持对海量数据(GB 量级)的处理,例如拆分 (Split),转换 (Transform) 海量数据至数据分片 (message
fragment) 以及路由 (Route) 这些数据分片至文件数据库或者 JMS(Java Message Service)。

图 3. Smooks 海量数据处理

数据信息补充(Message Enrichment )

Smooks
可以利用数据库或者其他数据源,添加额外的信息至输入的数据中。例如在网络购物应用中可以将用户的偏好(preference)从数据库添加用户订单
中,以便为后续业务流程提供更多信息。

图 4. Smooks 数据信息补充

在提供了如此丰富的 XML 和 non-XML 数据转换功能的同时,Smooks 同时还提供了 Eclipse Smooks 插件以方便开发人员在
Eclipse 集成开发环境中开发和测试基于 Smooks 的数据转换应用 [7]。接下来,本文将以 Java 绑定 为例,结合 Smooks
Eclipse 插件,较为详细的介绍如何在 Eclipse 中轻松完成设计、配置和测试基于 Smooks 的 XML 到 Java 对象的数据转换。

Smooks 官网

http://www.smooks.org/

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

猜你在找的编程语言

VTD-XML是一种新的XML处理API,它能够克服DOM和SAX的一些问题。VTD-XML能够在内存中对XML进行快速检查并提供XPath查询支持。
一个C语言实现的小型XML解析器
基于 Abstract User Interface Markup Language(用户界面面板基于 XML 的表示),AUIML Toolkit
TinyXML是目前非常流行的一款基于DOM模型的XML解析器,简单易用且小巧 玲珑,非常适合存储简单数据,配置文件,对象序列化等数据量不是很大的操作。支持对XML的读取和修改,不直接支持XPath,需要借助另一个相关的
JXLS是基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表。它采用标签的方式,类似JSP标签,写一个Excel模板,然后生成报表,非常灵活,简单!
NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。
EasyCharts 是使用 C# 语言编写的一款 Excel 插件,主要用于数据可视化与数据分析。
poi 框架 framework-poi 简单、好用且轻量级的海量 excel,csv 文件导入导出解决方案。