IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Open source  >

Orangevolt Eclipse XSLT 插件简介

两种热门技术的结合:Eclipse 和 XSLT

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

样例代码


级别: 中级

Yasmary Hernandez (yasmary@us.ibm.com), IT 咨询专家, IBM

2008 年 2 月 14 日

Orangevolt XSLT 插件延续了基于 Swing 的 ROXES XmlWrite 的功能,为 Eclipse 提供一个增强的 XSLT 编辑环境。这个插件是在现有的 Eclipse Web Tools Platform(WTP)上构建的,并引入新的 XSL 和 XML 特性。通过本文了解 XSLT 的作用以及如何通过 Orangevolt XSLT 插件使用 XSLT。

如果您是有经验的 XSLT 程序员,但是不熟悉 Eclipse,那么本文可以帮助您体会使用 Eclipse 是多么容易。如果您是有经验的 Eclipse 用户,希望了解 XSLT 的知识,本文也会满足您的需要。

首先简要概述 XSLT。然后讨论这个 Eclipse 插件,包括安装和大多数功能的使用方法。

XSLT 是什么?

首先谈谈 XSLT 的基础:XML。如今在网上到处都能够找到 XML。XML 的一项重要作用是在大量系统之间传递数据。XML 具有极强的灵活性,支持创建定制的词汇表,因此需要能够在词汇表之间执行转换。

因此就出现了 XSLT。Extensible Stylesheet Language Transformations(XSLT)提供互操作性。换句话说,它的主要目标是以一种基于 XML 的标记语言作为输入,并将输入转换为另一种标记语言或纯文本。

假设您希望创建一个简单的电影出租 Web 站点。所有用户偏好(比如喜欢的电影类型)都存储在一个 XML 文件中(见图 1)。如何使用这些信息执行查询等功能呢?可以使用一个 XSLT 样式表将用户偏好转换为一组数据库指令(见图 2)。这些数据库指令可以获取各种信息,比如在库存中有多少部电影与特定用户喜欢的电影类型相关。甚至可以使用另一个 XSLT 样式表处理从数据库查询获得的信息,并将信息转换为 HTML 页面。

本文使用下面的代码示例演示这个插件的功能。可以从 下载 一节下载这些示例。


图 1. 示例 XML 文件(data.xml),其中包含虚构的电影出租 Web 站点的用户偏好
示例 XML 文件(data.xml),其中包含虚构的电影出租 Web 站点的用户偏好


图 2. 将 XML 文件转换为数据库查询的示例 XSLT 样式表(transformer.xsl)
将 XML 文件转换为数据库查询的示例 XSLT 样式表(transformer.xsl)





回页首


Orangevolt EclipseXSLT 插件概述

Orangevolt XSLT 插件延续了基于 Java™ Swing 的 ROXES XmlWrite 的功能,为 Eclipse 提供一个增强的 XSLT 编辑环境。这个插件是在现有的 Eclipse Web Tools Platform(WTP)上构建的,并引入新的 XSL 和 XML 特性(稍后讨论)。这些特性包括容易使用的编辑器扩展、与 XSLT 相关的启动配置、语法彩色显示的 XSLT 处理输出、XPath 导航器视图等等。另外,这个插件最有意思的特性之一是它能够添加和配置 XSLT 处理程序。这个插件包含 Xalan 和 Saxon 等 XSLT 处理程序。这个插件另一个令人兴奋的方面是,它将会集成到下一个 WTP 主要版本中。





回页首


需求

这个插件要求安装以下软件(参见 参考资料):

  • Eclipse IDE V3.3 或更高版本
  • Java 2 Platform Standard Edition V1.5 或更高版本
  • Eclipse Web Tools Platform(WTP)V2.0.1 或更高版本;可以下载包含所有特性的包,也可以单独下载以下软件:
    • Eclipse Modeling Framework SDK V2.3.1 或更高版本
    • Java EMF Model SDK V1.2.4 或更高版本
    • Graphical Editing Framework V3.3.1 或更高版本

