以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XML工具及XML开发环境 』 (http://bbs.xml.org.cn/list.asp?boardid=7) ---- XML 编辑器综述,第 2 部分 (http://bbs.xml.org.cn/dispbbs.asp?boardid=7&rootid=&id=374) |
-- 作者:admin -- 发布时间:12/30/2003 8:23:00 PM -- XML 编辑器综述,第 2 部分 转载自: http://www-900.ibm.com/developerWorks/cn/xml/x-matters/part22/index.shtml XML 问题:XML 编辑器综述,第 2 部分 David Mertz,博士(mertz@gnosis.cx) 本文是 David 讨论 XML 编辑器专栏文章的第二部分,它研究了基于 Windows 的产品 — 具体来说,这些产品有:Altova 的 XMLSpy、Wattle Software 的 XMLwriter、NetBryx Technologies 的 EditML Pro 和 Corel 的 XMetal。一年半以前 David 研究过这类工具,那时,这些工具很大程度上只是对文本编辑器进行了“化妆”的封装器,而现在,已经发展成崭新的开发环境,极大地简化了对面向 XML 技术的使用。 我在前一篇专栏文章中讨论的 XML 编辑器是 Java 和 MacOS 应用程序。取决于您使用哪种平台,您会发现这一篇文章或上一篇更适合于您。 更具体地说,上一篇专栏文章讨论了用于 Java 的 Morphon 和 <oXygen/>,以及用于 MacOS 的 ElfData 的 XML Editor。本文继续评估以下产品: Altova 的 XML Spy 正如我在第一部分中提到的,我故意地不讨论通用文本编辑器。这些产品中的一部分非常好,并可以包括从 XML 语法突出显示到模板完成和菜单定制的所有功能。此外,对于文本编辑器所能做的一切,它们通常都能够以比全新的专门 XML 编辑器更成熟和精确的方式做到。如果您乐意在您当前使用的文本编辑器中编辑 XML,这未必是一件坏事。但是一些 XML 编辑器实际上确实使一些常见任务更为轻松(如果要执行很多这样的任务,那么值得花些钱购买定制工具)。 好编辑器是由什么组成的? 我在所有这些 XML 编辑器讨论中总结出一个差异。XML 文档有两种主要类型:面向散文的和面向数据的。编辑每种文档的需求都多少有些不同。 面向散文的文档借用了 XML 的 SGML 根。散文格式通常有许多规则,按照这些规则,节、子节、段、章、图以及其它项目可以彼此嵌套。典型情况下,它将内联的、面向字符的标记用于单个字和短语(粗体、强调、引用和链接等)。DocBook 就是一个著名的并且广泛使用的示例;另一个示例是 IBM 的 developerWorks 内部文章格式(我将两者都用于测试)。 相反,面向数据的文档很少拥有这样的文本,但包含了数值和简单名称的嵌套类表结构(nested table-like structures)。面向数据的 XML 通常类似于 RDBMS 表,有时就是从此类数据库中生成的。通常,将 XML 看作列和行的能力对于面向数据的 XML 而言很重要。 一些 XML 编辑器拥有适合于不同文档类型的方式和视图。一些编辑器还有特殊的能力,用以处理广泛使用的 XML“方言”或 XML 文档常用的其它技术。如果您有专门的需求,请考虑给定产品是否有适合于该需求的定制。至少,大多数 XML 编辑器可以自动将自己定制成不同的 DTD;当然,这种定制因产品而异。 Wattle Software 的 XMLwriter 1.21 我在 2001 年的综述中讨论过 XMLwriter,现在又再次研究(版本 1.21),发现它从 2001 年以来只作了很少更改。即将发行的版本 2.0 看起来可能会添加某些重要的更新;当撰写本文时,它的估计发行时间已经超过了 Wattle 代表所告诉我的时间。我将关注其发展。 基本上,XMLwriter 与文本编辑器非常类似,并带有一些特定于 XML 的额外特性。文档仅有的可编辑视图是原文视图(textual view),其中语法是突出显示的(请参阅图 1)。有几种利用 MSXML 和 Internet Explorer DLL 的预览方式 —“可折叠的”树、CSS 显示和 XSLT 转换视图。所有这些预览视图都只是原原本本地嵌入了 Internet Explorer 窗格。特别要注意的是,Internet Explorer 仍不能正确地呈现内联 CSS 元素(Mozilla 和 Opera 完美地实现了这一点),这使得该视图对于面向散文的文档的可用性大大削弱了。当然,如果您碰巧开发了针对 (X)HTML 的 XSLT 表,则可以得到良好显示。XMLwriter 根本不对面向数据的编辑提供任何支持。 图 1. XMLwriter 编辑器 除了文本编辑器特性以外,XMLwriter 还拥有以下选项:验证和良好格式检查、XSLT 转换、浏览器预览以及项目(相关文件的集合,包括:XML、XSL、CSS 和模式等)的概念。与我研究的大多数其它产品相比,该产品的额外特性比较薄弱。TagBar 是插入元素的工具,它多少有些笨拙;输入属性时没有帮助;验证是严格地事后进行;搜索对话框极其粗糙(没有正则表达式、XPath 或即使是特定于元素/属性/值的搜索)。XMLwriter 所能做的所有事情,象 jEdit 这样通用的、免费的用于程序员的编辑器几乎都能做得更好。 XMLwriter 版本 1.21 的价格大约是 40 美元。我不知道版本 2.0 将如何定价。 NetBryx Technologies EditML Pro 2.6 EditML Pro 是另一个相当简单的 Win32 XML 编辑器,但比 XMLwriter 更成熟一点。类似于 XMLwriter,它是一个包含 MSXML 和 Internet Explorer DLL 的相对较“瘦”的封装器,并包含了它们所带有的各种错误。遗憾的是,EditML Pro 自身也引入了几个错误,譬如,尽管我努力地禁用 DTD Element View 窗格,但它仍然照常自行打开(也许这种行为是从臭名昭著的 Microsoft Office paperclip 借用的)。 在 EditML Pro 中,您可以获得几种视图,它们都在与 XML 文档相关联窗口的选项卡形式的窗格中排列。该产品使用 MDI 样式的界面来管理多个文档,每个窗口都有其自己的选项卡。类似于大多数工具,这里有一个基本的突出显示语法的 SourceView 窗格。该产品还有 PreView(嵌入 Internet Explorer 中)和 DTDView 窗格。但主视图是带表的树视图。文档的结构在一个窗格中以可折叠的树层次结构显示,而任何属性或元素主体在另一个窗格的表中显示。第三个带表的树窗格用来编辑较长的属性值或主体文本。 图 2. EditML Pro 编辑器 EditML Pro 包括一些有用的工具。您可以: 从 XML 文档(遵从那些可能自动生效的限制)自动生成 DTD 或 W3C XML Schema。 Altova XML Spy(Suite)4.4 XML Spy 是很容易给人留下深刻印象的产品 — 或者不如说是相关产品的集合。当我 2001 年讨论 XML Spy 的较早版本时,就已经非常喜欢这个产品了,但从那时以来,Altova 添加了大量特性,几乎令人激动得手足无措。当然,因为有这许多特性,您购买该产品是物有所值的。我在这里讨论的产品中,XML Spy 的价格比其它工具都贵得多(除了 XMetal 以外,其价格与 XML Spy 差不多,并有一些类似的特性)。对于偶尔涉足 XML 的开发人员,XML Spy 或许过于强大了;但对以处理各种 XML 技术为日常基本工作(在 Windows 平台上)的开发人员而言,有必要安装这个极好的工具。它甚至就连介绍 XML 技术的各种可打印的简介也做得很漂亮。(这些文档是作为评论用途送给我的,也可以在 Altova 的网站上免费获得。) 缺省情况下,XML Spy IDE 打开大量窗格,包括关于项目的信息、当前属性、可插入元素、其它信息,以及压缩在 IDE 当中的实际工作区域。在 1024x768 的显示上没有足够的空间来容纳所有这些窗格,但仍然显示了足够大的工作区域及其各种选项卡视图 — 21 英寸监视器可能足够容纳这一切,但我对试图在 VGA 屏幕上使用这种产品的想法感到“不寒而栗”。幸运的是,可以有选择地或全部地关闭所有这些窗格。 在主工作区域内,XML Spy IDE 为您提供了丰富的视图集合 — 几乎可以说是我所研究的其它所有 XML 编辑器的超集。您可以获得以下视图: 标准文本视图 增强网格视图智能地决定何时将子节点作为表而不是树显示更好(您可以重设该选项)。对于面向散文的编辑,增强网格可能并不理想,但与 EditML Pro 不同,该产品仍然让您轻松地标识和编辑内联的、字符级标记。对于面向散文的 XML 文档,您可能希望使用这样的文档编辑器视图:它使用 XSLT 样式表以类似字处理器的方式格式化显示。您也可以选择在文档编辑器视图中嵌入图形图标来表明标记开始和停止的位置(源于 XMetal 的概念)。对于这种文档编辑器视图,我更愿意使用 CSS 而不是 XSLT,但如果您拥有整个 XML Spy Suite,则您可以使用 XSLT Designer 来创建排版视图,而不必手工调整 XSLT。 XML Spy 中的实用程序既丰富又组织良好。您可以: 进行 XSLT 转换 XML Spy Suite 单用户版的价格是 399 美元。也可以仅购买 XML Spy IDE 本身,而不带其它组件,价格是 199 美元。其它组件也可单独购买。 在我讨论的所有产品中,XMetal 的价格是最贵的,并且它所针对的用户群体和其它产品多少有些不同。XMetal 实际上并不打算成为通用的 XML 编辑工具,而是要成为可编制脚本的编辑环境。据我判断,Corel 预料开发人员将用 XMetal 创建复杂的定制编辑应用程序,然后这些应用程序又被提供给技术水平较低的用户,对于他们隐藏了底层 XML — 但为他们配置了定制宏、按钮、菜单以及其它界面。也可以用类似方式使用 XML Spy,但这并不是 Altova 的侧重点。我没有评估 XMetal 在应用程序开发框架方面的价值,而只是将它作为 XML 编辑环境。 XMetal 的基本界面类似于 XML Spy。各种窗格可用来表示项目、资源、可插入元素以及属性值。在主文档窗口中,有四种视图可用: 文本视图 图 4. Corel XMetal 编辑器 除了主文档窗口,您可以打开显示文档层次结构的可导航树窗口。XMetal(类似于 Morphon 而不象 XML Spy)用 CSS 来配置其图形显示,并具有导航和选择 CSS 样式的工具。我更喜欢 CSS 的这种用法而不是 XSLT 方法。此外,不象所有嵌入 Internet Explorer 用于 CSS 视图的工具,XMetal 可以正确地(在可编辑视图中)显示内联的 CSS 元素。 除了一些有用的编辑视图,XMetal 显得有些“单薄”,除非您希望定制编程应用程序。XMetal 带有关于用多种语言对其环境进行脚本编制的很厚的参考书籍,但对于 XSLT 操作、复杂搜索、POF 输出到 PS/PDF 或特殊 XML“方言”则缺乏内置的便利菜单。基本验证和良好格式检查没什么特别的地方。提醒一下,它的 API 足以编制所有这些和更多功能的脚本 — 但那是开发项目而不是唾手可得的工具。甚至 XMetal 定制侧重点,我也不介意花 495 美元来看到一些更出色的内置便利工具。 结束语 目前,开发人员可以使用的 XML 编辑器的范围很广。在高端,象 XML Spy 和 XMetal 这样的工具为使用 XML 技术的程序员提供了完整的开发环境。您可以利用菜单完成您的每项 XML 工作 — 在 XML Spy 中尤其是如此。象 Morphon、XMetal 和 XML Spy 这样的工具也允许您象使用字处理器一样使用 XML。甚至低端工具也能有效地辅助 XML 文档的定制创建和修改。在这些低端工具中,我最喜欢的可能是基于 Java 的工具 <oXygen/>,它可以跨 OS 平台运行,并且购买起来也很便宜。 参考资料 请通过单击文章顶部或底部的讨论参与本文的论坛。 关于作者 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |