考查当前的 XML 工具

寻找用于编辑、验证、格式化和比较 XML 并支持 XQuery、XPath、站点地图、模式和 RSS 提要的工具

XML 用于很多领域,从电子商务和新闻提要到搜索引擎。一些与 XML 相关的技术包括 XSLT、XPath 和 XPointer。随着 XML 的广泛应用,越来越需要了解它的工具以及工具提供的功能。XML 处理包括格式化、解析、编辑、验证以及转换为其他形式。市面上的大多数 XML 工具提供众多的功能。本文探究各种类别的 XML 工具,并提供来自不同供应商的适当示例。

Gowri Shankar Palani, 软件工程师, IBM

Author photoGowri Shankar 是印度班加罗尔 IBM India Software Lab 的 WebSphere CastIron 团队成员。他是一名 Oracle 认证的专业 Java 程序员,在 Adobe Flex 和 Dojo 从事 GUI 开发。他目前主要关注 XML 和 web 服务。他的兴趣包括写作技术文章和探索新技术。



2011 年 7 月 25 日

常用缩写词

  • API:应用程序编程接口
  • DITA:达尔文信息类型化体系架构
  • DTD:文档类型定义
  • HTML:超文本标记语言
  • IDE:集成开发环境
  • URL:统一资源定位符
  • W3C:万维网联盟
  • WSDL:Web 服务描述语言
  • XHTML:可扩展超文本标记语言
  • XML:可扩展标记语言
  • XSLT:可扩展样式表语言转换

选择工具来处理 XML 相关技术时,需要首先确定需求。例如,如果您通常利用 XML 完成多种任务(编辑、验证,等等),那么可以考虑选用一个带有适当功能的 XML IDE。对于某个特定任务(比较 XML 文件或者构建站点地图),可以考虑为这个单一的任务选用一个更专注的工具。

本文考查以下类别,以找到满足需求的 XML 工具:

  • XML 站点地图创建器和验证器
  • RSS 提要生成器
  • XML 模式生成器
  • XML 验证器
  • XML 格式器
  • XML 编辑器
  • XML 工具
  • XML 开源工具
  • XML IDE
  • XML 比较工具
  • XQuery 工具
  • XPath 工具

XML 站点地图创建器

XML 站点地图列出一个 web 站点的所有 URL。站点地图把对通行可用的 web 站点 URL 通知给搜索引擎,以便搜索引擎可以将这些 URL 包含在其数据库。大多数站点地图创建器是基于 web 的,它们利用一些参数(比如说更改频率和最新修改日期)请求 web 站点的 URL。参见 参考资料 中到所有列出的工具的链接。

现在有几个站点地图生成工具可用:

  • Google SiteMap Generator 在您将自己的 web 站点部署在 web 服务器上时,根据站点的更新和流量自动生成一个站点地图。
  • Gsite Crawler 创建站点地图。它是一个基于 Windows 的桌面工具。
  • 除了可下载的工具之外,还有很多在线应用程序可以生成站点地图;下面是两个例子:
    • Sitemaps Builder 为 Google、HTML 和文本 URL 创建站点地图。
    • XML Sitemaps 以 XML、ROR、Text 或 HTML 格式构建站点地图。

XML 站点地图验证器

站点地图验证器用于验证为一个 web 站点生成的站点地图。验证器用于验证一个站点地图是有效的,搜索引擎可以使用它。参见 参考资料 中到所有列出的工具的链接。

检查这一系列站点地图验证器:

  • Automapit 站点地图验证器验证您的站点地图,确保它可被搜索引擎接受。
  • Sitemap XML 验证器检查有效 XML 代码的站点地图,以便您可以先纠正错误,然后再提交到搜索引擎。
  • XML 站点地图验证器为您识别任何站点地图问题,以在您通知搜索引擎之前把问题解决了。
  • Online Merchant 站点地图检查器在您提交 sitemap.xml 文件之前检查其中的 XML 头部,以确保它的精确。

RSS 提要生成器

RSS 新闻提要是一种伟大的方式,让您站点的访问者可以跟随添加到站点的最新内容。RSS 提要生成器在希望浏览新闻站点(例如,CNN)标题或者了解体育世界的最新更新的人们中间很流行。参见 参考资料 中到所有列出的工具的链接。

Web 站点开发人员可以利用以下工具生成 RSS 提要:

  • IceRocket RSS builder 是一个简单的界面,让您可以添加主题、链接和内容,以便为您的 web 站点创建 RSS 提要。
  • Feedity 为 web 页面、新闻或产品创建 RSS 提要。
  • RSSPect 为 web 站点、文档或博客创建 RSS 提要。

XML 模式生成器

您可以从 XML 实例生成 XML 模式。参见 参考资料 中到所有列出的工具的链接。

可用的工具有:

  • Trang from ThaiOpenSource 是一个基于命令行的工具,用于从 XML 生成 XML Schema Definition (XSD)。
  • XMLBeans 是一个出自 Apache 的工具,它提供好几个功能,其中一个功能是使用 inst2xsd (Instance to Schema Tool) 生成模式。
  • XML for ASP BuildXMLSchema 是一个在线 XML 模式生成器。

XML 验证器

您可以针对相应的模式,验证 XML 实例。参见 参考资料 中到所有列出的工具的链接。

使用以下在线工具之一:

  • XMLValidation.com 针对文档中声明的 XML 模式或 DTD,验证您的 XML 文档,如果没有声明模式或 DTD 的话,则执行一次语法检查。
  • DecisionSoft.com Schema Validator 验证单个模式以及一个实例文档,并列出错误。
  • W3C XML validator 是一个服务,它利用名称空间 URI http://www.w3.org/2001/XMLSchema 验证模式文档。

XML 格式器

XML 格式化是经常对 XML 执行的一种操作,目的是为了它可读。大多数桌面 XML 工具都提供这一特性。要执行 XML 内容的快速格式化,而不安装任何 XML 工具,请尝试以下任一在线服务。参见 参考资料 中到所有列出的工具的链接。

  • XMLIndent.com
  • X01's online xml formatter

XML 编辑器

XML 编辑器利用元素、属性或纯文本的彩色高亮显示以及内容缩进,可以帮助您清楚地解释 XML 文档。使用 XML 编辑器的另一个优点是,它们具有面向上下文的选项,比如树视图,它让用户可以轻松地遍历 XML 文档的各个节点。它们也进行验证,在您不正确地结束 XML 标记时会给出警告和错误。参见 参考资料 中到所有列出的工具的链接。

  • Xerlin XML Editor 是一个基于 Java™ 的工具,用于创建和验证 XML 内容。这个编辑器是一个具有 XSLT 支持的开源工具,它也可以针对 DTD 和模式验证 XML。
  • Jaxe Editor 是另一个基于 Java 的开源 XML 编辑器,它支持将内容导出到 PDF、利用 XSLT 进行基于 HTML 的预览和多种平台。
  • XMLFox 是一个免费的、带有验证器工具的 XML 编辑器,用于创建格式良好的 XML 文档和模式。这个编辑器也支持其他 XML 操作。

XML 工具

XSLT 转换在使用样式表将一种形式的 XML 转换为另一种形式时很有用。很多各式各样的工具可以帮助您完成这一过程;Tiger XSLT Mapper 和 Kernow 只是两个例子。参见 参考资料 中到所有列出的工具的链接。

Tiger XSLT Mapper 是这么一种工具,新手用户可以容易地用来在 XML 结构之间进行映射。它自动创建映射,您可以使用拖放 GUI 编辑这些映射。

Kernow 是一个 Java API,它以编程方式运行转换。Kernow 在开发人员必须使用可视界面重复地运行 XSLT 转换时是一个很好的选择。

一些基于 web 的 XSLT 工具也很有用:

  • XSLT Online Transformation
  • W3C Online XSLT 2.0 Service

喜欢基于浏览器的插件的开发人员可以检查下面这一系列有用的 XML 插件:

Mozilla Firefox

  • XSL Results Add-on 展示文档的 XSL 转换结果(通过 Saxon-B 进行的 XSLT 1.0 或 XSLT 2.0 转换)。
  • XML Developer Toolbar 从浏览器工具栏添加标准 XML 工具的使用。

Google Chrome

  • XML Tree 以用户友好的方式显示 XML 数据。
  • XML Viewer 是一个用于 Google Chrome 的 XML 查看器。

XML 开源工具

对于负担不起企业 XML 工具成本的用户来说,开源工具能帮上大忙。活跃的社区贡献使得创建出非常好的 XML 开源工具成为可能。参见 参考资料 中到所有列出的工具的链接。

iXedit XML IDE 包含几个 XML 处理特性:

  • DTD 验证
  • 基于 DTD 的自动完成
  • 用户模板
  • XSLT 处理
  • 一部分一部分地编辑

Rinzo XML Editor 是一个 Eclipse XML 编辑器。下面是它的一些特性:

  • 名称空间支持
  • 标记和属性的自动完成
  • XML 验证

这个工具也提供用于处理 Java 元素的特性:

  • 自动完成类名称
  • 打开一个类定义

XPontus XML Editor 是一个开源的基于 Java 的工具,包含以下特性:

  • 代码格式化和完成
  • XSL 转换
  • DTD 和模式生成
  • XML 验证

XML IDE

XML IDE 应用程序执行几乎所有与 XML 有关的操作。您可以从几个具有各种受支持特性的 IDE 中进行选择。参见 参考资料 中到所有列出的工具的链接。

XMLSpy 是一个 XML IDE,用于写作、编辑和调试 XML、XML 模式、XSL/XSLT、XQuery、WSDL 和 SOAP。额外的特性包括:

  • 一个代码生成器
  • 一个文件转换器
  • 一个调试器
  • 一个剖析器(profiler)
  • 对集成到 Visual Studio.NET 和 Eclipse IDE 的支持
  • 一个数据库导入向导,让您能够从 Microsoft® Access® 导入数据

XML Marker 是一个 XML 编辑器,它使用一个同步的表树和文本显示,来向您展示 XML 数据的层次视图和表视图。该工具可以加载非常大的文档(有数百兆字节甚至几吉字节那么大)。其他特性有:

  • 一个语法高亮显示编辑器
  • 表排序
  • 自动缩进
  • 键入时进行语法检查

Liquid XML Studio 是一个全面的软件包,由几个捆绑在一起的 XML 工具组成,提供以下工具:

  • XML 模式编辑器
  • XML 数据挖掘代码生成器
  • WSDL 编辑器
  • XML 编辑器
  • Microsoft Visual Studio Integration
  • Web 服务测试客户端
  • XPath 表达式构造器
  • HTML 文档生成
  • XSLT 编辑器和调试器
  • 大型文件编辑器
  • XML Diff - 比较 XML 文件