可以使用 Eclipse Europa 更新站点(http://download.eclipse.org/releases/europa/site.xml)更新软件版本。如果不知道如何使用更新站点,那么请执行以下步骤。





回页首


安装

要想手工安装这个插件,首先要 下载 它。下载之后,将下载文件解压到 Eclipse 目录中。按照以下步骤通过更新站点安装这个插件:

  1. 启动 Eclipse 环境并选择任何工作空间。

    图 3. Eclipse 闪屏
    Eclipse 闪屏


  2. 选择 Help > Software Updates > Find and Install ...

    图 4. Help > Software Updates > Find and Install
    Help > Software Updates > Find and Install


  3. 这时出现以下屏幕:

    图 5. Find and Install 弹出屏幕
    Find and Install 弹出屏幕


  4. 选择单选按钮 Search for new features to install 并单击 Next

    图 6. 选择 “Search for new features to install”
    选择 Search for new features to install


  5. 单击 New Remote Site... 按钮。

    图 7. New Remote Site 按钮
    New Remote Site 按钮


  6. 输入名称:Orangevolt EclipseXSLT 并在 URL 框中输入 http://eclipsexslt.sourceforge.net/update-site

    图 8. New Remote Site 细节
    New Remote Site 细节


  7. 单击 OK
  8. 选择 Orangevolt EclipseXSLT 并单击 Finish

    图 9. 选择 Orangevolt EclipseXSLT
    选择 Orangevolt EclipseXSLT


  9. 选择 Orangevolt EclipseXSLT 并单击 Next

    图 10. 选择 Orangevolt EclipseXSLT
    选择 Orangevolt EclipseXSLT


  10. 接受许可条款并单击 Next

    图 11. 许可协议
    许可协议


  11. 单击 Finish

    图 12. 安装 EclipseXSLT
    安装 EclipseXSLT


  12. 安装开始。

    图 13. 安装 EclipseXSLT
    安装 EclipseXSLT


  13. 如果出现以下屏幕,那么单击 Install All

    图 14. 安装 EclipseXSLT
    安装 EclipseXSLT


  14. 安装完成之后,出现以下屏幕。选择重新启动 Eclipse。

    图 15. 重新启动 Eclipse
    重新启动 Eclipse


  15. 为了检查安装是否成功完成,选择 Help > Software Updates > Manage Configuration

    图 16. 检验安装
    检验安装


  16. 如果在列表中看到 Orangevolt EclipseXSLT,就说明安装成功了。

    图 17. 检验安装
    检验安装






回页首


插件的基本功能

既然已经安装了这个插件,就来看看它的所有特性。

创建一个新项目并添加 data.xml(见 下载 一节)。在打开这个文件时,会注意到这个插件有两个视图:Design 和 Source。


图 18. XML 文件视图
XML 文件视图

展开 Design 视图下面的所有元素。应该会看到一个树结构视图,其中包含所有 XML 元素及其值。


图 19. XML Design 视图
XML Design 视图

选择 Source 视图。注意,XML 中的语法元素是彩色显示的。


图 20. XML Source 视图
XML Source 视图





回页首


编辑器扩展

XML 编辑器是在现有的 Eclipse WTP 编辑器上构建的并添加了新特性。为了查看这些额外特性,导航到 data.xml 文件的 Source 视图。右键单击任何空白处,就会出现一个上下文菜单。在下图中,新特性以红色突出显示。


图 21. XML Source 视图的上下文菜单
XML Source 视图的上下文菜单

下面解释各个特性。

Insert date
在所需的位置插入当前日期。格式为 YYYY-MM-DD
Chars to HTML entities
将突出显示的文本转换为 HTML 实体。例如,对以下内容进行转换:

图 22. Chars to HTML entities
Chars to HTML entities

将产生:


图 23. Chars to HTML entities
Chars to HTML entities

HTML Entities to Chars
作用与 “Chars to HTML Entities” 相反
CDATA section
将选择的值封装为 CDATA。例如,以下内容:

图 24. CDATA section
CDATA section

将产生:


图 25. CDATA section
CDATA section
Insert element
用添加的元素封装突出显示的文本。例如,选择 data.xml 中的所有文本,右键单击它并选择 insert element。输入 root

图 26. Insert element
Insert element

应该会看到以下结果:


图 27. Insert element
Insert element

Show in navigation
右键单击文件中的任何区域并选择 Show in NavigationPackage Explorer 视图将突出显示引用的文件。




回页首


启动 XSLT 转换

可以通过创建 Eclipse 启动配置来调用 XSLT 转换。这仅仅是一种可配置的机制,允许指定名称、项目、XML 源文件、样式表、XSLT 样式表参数、XSLT 后处理首选项和 VM 参数。

为了创建与这个插件相关的 Eclipse 启动配置,选择 Run > Run... or Run > Open Run Dialog...


图 28. 启动 XSLT 转换
启动 XSLT 转换

或:


图 29. 另一种启动 XSLT 转换的方法
另一种启动 XSLT 转换的方法

双击配置类型 Orangevolt XSLT 创建一个新的启动配置。


图 30. 启动 XSLT 转换
启动 XSLT 转换

图 31 显示 XSLT 转换配置屏幕。


图 31. 启动 XSLT 转换
启动 XSLT 转换

按照下图填写以下字段:Name(TransformerLaunch)、Project、Source(data.xml)、Stylesheet(transformer.xsl)并单击 Apply


图 32. 启动 XSLT 转换
启动 XSLT 转换

单击 Run。控制台窗口应该显示以下内容。


图 33. 启动 XSLT 转换
启动 XSLT 转换

如果滚动到控制台窗口的最右边,就会注意到创建了一个文本文件。


图 34. 启动 XSLT 转换
启动 XSLT 转换

刷新项目视图,就会看到其中添加了这个新的文本文件。


图 35. 启动 XSLT 转换
启动 XSLT 转换

打开这个文件,查看转换的结果。


图 36. 启动 XSLT 转换
启动 XSLT 转换

注意,数据库查询现在包含 Comedy 值。运行这个转换的另一种方法是单击 Run 图标并选择 TransformerLaunch


图 37. 启动 XSLT 转换 —— 选择 TransformerLaunch
启动 XSLT 转换 —— 选择 TransformerLaunch

还可以配置其他属性,比如样式表参数和后处理选项。

XSLT 样式表参数

可以添加转换期间所需的样式表参数。


图 38. 启动 XSLT 转换
启动 XSLT 转换

参考资料 一节中给出了 DocBook XSL HTML 样式表中用户可配置的所有参数的文档。

后处理

一种常见做法是在转换完成时执行一个 Apache Ant 构建文件。在许多情况下,这种做法都会有帮助,比如将结果转换为 PDF(代码示例如下)。


图 39. 将 XML-FO 文件转换为 PDF 的 Apache Ant 构建文件示例
将 XML-FO 文件转换为 PDF 的 Apache Ant 构建文件示例

为了调用 Apache Ant 构建文件,打开 TransformerLaunch 配置窗口。单击 XSLT Post Processing,从下拉框中选择您的 Ant 文件。


图 40. 选择 Ant 文件
选择 Ant 文件





回页首


插件控制台窗口

Orangevolt EclipseXSLT 控制台窗口扩展了 Eclipse 附带的默认控制台视图,增加了处理输出的彩色显示方案。例如,错误和警告显示为红色。


图 41. 启动 XSLT 转换:错误显示为红色
启动 XSLT 转换:错误显示为红色

另外,这个插件还在输出中提供超链接,所以只需单击错误,就能够跳到发生错误的代码行。





回页首


XSLT 处理程序

XSLT 处理程序仅仅是一个软件组件,它在 XML 文档上调用一个 XSLT 样式表并产生输出(XML、HTML 或文本)。

有许多种 XSLT 处理程序。当前有三种主要的处理程序:

  • Microsoft 开发的 MSXML®
  • Michael Kay 开发的 Saxon
  • Apache Project 开发的 Xalan

Orangevolt EclipseXSLT 允许选择要用的处理程序和添加自己的处理程序。

选择新的 XSLT 处理程序

选择 Window > Preferences


图 42. Preferences 窗口
Preferences 窗口

在这里可以定制插件的首选项。展开 Orangevolt XSLT


图 43. Preferences 窗口
Preferences 窗口

单击 Transformer。默认情况下,选择的处理程序是 Saxon


图 44. Preferences 窗口:选择 Saxon
Preferences 窗口:选择 Saxon

可以通过 XSLT Processor Configuration 下拉框修改这个选项。


图 45. Preferences 窗口:选择一个处理程序
Preferences 窗口:选择一个处理程序

这个插件附带三个 XSLT 处理程序:

  • Default Transformer — 这是 Eclipse 附带的
  • Saxon
  • Xalan

添加新的 XSLT 处理程序

这个插件提供了一个用于添加 XSLT 处理程序的 Eclipse 扩展点。SourceForge 提供了一个相关的快速教程。





回页首


使用 XPath Navigator

XPath Navigator 视图是一个出色的特性。可以使用它从 XML 源文件创建 XPath 表达式。插件将针对 XML 文件的 DOM 表示执行这个 XPath 表达式。

选择 Window > Show View > Other...


图 46. 选择视图
选择视图

展开 Orangevolt 来显示 XPath Navigator 并单击 OK


图 47. 选择 XPath Navigator 视图
选择 XPath Navigator 视图

现在应该会看到 XPath Navigator 视图。


图 48. XPath Navigator 视图
XPath Navigator 视图

从 XML Source Document 下拉框中选择 data.xml。在 XPath Expression 文本框中输入 //customer。单击 Navigator 中的 Run 图标。


图 49. XPath Navigator 视图
XPath Navigator 视图

可以修改 XPath 表达式来生成不同的结果。


图 50. XPath Navigator 视图
XPath Navigator 视图





回页首


结束语

分享这篇文章……

digg 提交到 Digg
del.icio.us 发布到 del.icio.us
Slashdot Slashdot 一下!

Eclipse 的可定制性非常强。您所用的技术很可能有相应的 Eclipse 插件。Orangevolt EclipseXSLT 能够帮助开发人员在 Eclipse 中使用 XSLT 技术。在 参考资料 中可以找到更多的学习资料。






回页首


下载

描述名字大小下载方法
示例 XML 文件os-eclipse-orangevolt.code-samples.zip754BHTTP
关于下载方法的信息


参考资料

学习

获得产品和技术

讨论


关于作者

Yasmary Hernandez

Yasmary Hernandez 是 IBM Software Services for WebSphere 的 IT 专家,她主要关注 Datapower。她是 IBM 的 Extreme Blue 实习计划的毕业生。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款