`
jiayj198609
  • 浏览: 147450 次
  • 性别: 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+Web开发从入门到精通(实例版)

    第4 章 在 Eclipse 中进行资源构建 ——Ant 使用实例... 60 4.1 Ant 简介... 60 4.1.1 构造文件的主要标记... 60 4.1.2 Ant 的常用任务(Task)... 62 4.2 Eclipse 与Ant 的集成... 64 4.2.1 创建Ant...

    基于Eclipse平台的Target+Register+Editor的研究与实现

    分析Eclipse的体系结构,提出了Eclipse插件开发在嵌入式系统开发领 域中的优势。 (2)详细地介绍了Eclipse平台的结构和特性,分析了Eclipse平台上插件 开发的相关技术。介绍了Eclipse的插件机制,插件的部署与激活、...

    xmlspy.2013-patch

    Altova XMLSpy ®2013企业版是业界最畅销的XML编辑器和开发环境进行建模,编辑,转换和调试XML相关的软件。它提供了世界领先的XML编辑器,在原图形架构设计师,一个代码生成器,文件转换器,调试器,分析器,完整的...

    eclipse中配置hadoop插件

    eclipse中配置hadoop插件 在Eclipse中配置Hadoop插件是使用Hadoop进行大数据处理和分析的重要步骤。...使用Eclipse配置Hadoop插件可以实现大数据处理和分析的自动化操作,提高工作效率和开发速度。

    altova-xmlspy-enterprise-2010-v12-3

    Altova XMLSpy ®2013企业版是业界最畅销的XML编辑器和开发环境进行建模,编辑,转换和调试XML相关的软件。它提供了世界领先的XML编辑器,在原图形架构设计师,一个代码生成器,文件转换器,调试器,分析器,完整的...

    Eclipse开发分布式商城系统+完整视频代码及文档

    项目中使用freemarker-分析.avi │ 13.静态页面生成完毕.avi │ 14.解决请求406问题.avi │ 打开必读.txt │ 淘淘商城第九天笔记.docx │ ├─10.第十天 │ 01.课后回顾.avi │ 02.课程计划.avi │ 03.单点登录系统...

    xml spy 2006 中文破解版

    Altova XMLSpy企业版是业界最畅销的XML编辑器和开发环境进行建模,编辑,转换和调试XML相关的软件。它提供了世界领先的XML编辑器,在原图形架构设计师,一个代码生成器,文件转换器,调试器,分析器,完整的数据库...

    spket plugin for eclipse

    体积小巧(eclipse plugin: 3.5M),价格优惠(免费) 主要功能: 1、Ext 对象的自动完成 2、Ext 组件对象的查看 3、JavaScript Lib 对象的自动识别 4、JS文档的智能分析与阅读 这是个振奋人心的...

    Eclipse开发平台及其应用 (2005年)

    Eclipse是一个开放源代码项目,它提供了一个用于开发插件的框架,使创建、集成和使用软件工具更容易。分析了Eclipse的体系结构和Eclipse插件的工作原理,并举例说明了开发插件的基本方法;结合正在开发的一个集成化...

    Java软件开发工程师个人简历模板

    1. 熟练使用Jsp,Javabean,Servlet,JDBC等Web开发技术进行开发 2. 熟练使用HTML、Javascript、Ajax等表现层技术,了解XML; 3. 熟悉Struts、Hibernate、Spring等开源框架,熟悉MVC三层架构开发模式; 4. 熟练掌握...

    android编程之xml文件读取和写入方法

    开发环境:Eclipse 二、说明: 1.打开sd卡中的xml文件,如果不存在,这新建一个,并写入默认配置 2.读取xml文件 三、xml文件格式: <?xml version=1.0 encoding=UTF-8 standalone=true?> - <title>远程...

    J2EE应用开发详解

    57 4.3.7 Servlet协作 57 4.3.8 Filter 58 4.4 使用Servlet处理客户端请求 58 4.5 会话跟踪 61 4.5.1 使用Cookie进行会话跟踪 61 4.5.2 使用URL重写进行会话跟踪 62 4.5.3 使用隐藏表单域进行会话跟踪 63 4.6 小结 ...

    基于Android平台的即时通信系统的设计与实现

    2、掌握用Eclipse进行Android平台的UI基本设计、HTTP网络协议及XML文件解析等关键技术的实现,深刻理解XMPP(可扩展消息处理现场协议)协议; 3、学习使用MVC模式来构建系统的客户端,并掌握这种程序设计模式,分析...

    Android入门到精通源代码.

    2.5 使用Eclipse开发Android应用程序 2.5.1 使用Eclipse创建Android项目 2.5.2 Eclipse中Android项目架构 2.5.3 Eclipse中Android项目的调试和运行 第3章 Android中的Activity 3.1 Activity的作用 3.2 单Activity的...

    Android平台天气预报widget的设计与实现毕业论文.doc

    Android 平台天气预报 Widget 的设计与实现是基于 Android 平台的开发技术的研究和分析。本文首先介绍了 Android 开发所需的基础知识,然后详细介绍了软件的具体实现过程。软件的实现是通过网络接口和 Google API ...

    Android移动开发实验4.doc

    《Android应用开发 》实验报告 实验序号:04 实验项目名称:微信朋友圈布局页面 "学 号" "姓 名" "专业、班 " " "实验地点" "指导教师" "实验时间 " " "实验目的及要求 " "1、熟悉Eclipse集成开发的步骤;...

    jetstorm:用于加速Storm拓扑开发的Eclipse工具

    完全封装了对流(字段名称,类型和顺序)的理解的Bean,它们提供了更高的质量,更低的风险以及更容易的对流形变化进行影响分析的方法 针对每个喷口,螺栓和bean的J-Unit测试类,以覆盖代码。 针对常见开发错误...

    JAVA性能瓶颈和漏洞检测

    内置的图形化实时内存使用和对象视图,有助于开发人员理解应用的内存使用,设法减少内存消耗以提高应用性能。 主要功能: 识别内存泄漏:通过易用的两步分析,跟踪运行时的内存增长; Memory Instance Calculator...

    CAN网络协议开发及分析工具的设计与实现 (2014年)

    笔者所在团队采用Eclipse作为开发平台,以Java和JNI方式实现了一种低成本的CAN网络开发及分析工具,该工具包括网络协议设计工具和总线监控工具两部分,网络协议设计工具实现信号矩阵设计并给出网络信号的多个视角,...

Global site tag (gtag.js) - Google Analytics