XMLSpy的二次开发

时间:2022-03-07 16:59:02

本人正在研究XMLSpy的二次开发,首先简单地说一下XMLSpy,XMLSpy是符合行业标准的XML开发环境,专门用于设计,编辑和调试企业级的应用程序,包括XML,XML Schema,XSL/XSLT,SOAP,WSDL和互联网服务技术。 其实XMLSpy的功能已经做的很强大了,那么为什么还要进行二次开发呢,这个可能因人而异,不同的人有不同的需求,我做这件事是为了通过研究已有的功能以及新增的功能,将这种研究思路或方法及功能应用到自己的东西中,或者仿照这个做出类似的工具。如果有研究这方面的朋友,大家可以一起交流一下哈。

下面简单地介绍一下目前做过的工作。主要参考XMLSpy的用户手册。


1.软件二次开发

1.1软件二次开发定义

所谓软件二次开发是对已有软件产品的功能进行扩充或根据特殊需要组合扩展功能等。

一般支持软件二次开发的原软件系统都提供相应的SDK(Software develop kit)。二次开发人员可以根据SDK中提供的公开的API(应用程序接口)来访问软件原有的一些基本功能,并根据这些基本功能组合,扩展进而形成更加专业或新的功能以完成用户特殊的需求。

2. Application API

XMLSpy中基于COM组件的API,可以使其它的应用程序使用XMLSpy的功能,同时可以在内置的脚本编辑器中使用Application API编写脚本,也可以在IDE Plugins中使用。

XMLSpy和它的Application API遵循由微软制定的公共规范,因此可以从一些开发环境中访问它的属性和方法,比如使用C,C++,Delphi及脚本语言。

2.1 对象模型

XMLSpy的二次开发

                                   图1-1 主要对象模型及其关系

2.2 接口

Application

SpyProject

SpyProjectItems

SpyProjectItem

Documents

Document

GridView

AuthenticView

AuthenticRange

AuthenticDataTransfer

OldAuthenticView

AuthenticSelection

AuthenticEvent

AuthenticDataTransfer

TextView

XMLData

Dialogs

CodeGeneratorDlg

FileSelectionDlg

SchemaDocumentationDlg

GenerateSampleXMLDlg

DTDSchemaGeneratorDlg

FindInFilesDlg

WSDLDocumentationDlg

WSDL20DocumentationDlg

XBRLDocumentationDlg

DatabaseConnection

ExportSettings

TextImportExportSettings

ElementList

ElementListItem

3.XMLSpy开发方法

XMLSpy虽然不是开源的软件,但是它提供了几种二次开发的方式法,这几种方法本质上是一样的。XMLSpy2011用户手册中提供了三种形式的开发方法,分别为Scripting, Plugins, Application API for Java。

3.1 Scripting开发方法

3.1.1 关于Scripting介绍

在XMLSpy中提供一个内置脚本编辑器(Scripting Editor),在脚本编辑器中可以使用Microsoft.NET Framework的组件,也可以通过JScript和VBScript使用XMLSpy API和Microsoft.NET framework类,最终可以在菜单中生成一个菜单项。

3.1.2创建Scripting工程

在XMLSpy中创建一个Scripting Projects,保存扩展名为asprj的文件。在该文件中可以编写Global Declarations, Forms, Events, and Macros。(示例代码:MyScriptingProject.asprj)

3.2 Plugins开发方法

3.2.1 关于Plugins介绍

XMLSpy中允许用户在XMLSpy中开发自己的IDE plugins来增加新的功能,这些插件要实现IXMLSpyPlugIn接口。(示例代码:IXMLSpyPlugIn)

3.2.2 创建Plugins工程

1)使用ATL创建一个简单的XMLSpy IDE插件DLL。

2)在VS中附加进程xmlspy.exe。

3)在XMLSpy中添加该DLL插件。

3.3 Application API for Java

3.3.1关于Application API for Java的介绍

Application API for Java建立了Java类的接口,其中每一个接口对应 Application API中的一个对象。开发人员可以使用这些Java 类与COM API进行交互。

3.3.2 Java 类

SpyApplication

SpyProject

SpyProjectItems

SpyProjectItem

SpyDocuments

SpyDoc

SpyAuthenticView

SpyAuthenticRange

SpyDocEditView

SpyDocEditSelection

SpyGridView

SpyTextView

SpyXMLData

SpyDialogs

SpyCodeGeneratorDlg

SpyDTDSchemaGeneratorDlg

SpyFileSelectionDlg

SpyFindInFilesDlg

SpyGenerateSampleXMLDlg

SpySchemaDocumentationDlg

SpyWSDL20DocumentationDlg

SpyWSDLDocumentationDlg

SpyXBRLDocumentationDlg

SpyDatabaseConnection

SpyElementList

SpyElementListItem

SpyExportSettings

SpyFindInFilesResults

SpyFindInFilesResult

SpyFindInFilesMatch

SpyTextImportExportSettings

3.3.3 创建工程

在编码前需要注意以下事项:XmlSpyLib.dll需要放在system32文件夹中;需要XMLSpyInterface.jar包;在classpath的环境变量中需要指出XMLSpyInterface.jar包所在的路径。(示例代码:TestSpyInterface)


注:如果需要示例代码的可以给我留言。