图 1 展示了 Liquid XML 编辑器的一个预览,带有一组面板用于操纵 XML 内容。(查看 图 1 的大图

图 1. Liquid XML Studio 的预览
Liquid XML Studio 的预览的屏幕截图

<oXygen/> XML Editor 是一个功能全面的 XML IDE,支持一组 XML 相关操作。专家级 XML 用户可以利用此工具提供的功能带来的好处。下面是它的一些特性:

  • 智能的 XML 编辑
  • XML 验证
  • XSL/XSLT 支持
  • XQuery 支持
  • XPath 支持
  • 单一源 XML 发布
  • 支持 Microsoft Office 文档

图 2 展示了 <oXygen/> XML Editor 的预览,显示了一个 XML 文档的源代码视图和树视图。(查看 图 2 的大图

图 2. <oXygen/> 编辑器的预览
<oXygen/> 编辑器的预览的屏幕截图

Stylus Studio 提供以下特性:

  • XSLT 和 XQuery 剖析器
  • 支持 EDI
  • 企业 web 服务工具
  • XML 管道
  • XSLT 2.0 和 XQuery 1.0 中的 XML 模式感知
  • XML 发布工具

来自 Microsoft 的 XML Notepad 帮助开发人员创建 XML 文档。它是一个免费工具,包含可以用来比较两个 XML 文件的 XMLDiff 工具。界面简单,并且是用户友好的。这一工具工作在 .Net 平台上,它的特性有:

  • 与节点文本视图同步的树视图
  • 复制和移动文本时提供的名称空间支持
  • 树视图和文本视图中的增量搜索
  • 做更改时的拖放支持
  • 对于编辑操作的无限制撤销和还原
  • 支持 regex 和 XPath 的搜索支持
  • 快速加载 3MB 大的文档
  • 即时 XML 模式验证
  • 基于预期的元素和属性以及枚举的简单类型值的智能提示(intellisense)
  • 支持针对日期、日期时间、时间数据类型以及其他类型(比如说颜色)对编辑器进行定制
  • 内置 HTML 查看器
  • 支持 XInclude

图 3 展示了 XML Notepad 预览,带有一个 XML 文件的树视图及其错误面板。

图 3. XML Notepad 的预览
XML Notepad 的预览的屏幕截图

XML Copy Editor 是一个快速的、深受考验的 XML 编辑器。其标签特性允许您同时编辑多个文件。其他特性有:

  • DTD/XML Schema/RELAX NG 验证
  • XSLT 和 XPath 支持
  • 漂亮的输出和语法高亮显示
  • 折叠和标记完成
  • Microsoft Word 文档无损失的导入和导出
  • 支持 XHTML、XSL、DocBook 和 Text Encoding Initiative (TEI)

firstobject XML Editor 是一个免费的 XML 编辑器。从 XML 文档内容显示的 XML 树可以直接编辑,从而促进轻松的遍历。大型文件可以加载到用于轻松操纵的工具中。它的特性有:

  • 快速、可移植,并内置在 CMarkup 中
  • 不需要 Java 技术或 MSXML
  • 单词换行
  • 基于 MSXML 的 DTD 验证
  • 跳到指定行
  • 显示 XPath
  • 标签式文件编辑
  • C++ 代码生成

XRay XML Editor 是一个免费的 XML IDE。这一工具在您键入时对 XML 文档进行验证。它具有对 W3C 标准的内置支持。它也具有一个 HTML 查看器,用于预览利用 XML 构建的 web 页面。您可以创建包括 XSD、DTD 和 External Data Representation (XDR) 在内的三种类型的模式。该工具的其他特性如下:

  • 实时 XSLT 处理
  • 实时模式验证
  • 集成的有关 XML 的在线教程

XMLSpear 是一个免费的、对很多平台可用的、基于 Java 的 XML 编辑器。它具有诸如交互式模式解析、扩展式 XPath 面板等等之类的高级特性。XML 以三种不同的格式显示,包括树表、元素视图和源代码视图。XMLSpear 可以作为 Java web 启动软件或者单独的应用程序可用。额外的特性有:

  • 支持 XPath 和 XSLT
  • 能够从模式生成完整的 XML 文档
  • 多种编码格式支持
  • 集成的文本和 HTML 插件
  •  在您输入时针对模式或 DTD 进行实时验证
  • 从 XML 实例生成模式
  • 用于操纵节点的树编辑器

XMLmind 是一个基于 Java 技术的多功能 XML 编辑器,可用于多种平台。相对于新手用户来说,它更适合于有经验的内行用户。它给出一种创新的方式编辑 XML 文档,需要 Java 平台支持。XMLmind 中的特性有:

  • XML 文档到 HTML 帮助文件、PDF、Eclipse 帮助文件以及很多其他格式的转换
  • 包含一个 DITA 转换器
  • 支持 DocBook、JavaDoc 和 XHTML,以及它们的内置模板
  • 支持 MathML 文档创建
  • 可编辑的命令
  • 集成的 XML 解析器和 XSLT 引擎

ElfData XML Editor 是一个针对 Mac OS 用户的工具。这个 XML IDE 提供 Unicode 支持,可以利用和不利用 DTD 检查 XML 文档的格式良好性。树节点和源代码节点是两种可用的视图节点。拖放支持使您能够拖放 XML 元素。以下两种模式促进了搜索:源代码发现(source-find)和树发现(tree-find)模式。该工具中的其他特性有:

  • 顺应 XML 1.0
  • 类似于 Mac 的用户界面
  • 详细的错误消息,有助于它的调试
  • "Send to Browser" 选项让您能够在浏览器中预览文档
  • 有选项用于将页面保存为带有 DTD 的 XHTML

XMetaL 看起来像一个文字处理器。跟大多数 XML IDE 一样,它可以验证 XML 文档,并支持模式、DTD 和 XInclude。其他特性有:

  • 拼写检查和自动纠错
  • 支持 web 帮助输出
  • 能够将 XML 文档转换成其他格式,比如 PDF、HTML 等等
  • XMetal 连接器与内容管理系统 (CMS) 和源代码控制系统(比如 SVN)集成
  • Unicode 支持用很多语言创建 XML 文档
  • DITA 支持,提供一些特性,比如说一个可视化的、面向主题的用户界面,方便了 DITA 内容的编写

XML 比较工具

开发人员、编辑人员和作者通常需要比较 XML 文档的两个版本,以跟踪更改。尽管有很多文本比较工具可用,但是对于很多操作来说,专用的 XML 比较工具更为高效,因为它是 XML 感知的。参见 参考资料 中到所有列出的工具的链接。

<oXygen/> XML Diff & Merge 实用工具可以比较文件、目录和基于 ZIP 的归档文件。当您将源和目标文档加载到这个工具中时,差异就会以彩色显示,您就可以在源和目标文件中编辑和移动更改内容。它具有很多内置的比较算法,并且能够基于文档内容和大小自动地选择算法。它既能进行单词级别的比较,也能进行字符级别的比较。比较目录和归档文件时,您可以选择基于以下参数进行比较:

  • Timestamp
  • Content
  • Binary comparison

Liquid XMLDiff 具有很多特定于 XML 的选项,比如删除空白、注释和处理器指令。这个工具足够高级,可以判断属性和元素是否是新的、已删除或者已移动。这个工具可用于 Liquid XML Studio 的设计人员和开发人员编辑中。

ExamXML 是一个强大的工具,用于可视地比较及合并 XML 文档之间的差异。用于比较的输入 XML 可以来自文件,也可以来自数据库。ExamXML 也可以比较并保存 XML 文档的一部分;您也可以导入到 Microsoft Excel® 文档,或者从这样的文档导出。ExamXML 可用于几种版本的 Microsoft Windows®。该工具还有其他特性:

  • 针对 DTD/XML 模式的 XML 验证
  • 日期和数字的归一化
  • 拖放支持
  • 显示在树视图中的 XML 文档

DeltaXML 可以让您搜索、比较、合并 XML 文档,以及将更改同步到 XML 文档。它具有 Java API 支持,这促进了 XML 文档的编程式比较。它也能够处理大型文件。该工具可以输出一个 delta 文件,内容是比较的结果。您可以直接或者使用 XSL 显示这个 delta 文件;您可以利用其他 XML 工具处理 delta 文件。DeltaXML Sync 工具可以比较三个 XML 文档并呈现差异。除了 XML 比较功能之外,它还有一些特定于格式的工具:

  • DeltaXML DITA Compare
  • DeltaXML DocBook Compare
  • DeltaXML ODT Compare
  • DeltaXML ODT Merge

XQuery 工具

对于高级 XML 用户,XQuery 在查询和从大型 XML 文档抽取内容时非常有帮助。XQuery 特定工具帮助您利用 XQuery 的强大功能,允许您使用高级特性,比如映射、调试和剖析。它们提供的一些有用特性包括验证、自动完成和预览。参见 参考资料 中到所有列出的工具的链接。

XMLSpy XQuery Editor 为 XQuery 提供语法高亮显示和上下文敏感菜单。它的自动代码完成特性让您能够轻松地创建 XQuery 文档。它也支持针对支持 XML 的数据库开发 XQuery。其他特性有:

  • 错误隔离
  • 简化的调试
  • 增强的代码性能
  • 高级文本视图

Stylus Studio XQuery Editor 具有一个带有广泛特性的集成的 XQuery Editor,这些特性包括智能代码提示、代码完成、元素构造器、函数、路径表达式等等。它基于开放的 XQuery 体系结构,支持 Saxon XQuery 处理器。XQuery 源代码树窗口支持拖放特性以及一些有用的关于源代码文件的符号和图标。额外的特性有:

  • XQuery 场景的创建
  • XQuery 预览
  • XQuery 结果预览到 XQuery 表达式的映射

用于 Eclipse 的 XQuery 开发工具帮助在 Eclipse 中创建、调试和执行 XQuery。这些工具也提供:

  • 对 XQuery 更新和脚本化扩展的支持
  • 代码完成和代码模板
  • 语义检查和快速修复
  • 在您输入时执行的验证

XPath 工具

XPath 特定的工具在可视化您的 XPath 评估结果时很有用,并且能够帮助您构造和验证 XPath 表达式。这些工具提供的一些有用的选项包括调试 XPath、自动完成和使用 XPath 搜索数据库。参见 参考资料 中到所有列出的工具的链接。

SketchPath 是一个 XPath 编辑器及 XML 分析和测试工具。它提供一个 IDE,用于针对 XML 文档开发和测试 XPath 表达式。它使用 .NET Framework for XPath 1.0 evaluation 和 Saxon.NET for XPath 2.0。其他特性有:

  • 在表达式中使用 XPath 变量
  • XPath 函数助手
  • 内置的步骤跟踪器和调试器
  • 表达式的语法彩色显示

XPath Visualizer 是一个免费的 Microsoft Windows 工具,它运行您对 XML 文档的 XPath 查询并可视化结果。输入文件可以来自文件系统或者 URL,您也可以作为文本粘贴到工具中。在该工具中,您键入整个 XPath 查询。该工具的其他特性有:

  • XML 名称空间的自动检测和显示
  • XPath 查询验证
  • 默认 XML 名称空间到查询表达式的自动添加,以及用于从任何文档删除 XML 名称空间的选项

也有一些基于 Web 的 XPath 工具可用:

  • XPath Query Expression Tool (XMLME.com)
  • 简单的在线 XPath 测试器
  • XSLT Tryit Editor (W3Schools.com)

结束语

很多可用的工具支持 XML 相关的技术。作为 XML 用户,您必须分析需求并选择适当的工具。例如,如果您需要很多复杂的操作,那么可以选择一个 XML IDE,以具有更多功能,比如编辑、验证以及其他功能。对于某个非常特定的任务,比如说比较 XML 文件,则可以选专用的比较工具。

参考资料

学习

  • XML Editors(O'Reilly xml.com):获得一个包含更多 XML 编辑器的列表。
  • Comparison of XML editors(Wikipedia):查看一个列表,其中比较了各种 XML 编辑器的许可证、受支持平台和特性。
  • 站点地图生成器:探索一系列链接,它们链接到用于生成或维护站点地图文件的工具和代码片段。
  • XML 新手入门 获得学习 XML 所需的资源。
  • developerWorks XML 专区:在 XML 专区获取提高您的专业技能所需的资源。查看 XML 技术库,获得广泛的技术文章和技巧、教程、标准和 IBM 红皮书。
  • IBM XML 认证:了解如何才能成为一名 IBM 认证的 XML 和相关技术的开发人员。
  • developerWorks 技术活动网络广播:随时关注技术的最新进展。
  • developerWorks 播客:收听针对软件开发人员的有趣访谈和讨论。
  • developerWorks 按需演示:观看演示,包括面向初学者的产品安装和设置演示,以及为经验丰富的开发人员提供的高级功能。

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=XML, Open source
ArticleID=742587
ArticleTitle=考查当前的 XML 工具
publish-date=07252011