以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML工具及XML开发环境 』  (http://bbs.xml.org.cn/list.asp?boardid=7)
----  XML 编辑器综述,第 1 部分  (http://bbs.xml.org.cn/dispbbs.asp?boardid=7&rootid=&id=209)


--  作者:admin
--  发布时间:11/20/2003 8:39:00 PM

--  XML 编辑器综述,第 1 部分
XML 问题:XML 编辑器综述,第 1 部分   
英文原文   


重访用于 Java 和 MacOS 的产品

David Mertz,博士(mertz@gnosis.cx)
Transformer,Gnosis Software, Inc.
2002 年 12 月

在这个关于 XML 编辑器的两部分系列文章中,David 研究了自从他上次研究过此工具类别后,一年半以来商业工具的进展。这些工具曾经很大程度上只是对文本编辑器进行了“化妆”的封装器,而现在,已经发展成崭新的开发环境,它们充分简化了使用面向 XML 的技术的过程。本专栏文章第一部分研究了 Java 和 MacOS 应用程序,具体来说是 Morphon Technologies 的 Morphon 2.0.5、SyncRO 的 <oXygen/> 1.2.1 和 ElfData 的 XML Editor 1.14。
自从我上次(请参阅参考资料)研究 XML 编辑器以来,这种工具发生了很多变化。它们有了长足的进步,在这个两部分的系列文章中,将使您了解关于这些新特性的详细信息,并为您提供了部分编辑器的下载。在本系列文章中我打算讨论的九个编辑器中,有两个我无法获得 — XMLmind XML Editor(XXE)和 Vervet Logic 的 XML Pro。其余七个划分到两篇文章中以允许我详细地说明每种产品的特性。在这个第一部分中,我研究针对 JVM 和 MacOS 的工具(或者,从我的角度来说 — 是可以在我的 iBook 上运行的程序)。在对产品的研究中,我发现任何特定于 Linux/Unix 的产品与我在这里讨论的那些 XML 编辑器相比,无论流行程度还是成熟程度都要差一些。当然,基于 Java 的工具在 Linux 下将运行良好,在其它支持 Java 的平台上也将运行良好。

我故意不讨论一些普通的文本编辑器,包括象 (X)Emacs 这样面面俱到的编辑器,以及较小的但可定制的个人喜爱的文本编辑器。

我将在这篇综述中讨论的产品是:

Morphon Technologies 的 Morphon 2.0.5
SyncRO 的 <oXygen/> 1.2.1
ElfData 的 XML Editor 1.14
Altova 的 XML-Spy 4.4
Wattle Software 的 XMLWriter
NetBryx Technologies 的 EditML Pro 2.6.
Corel XMetal 3
我在运行 OSX 10.1.5 和最新的 Apple HotSpot Java 1.3.1 的 iBook 膝上型电脑上测试了前两个基于 Java 技术的应用程序 — Morphon 和 <oXygen/>。我提到这些规范是因为它们或许与我的印象有关;UI 性能长期以来都是 Java 应用程序中的弱点。我还在同一 iBook 上测试了 XML Editor,但它是用 REALBasic 编写的本机 MacOS 应用程序。我将在本文中讨论这些产品。

XML-Spy、XMLWriter、EditML Pro 和 XMetal 都是 Win32 本机应用程序(可在下一篇文章中找到详细信息)。显然我是在 Windows 机器上测试这些产品的,具体来说,是运行 Win98 的膝上型电脑,其处理器是 Pentium-II(366Mhz)。我在 iBook 上进行测试时所遇到的 UI 速度问题都没有出现在这些产品上。Win32 应用程序的速度和响应都较快,这也许是因为编译型语言和解释型语言之间的差异(而不是由于操作系统和 CPU 的差异)。这方面无需进一步讨论。

好编辑器是由什么组成的?

您可能因为许多不同的理由需要一个 XML 编辑器。很可能我喜欢的产品并不适合于您的特定需求,或者我印象不深的工具却恰好适合您的需求。以下是我寻找的。

XML 文档有两种广义类型:面向散文的和面向数据的。面向散文的文档借用了 XML 的 SGML 根。散文格式通常有许多规则,通过这些规则,节、子节、段、章、图以及其它项目可以彼此嵌套。典型情况下,它将内联的、面向字符的标记用于单个字和短语(粗体、强调、引用和链接等)。DocBook 就是一个著名并且广泛使用的示例;另一个示例是 IBM 的 developerWorks 内部文章格式(我将两者都用于测试)。相反,面向数据的文档很少拥有这样的文本,但包含了数值和简单名称的嵌套类表结构。面向数据的 XML 通常类似于 RDBMS 表,有时就是从此类数据库中生成的。通常,将 XML 看作列和行的能力对于面向数据的 XML 而言很重要。

除了这些广义类型,还出现了一些特殊的 XML“方言”。许多“方言”是面向数据的,如 SOAP、XML-RPC、WSDL 和 RDF 等。尽管这里讨论的所有 XML 编辑器都能在一定程度上处理定制的 DTD,但您的特定需求可能要求更专门的定制。某些同样的问题可能也适用于面向散文的格式,尤其是复杂格式,如 DocBook、LegalXML 或 TEI。通常,XML 编辑器应该能够非常容易地创建和修改符合您需要使用的 DTD 或 W3C XML 模式的有效 XML 文档。

我倾向于编辑面向散文的文档;我将 IBM developerWorks 结构的文章用作测试用例,但在大多数案例中尝试使用更复杂的 DocBook 格式的文章。此外,我在多种平台上工作,目前,我对找到一套可以在我的新 iBook(及其底层的 Unix OS)上使用的工具特别感兴趣。仅 Windows 平台可用的工具对我来说不及跨平台工具有价值。

Morphon Technologies 的 Morphon 2.0.5

Morphon 是一种基于 Java 技术的 XML 编辑器,它向面向散文的 XML 文档提供类似字处理器的视图。Morphon 适合成为我的首选,因为它能在多种平台上运行 — 任何支持 Java 1.1 或更新版本(较老的 Java 版本要安装 Swing)的平台。我在前面提到的 MacOSX iBook 上测试了它。

遗憾的是,在具有大量内存的 500Mhz G3 机器上,Morphon 还是运行得很慢,您不能忽视 Java UI 响应能力上的缺陷。该工具很有用,但您得注意这个问题。一个次要问题:Morphon 的外观选项更适合于 Java 应用程序(象 <oXygen/>)而不是 Mac UI,但只有 MAC 纯化论者会很在乎使用这种方法或另一种方法。

我研究过 Morphon 的 beta 测试版,它的特性和稳定性比我上次比较性测评时都有了优异的进步。(请参阅参考资料)。遗憾的是,当使用 Morphon 时,仍有可能进入不稳定/半冻结状态。它不会糟糕到您无法轻松地关闭和重新启动应用程序的地步,但您偶尔需要关闭和重新启动应用程序。此外,CSS-Editor 对于某些对话框和信息框强制使用笨拙的 Z 轴次序,这样,它们必须彻底隐藏或关闭以便使用主 CSS-Editor 窗口;应该以可以用轻松后退的方式代替它们。我猜想您可以在足够大的屏幕而不是膝上型电脑上解决这个问题。

Morphon 向您提供 XML 文档的几个视图。您可以用预览方式研究原始 XML 源代码(但不能进行更改)。主视图是利用 CSS 来配置显示的类似字处理器的屏幕。正如我先前提到的,我认为 CSS 是比 XSLT 或定制格式更好的显示配置的方法(毕竟,这是创建 CSS 的目的)。除了类似字处理器的视图,Morphon 还向您提供了嵌套框结构视图。该想法是用带标号的封闭矩形或带标号的下划线标记每个元素主体。字体、颜色等仍然由 CSS 确定,但主视图在同时显示文档的意义(强调版面)和结构方面干得非常不错。当使用主视图时,您也可以选择“可折叠的”树视图,它允许您导航文档。使用这个树视图,您可以显示每个元素主体的前几个字,这也很有帮助。

图 1. Morphon XML 编辑器

此主题相关图片如下:
按此在新窗口浏览图片

通过严格使用类似字处理器的视图,Morphon 基本上首先排除了创建无效 XML 文档的可能性。这比那些使用单独的确认步骤并仅仅突出显示问题的应用程序更为无缝。对上下文敏感的对话框和菜单提示您在给定位置允许插入。Morphon 以 XSLT 处理器构建文档,并提供一些用于将 DocBook 转换成 (X)HTML 的 XSLT 定义。您可以轻松地使用其它 DTD 和样式表。

您可以用多个正则表达式变体(如 posix、sed 或 perl)或纯文本搜索 XML 文档。您可以搜索文本、属性值、属性名称或元素名称。但是,与一些工具不同,Morphon 不允许 XPath 搜索,这看起来象大多数面向 XML 的样式。然而,Morphon 确实显示至当前光标位置的 XPath。

Morphon 标准版价格是 150 美元,学术许可证价格为 75 美元。站点许可费用分多种。

SyncRO <oXygen/> 1.2.1

在这个回顾期间,我确实偏爱 <oXygen/>。尽管在许多方面,<oXygen/> 远不如其它一些产品全面,但它所包含的特性都是相当深思熟虑的,并且都很有用。类似于 Morphon,<oXygen/> 也是基于 Java 的 XML 编辑器,我在 500Mhz iBook 上进行了测试。但是,您需要更新的 Java 版本来运行 <oXygen/> — 推荐使用 1.4,1.3 是必需的。

由于某种原因,<oXygen/> 不象 Morphon 那样慢;Java 技术仍然不是很快,但使用该程序始终很舒服。速度提高的一个原因是 <oXygen/> 拥有简单得多的显示格式(是 XML 源代码而不是类似字处理器的视图)这一事实。但 <oXygen/> 在非显示方面也更快,如验证和 XSLT/FO(格式化对象)转换(和普通的操作一样快,如下拉菜单和打开对话框)。

<oXygen/> 编辑器既稳定又组织良好,但与其将它看作用于 XML 编辑的完全定制界面,还不如认为它是增强的文本编辑器。但是,它简单界面中的各种小工具都很有用。界面和其它工具都明显更适合于程序员而不是文档创建者或数据输入人员。您可以预览已转换的 XML 文档的 (X)HTML 输出,而且可以增强 XML 格式化,但从基本上说,您仅可以编辑突出显示语法的 XML 文本。

图 2. <oXygen/> 编辑器

此主题相关图片如下:
按此在新窗口浏览图片

让我真正喜欢 <oXygen/> 的是它的“代码洞察”特性。我研究的大多数工具都有某种对标记和属性项的对上下文敏感的提示。<oXygen/> 在这方面是最棒的。当您输入一个起始尖括号时,会在光标下面弹出一列允许的标记,突出显示会随着部分名称完成而移动;选择标记时则包括需要的属性。在选项中包括的是可以在光标位置结束的起始标记。要取得最佳结果,代码洞察将利用 DTD 或 XML 模式 — 但如果其中一种不可用,那么,<oXygen/> 可以根据 XML 本身猜测文档结构。如果您喜欢,可以将这个由推断得到的结构保存为 DTD。

另一个优点是为 DocBook 和 XHTML 而包含的 XSLT 样式表。除了标准 XSLT 转换,<oXygen/> 还有一个内置 FO 处理器。这让您在 XML 文档之外创建可打印的 PDF 或 PS 文档。所讨论的其它工具中只有 XML-Spy 有这项功能,但那个产品要求您为此下载额外的工具,但我在测试期间未能做到这一点。<oXygen/> 无需专门工作即产生了漂亮的 PDF 文档。

<oXygen/> 的搜索工具既独特又灵巧。基本文本搜索(区分大小写和不区分大小写、整字、在标记中等)非常标准。值得注意的是它的搜索中没有正则表达式。XPath 搜索工具使 <oXygen/> 与众不同。一些其它工具允许 XPath 的组合,但 <oXygen/> 在一个窗格中显示所有匹配的列表,并用匹配列表来导航和突出显示部分文档。这真的很有用,在 XML 本质方面尤其如此。

<oXygen/> 单用户版副本标价是适中的 65 美元,而学生版为 25 美元。也可获得站点许可。

ElfData 的 XML Editor 1.14

XML Editor 是用 REALBasic 编写的 MacOS 本机应用程序(用于 MacOS 8/9/X)。我的理解是 REALBasic 最近刚被移植到 Windows,或移植仍在进行中。因此 ElfData 有可能也将决定移植到 Windows 平台。

我对 REALBasic 语言懂得不多,但感觉其速度和 Java 差不多。XML Editor 在这方面可与 <oXygen/> 相比 — 对于能够舒服地使用,速度足够快了,但明显比本机编译应用程序慢。

XML Editor 提供两种 XML 文档视图:XML 源代码视图和增强的树视图。首先,文本编辑器中的语法突出显示,这正是您所期待的。XML 源代码视图类似于 <oXygen/> 的源代码视图,但没有用结构化缩排修饰源代码的选项。但 XML Editor 中的缺省视图是增强的树视图,它类似于 Morphon 中的树窗格。在树视图中,以 MacOS Finder 列表视图的样式表示 XML 文档。每行列出一个元素、注释、声明或处理指令,行的左边有一个图标用来标识节点类型。包含子节点的元素可以展开和折叠;每行还包含关于元素属性或主体的信息,所包含信息量足以说明元素属性或主体。XML Editor 的一个美学特性大大地提高了该工具的可用性:每隔一行都用亮灰色衬底(类似于横格纸),这有助于在浏览时不会跑行。

图 3. ElfData 的 XML Editor 1.14


此主题相关图片如下:
按此在新窗口浏览图片
除了主视图窗口以外,XML Editor 允许您显示一些对上下文敏感的对话窗口。虽然相对于浮动对话框,我更喜欢用窗格组成的界面,但这种对话框样式工作得很好。一个浮动对话框显示当前选中的项的属性或主体文本(这取决于选中了哪个项)。您在对话框中编辑属性或文本。另一种可选的浮动对话框是保存器,它是可插入标记的列表。可以从 DTD 或手工编辑生成保存器 — 但它不是对上下文敏感的,对可向当前有效元素插入的标记不作限制。使用保存器的插入维护标记的良好格式,但未必维护有效性。

XML Editor 有几种验证选项。您可以验证:

更改(当您更改文档时进行验证)
在鼠标下(鼠标移动到元素上时进行验证)
全局地
按选择,
以批处理方式处理多个文档
但是,验证总是在事实发生后进行,而不是指示编辑操作。XML Editor 的优点是缺省地使用快速验证方式(使用 strict 选项),这意味着 XML Editor 中的验证远比我研究的其它产品(包括命令行工具)中要快。在一些边界情况中,快速验证可能不正确地处理一些参数实体声明的细节,但我在测试中没有遇到任何此类问题。

XML Editor 的缺点是缺乏任何转换能力。除了粗糙的 browser preview 选项以外,再也没有 XSLT 或 CSS 显示了,当然也没有 FO 处理。XML Editor 的搜索能力也很不成熟。您可以在元素、属性和主体等中搜索文本,并可以积累一个搜索结果列表,但没有正则表达式支持,也没有 XPath 支持。

XML Editor 的单用户版副本标价为 55 美元。

其它产品

Pixware 的 XMLmind XML Editor(XXE)看来象是用 CSS 来配置类似字处理器的显示(尽管大多数产品并不使用这种方法,但我认为这是正确的方法)的基于 Java 的编辑器。但是,我未能从该公司获得回应,并且我必须承认,我发现 XXE 的“商业性但仅在里程碑版本中可用”状态令人迷惑。我不能确定这是一个可以交付使用的产品或仅是一个用于产品的好想法 — 不过,从抓屏和描述看起来很有前途。

Vervet Logic 的 XML Pro 看来还没诞生就已被遗忘了。仅根据其网页,XML Pro 看来是侧重于面向数据的 XML 文档的基于 Java 的编辑器。该公司没有回应请求,并且其网页看起来似乎几年都没有更新了(例如,兼容的 Windows 版本据说是包含 95、98 和 NT4.0 — 没有提到是否兼容各种 ME、2000 和 XP 变体版本)。

结束语

这里讨论的所有三种产品都可以使处理 XML 的日常工作更简单。它们都不完美,但每种产品都有自己的优点和便利 — 并且其中两种产品价格远低于 100 美元,花这点钱购买没有什么风险。在下一篇文章中,我将研究这个行列中的 Win32 产品进展如何。

参考资料

请通过单击文章顶部或底部的讨论参与本文的论坛。


阅读 David 先前关于 XML 编辑器的综述“XML 问题 #6: 编辑器综述”(developerWorks,2001 年 1 月)。


在 Morphon Technologies 主页找到更多关于 Morphon XML 编辑器的内容。


www.oxygenxml.com/ 上阅读(并下载)SyncRO 的基于 Java 的 XML 编辑器 <oXygen/>。


Mac 支持者可以在www.elfdata.com/xmleditor/ 上获得关于 ElfData 的 XML Editor 1.14 的内部消息。


查看www.xmlmind.com/xmleditor/ 以获得更多关于 Pixware 的 XMLmind XML Editor(XXE)的内容。


阅读 XSL 的 W3C 规范中的格式化对象。


在 Vervet Logic 网站上查找关于 XML Pro 的信息。


在 developerWorks XML 技术专区获取更多 XML 参考资料。


请查看 IBM WebSphere Studio Application Developer,这是一种易于使用的集成开发环境,用于构建、测试和部署 J2EE 应用程序,包括从 DTD 和模式生成 XML 文档。


成为 IBM 认证的 XML 及相关技术的开发人员。


在 David Mertz 的 XML 问题专栏中查找其它文章。

关于作者
David Mertz 肯定是将他的 MacGuffin 错放到另一篇文章中了。不久它一定会再次露面。可通过 mertz@gnosis.cx 与 David 联系;在 http://gnosis.cx/publish/ 上了解他的生活。欢迎提出关于过去、现在和将来专栏的意见和建议。  


--  作者:阳光小虾
--  发布时间:11/26/2003 8:32:00 PM

--  
支持admin!
--  作者:admin
--  发布时间:11/26/2003 10:44:00 PM

--  谢谢你的支持!
谢谢喔~~~~~
--  作者:zhg_zh
--  发布时间:12/18/2003 11:30:00 AM

--  

--  作者:雪利酒
--  发布时间:12/30/2003 5:01:00 PM

--  
哇!太感谢了!
正好要找这部分的资料~
版主能不能下面的部分也贴过来?
--  作者:莫往
--  发布时间:1/12/2004 11:24:00 AM

--  
xmlspy这个编辑工具怎么样?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms