`
jiayj198609
  • 浏览: 150064 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

分析如何用 Eclipse 进行 XML 开发

阅读更多
已经开发出了许多 XML 插件,新的插件也不断得以创建。本文主要讨论名为 XMLBuddy 的插件,因为它丰富的功能集合包含 XML 文档开发所需的大多数功能。我们也会提到其它插件,这些插件能为特定任务提供更丰富的用户选项集。本文将使您熟悉基本的 XML 编辑功能,但要记住:Eclipse 是一个可以让无数工具和功能为您所用的动态框架集。
  
  Eclipse XML 编辑器
  
  Eclipse 已经包括一个非常简单的 XML 编辑器的源代码,这个编辑器只提供 XML 语法的突出显示。它继承 org.eclipse.ui.editors 包中包括的类,这个包为 Eclipse 平台提供一个标准文本编辑器和基于文件的文档提供程序。这个简单的 XML 编辑器起着代码示例的作用,您可以把它作为自己的 Eclipse XML 插件的基础。它的源代码只能通过 Eclipse 项目向导生成,您需要按下面所描述的自己编译它。
  
  要构建这个基本 XML 编辑器,转至菜单 File => New,然后选择 Project。在项目向导中,选择 Plug-in Development => Plug-in Project。
  
  如果看不到 Plug-in Development 选项,则表示 Eclipse 平台 Runtime Binary 没有 Plug-in 开发环境。请到 eclipse.org 下载页面下载 Eclipse 平台 Plug-in SDK。
  
  单击 Next。给项目命名(如 org.my.eclipse.xmleditor),单击 Next,然后接受屏幕 Plug-in Project Structure 上的缺省值。接下来选择 Create a plug-in project using a code generation 向导,然后选择 Plug-in with an editor 选项。向导会自动生成该 XML 编辑器的源代码。
  
  但仍需编译它。单击 Next,然后在下一屏幕 Simple Plug-in Content 上单击 Finish 选项;转至 Project 菜单并选择 Rebuild All 来构建该项目。
  
  接下来需要使用 File => Export 菜单创建 editor.jar 文件。请退出 Eclipse,然后复制整个 org.my.eclipse.xmleditor plugin 目录。当您再次运行 Eclipse 时,可将一个 XML 文件添加到您的项目中。请记住这个样本 XML 编辑器未提供任何一种验证或语法检查。
  
  用 XMLBuddy 编写 XML
  
  最受欢迎且最高级的 Eclipse XML 编辑器插件是由 Bocaloco Software 开发的 XMLBuddy。XMLBuddy 是免费插件,它为 Eclipse 增添了 XML 编辑能力,其中包括对用户可配置的语法着色、DTD 驱动的代码辅助、验证以及同步的提纲视图。XML Buddy 还为 Workspace 添加 XML 透视图,为 XML 文档和 DTD 添加新的项目模板。您可以象安装任何其它 Eclipse 插件那样安装 XMLBuddy:只需将插件压缩文件解压缩至主 Eclipse 安装目录下的 \eclipse\plugins 子目录即可。记住要重新启动 Eclipse。
  
  XML 是元标记语言。XML 元素由起始标记、结束标记和二者之间的数据组成,因此有了语法突出显示还需要好的编辑功能。XMLBuddy(目前是版本 0.2)用以下 XML 编辑功能扩展 Eclipse:
  
  ● 格式化。可以通过选择全部或部分代码对整个 XML 文档或部分文档自动进行格式化。
  
  ● 高级语法着色。可通过 Window => Preferences => XML => Colors 菜单配置 XML 代码着色。着色可用于普通 XML 文档、DTD(内部或外部子集)和 JSP 文件。
  
  ● XML 代码辅助。根据文档的 DTD,可为元素或其它标记名称、属性名称及属性值提供辅助。
  
  ● 扩展字符编码支持。XMLBuddy 根据 XML 1.0 规范自动检测文档编码,它接受
  
  ● 提纲(Outline)视图。提纲视图窗口显示文档中元素的结构。缺省情况下,提纲与编辑动态同步。这能使您快速浏览文档的逻辑。
  
  ● DTD 生成。可以动态地从文档的内容生成 DTD。XMLBuddy 在本地高速缓存基于因特网的 DTD,因此不管要使用 DTD 和相关的文档多少次,只需下载它们一次。
  
  验证 XML 代码并对其字符进行编码
  
  使用 XML 文档的主要困难在于检查其内部有效性(文档逻辑的内聚性)。需要执行语法检查以了解是否所有的标记和定义都是正确的并且被正确地调用。只有语法检查通过之 后,才能确认 XML 文档格式良好并可以解析文档的逻辑结构。XML 文档由 XML 解析器验证。
  
  所有以下描述的 Eclipse XML 插件都能够执行 XML 验证,指出代码中的警告和错误。如果试图打开一个 XML 文档,XML 解析器可能会生成一个错误。可以检索精确的错误代码、错误文本甚至导致错误的那一行。可以在需要时验证 XML 文档,或在保存文档时自动验证。可以将验证错误任务作为一组进行清除。XMLBuddy 插件使用系统范围的 XML 解析器,不过,请记住 Eclipse 平台带有最好的 XML 解析器之一:Xerces(XML4J)。但并不限于 Xerces 或系统解析器,因为可使用 Run => External Tools => Configure 指向其它 XML 解析器。
  
  另一个重要的 XMLBuddy 功能是支持不同的字符编码。这迟早会有用,例如,当需要使用以不同语言(如波兰语和英语)编写的 XML 可移植文档时。这不是一项简单的任务,因为编码波兰语字符主要有三种方法:其一是由 Windows 9x/2000 使用的 Windows Latin-2(CP1250);其二是在因特网中使用以及由 UNIX 与类 UNIX 系统(如 Linux)使用的 ISO Latin-2(ISO8859-2);其三是 MacOS 和 MacOS X,它们对波兰语使用不同的字符编码标准。
  
  通常,XMLBuddy 为字符编码提供两种解决方案:根据文件内容自动检测 XML 文档编码,或将其设置为缺省的编码。缺省的编码可以在工作空间范围,也可特定于资源。要打开 XML 编码首选项,可选择 Window => Preferences => XML => Encoding。
  
  这些针对字符编码的解决方案的问题在于:对 XML 而言,一种编码(每个工作台一种)不能适应全部情况。XML 文档可能来自世界各地任意数量的来源。在许多情况下,用户不能控制其他人对文档的编码,而且可能没有办法按编码界限划分工作。同一编码首选项将很难同时适合(比方说) Java 源文件和 XML 文档。当一组全局首选项不能满足需要时,XMLBuddy 为每个文档提供属性。指定项目中每个文件的属性是一项繁重的任务。但是,当要处理的某一文档使用了不常用的编码(不能自动检测该编码,并且没有在文档中指定)时,则属性是唯一的解决方案。要打开特定文件的编码属性,可在文件上单击鼠标右键并选择 Properties = > XML => Encoding。
  
  DTD vs. XML Schema
  
  XML Schema 指定 XML Schema 定义语言,该语言提供了描述 XML 1.0 文档结构和限制其内容的工具,其中包括那些利用 XML Namespace 的工具。模式语言自身用 XML 1.0 表示并使用名称空间,它在很大程度上重构了 XML 1.0 DTD 具有的能力,并在一定程度上扩展了这些能力。请记住 DTD 有许多局限:
  
  □ 对于复杂需求通常很难使用内容模型。
  □ 不支持名称空间。
  □ 对模块化和重用的支持非常有限。
  □ 不支持对声明扩展或继承。
  □ 编写、维护和读取大型 DTD 以及定义系列相关模式都很困难。
  □ 没有嵌入式、结构化自我文档编制(self-documentation)(只有 可用)。
  □ 内容和属性声明不能依靠属性或元素上下文(许多 XML 语言用到这一点,但它们的 DTD 必须“允许过多东西”)。
  □ 只能使用一个简单的标识属性机制(换句话说,没有唯一性作用域)。
  
  XML Schema 也有不足:
  
  □ XML Schema 比较复杂;只需要偶尔使用 XML 的程序员可能觉得它难得有些过头。
  □ XML Schema 不能请求特定的根元素(因此,即使验证最简单的文档也要求额外的信息)。
  □ 当描述混合内容时,根本无法约束字符数据。
  □ 内容和属性声明不能依靠属性或元素上下文(这也是 DTD 的主要问题)。
  □ 不能离开声明指定缺省值。
  □ 元素缺省值只能是字符数据(不包含标记)。
  
  XMLBuddy 对 DTD 和 Schema 都提供了足够的支持,但如果您需要真正优秀的 XML Schema 支持,应该使用 XSD-XML Infoset Browser for Java 插件。它是按照 W3C XML Schema 规范中描述的那样实现 XML Schema Infoset Model 的 Java 参考库。它对于任何检查、创建或修改 XML Schema 的代码都非常有用。XML Infoset Browser 提供操作 XML Schema 组件的 API,以及操作以一系列 XML 文档的 XML Schema 的(DOM 可访问的)表示的 API。XML Infoset 基本上允许两个或两个以上的程序员同时使用 Java 和 XML,因此提供了识别和创建基于 XML 的模式的标准方法。
  
  XML Infoset Browser 的必要补充是 IBM XML Schema Quality Checker,简称 SQC。SQC 是 Java 程序,它获取以 W3C XML 模式语言编写的 XML Schema 作为输入,然后诊断 Schema 语言不正确的使用。SQC 读取符合最新 XML Schema 规范的 Schema,并尝试确定它们在应用于 Schema 的各种约束下是否有效。当 SQC 遇到不符合规范的元素时,它给出诊断消息,其中可能包含关于如何修正问题的建议。对于由许多 Schema 文档(这些文档间通过 、 或 元素信息项连接)组成的 Schema,执行完整的 Schema 检查。SQC 还可以以批处理方式运行,通过一次运行检查多个 XML 模式。
  
  其它 Eclipse XML 插件
  
  其它有用的 XML 插件有 Transclipse 和 Eclipse Tidy。Transclipse 是 XML 转换插件。它用任何符合 JAXP 的 XSL 样式表处理器通过 XSLT 处理 XML 文档,并使用 Apache 格式化对象处理器(Formatting Objects Processor,FOP)处理 XSL-FO 文档。Transclipse 是 j2h(Java 至 HTML,Java to HTML)插件的一部分,j2h 将 Java 源代码转换成带语法突出显示的 HTML、XHTML 和 LaTeX。Eclipse Tidy 项目提供了格式化和打印 XML/HTML 文档的插件。
分享到:
评论

相关推荐

    eclipse中xml文件里自动提示消失解决办法

    在Eclipse这款强大的开源集成开发环境中,XML文件的编写是非常常见的任务之一。然而,在实际操作过程中,不少用户可能会遇到XML文件中的自动提示功能突然消失的问题,这对于提高编码效率无疑是一个不小的挑战。本文...

    使用Eclipse 进行Maven开发

    ### 使用Eclipse进行Maven开发 #### 第1章 介绍m2eclipse **1.1 介绍** 在当今的软件开发领域,Eclipse IDE 是最受欢迎的 Java 开发环境之一。由于其高度可扩展性和丰富的插件生态系统,Eclipse 成为了许多开发者...

    如何在Linux使用Eclipse + CDT开发C C++程序

    使用 Eclipse 和 CDT 开发 C/C++ 程序,可以大大提高我们的生产力,因为 Eclipse 提供了很多实用的功能,如语法提示、自动完成、代码折叠、调试等,CDT 也提供了许多有用的功能,如代码分析、代码重构等。使用 ...

    Eclipse开发学习笔记.pdf

    ### Eclipse开发学习笔记知识点解析 #### 一、Eclipse工作台(Workbench) Eclipse工作台是Eclipse提供的集成开发环境的核心部分,旨在为...通过深入学习和掌握Eclipse的使用技巧,可以极大地提升开发效率和代码质量。

    eclipse整合birt开发web

    完成上述步骤后,你已经准备好使用Eclipse和BIRT进行Web报表开发了。 **BIRT的核心组件** 1. **BIRT Designer**:这是BIRT的主要设计工具,作为一个Eclipse插件,它提供了一个可视化的工作环境,你可以通过拖放控件...

    eclipse 集成 JSON2XML Tree Viewer

    总之,通过Eclipse集成JSON2XML Tree Viewer插件,我们能够方便地在JSON和XML之间进行转换,并以直观的树形视图展示数据结构,这对于开发和调试工作具有很大的价值。无论是新手还是经验丰富的开发者,都能从中受益,...

    eclipse 对xml的读写更新操作的源码

    本篇将深入探讨Eclipse如何进行XML的读、写和更新操作,并通过源码分析来理解其背后的实现原理。 首先,Eclipse提供了内置的XML编辑器,它支持语法高亮、自动完成、错误检查等功能。在进行XML读取时,Eclipse使用了...

    基于Eclipse的代码开发准备

    在进行基于Eclipse的代码开发时,准备工作至关重要,它直接影响到开发效率和代码质量。本文将深入探讨如何利用Eclipse的代码格式化模板文件优化开发环境,提高编码规范性。 首先,Eclipse作为一款强大的Java集成...

    《Eclipse 插件开发》源代码

    通过学习和分析《Eclipse 插件开发》的源代码,开发者能够掌握如何利用Eclipse的强大框架,创建功能丰富的插件或独立的应用程序,提升开发效率和用户体验。同时,源代码中的注释和设计模式也是学习Eclipse插件开发的...

    eclipsexml備注.7zeclipsexml備注.7z

    标题中的“eclipsexml備注.7z”很可能是一个使用7-Zip软件压缩的文件,该文件主要用于存储与Eclipse IDE相关的XML配置或注释信息。Eclipse是一款流行的开源集成开发环境(IDE),广泛用于Java和其他语言的开发。XML...

    Eclipse插件开发 第1篇到第4篇 开发基础 核心技术 高级进阶 综合实例 eclipse 插件安装方法

    14. **开发代码分析插件**:利用Eclipse的API,实现对代码的静态分析和错误检查。 15. **集成第三方工具**:例如,将版本控制系统、持续集成工具等集成到Eclipse环境中。 16. **定制Eclipse IDE**:根据团队的需求...

    Eclipse插件开发问题

    在Eclipse插件开发中,开发者常常会遇到各种挑战,如如何添加自定义的启动配置选项,以及如何处理多语言支持。以下是对这两个问题的详细分析: 首先,问题一涉及在Eclipse调试Java应用程序时自定义启动配置界面。...

    GEF入门实例代码2《Eclipse插件开发》中实例

    这个实例代码2是《Eclipse插件开发》教程中的一部分,旨在帮助初学者理解如何利用GEF来创建自定义的图形编辑器。在Eclipse插件开发中,GEF提供了一套强大的框架,使得开发者可以方便地构建出功能丰富的图形用户界面...

    eclipse配置安卓开发环境

    本文档将详细介绍如何使用Eclipse IDE配置Android开发环境,特别适合初次接触的开发者参考。以下内容将以图文并茂的方式进行阐述,帮助您轻松解决配置过程中可能遇到的问题。 1. **下载和安装Eclipse** 首先,访问...

    Eclipse开发Android源码

    本文将详细介绍如何使用Eclipse这一流行的集成开发环境(IDE)来导入和浏览Android的源码。 首先,Android源码是支持多种IDE的,但若要针对应用层进行开发,Eclipse被认为是一个理想的选择。Eclipse提供了丰富的...

    eclipse插件开发实战

    通过上述内容的深入分析,我们可以看出 Eclipse 插件开发不仅涉及内核结构的理解,还包括 SWK、OSGi 和 RCP 的掌握,以及实际的插件项目构建和发布流程。对于想要深入了解 Eclipse 插件开发的技术人员来说,这些知识...

    eclipse rcp应用系统开发方法与实战源代码.zip

    7. **源代码实践**:压缩包中的源代码提供了实际的开发示例,通过分析和运行这些代码,可以加深对Eclipse RCP开发的理解,学习如何将理论知识转化为实际应用。 8. **调试和测试**:Eclipse作为强大的IDE,提供了...

    通过例子学习Eclipse开发

    在本系列的学习资源中,我们将深入探讨如何使用Eclipse这一强大的集成开发环境(IDE)进行Java应用、RCP(Rich Client Platform)、JFace表查看器以及BIRT(Business Intelligence and Reporting Tools)报表的开发...

Global site tag (gtag.js) - Google Analytics