文档层面的集成
与应用程序层面的集成相比,文档层面的集成更复杂,但提供了更多的灵活性,可以通过ActiveX控件将XMLSpy的功能嵌入到您的应用程序中。在使用这种方式时,您可以选择性地访问XMLSpy用户界面的以下部分:
•文档编辑窗口
•项目窗口
•输入助手窗口
•验证输出窗口
•XPath分析器窗口
•XPath对话窗口
•XSLT/XQuery调试器窗口
•SOAP调试器窗口
正如应用程序层面的集成部分所述,对于应用程序层面的ActiveX集成,仅需要一个控件,即XMLSpyControl。然而,对于文档层面的ActiveX集成,XMLSpy的功能由以下ActiveX控件提供:
这些控件都是由XMLSpyControl.ocx文件提供的,您可以在XMLSpy的应用安装文件夹中找到它们。当您使用Visual Studio开发ActiveX集成时,您将需要将这些控件添加到Visual Studio工具箱中(参见将ActiveX控件添加到工具箱)。
要在文档层面将ActiveX控件集成到您的应用程序中,请按以下步骤进行操作:
1.首先,在您的应用程序中实例化XMLSpyControl。将该控件实例化是必需的;它将启用对上述的XMLSpyControl Document和XMLSpyControl Placeholder的支持。将IntegrationLevel属性设为ICActiveXIntegrationOnDocumentLevel(或“1”)。要对用户隐藏控件,可以将其Visible属性设为False。提示:在进行文档层面的集成时,请不要使用XMLSpyControl的Open方法;这可能会导致一些非预期的结果。取而代之的是可以使用XMLSpyControl Document和XMLSpyControl PlaceHolder相应的open方法。
2.在您的应用程序中至少创建一个XMLSpyControl Document的实例。此控件将在您的应用程序中提供XMLSpy的文档编辑窗口,并且可以根据需要多次进行实例化。要加载任何现有的文件,请使用Open方法。要调用文档相关的功能,请使用Path和Save,或通过Document属性可调用的方法和属性。提示:此控件不支持只读模式。ReadOnly属性的值将被忽略。
3.在您的应用程序中为每个所需的附加的窗口(而不是文档窗口)添加一个XMLSpyControl Placeholder控件。(此步骤是可选的)XMLSpyControl PlaceHolder的实例允许您有选择性地在您的应用程序中嵌入XMLSpy的附加窗口。窗口的类型(例如,项目窗口)是由PlaceholderWindowID属性定义的。因此,要设置窗口的类型,请对PlaceholderWindowID属性进行设置。有关有效的窗口标识符的信息,请参见XMLSpyControlPlaceholderWindow。提示:对于每个窗口标识符,请仅使用一个XMLSpyControl PlaceHolder。
对于选择XMLSpy项目窗口的占位符控件,可以使用附加的方法。OpenProject可用于加载一个XMLSpy项目。使用Project属性和XMLSpy自动化接口的方法和属性,可执行其他任何项目相关的操作。
有关如何用Visual Studio在C#或VB.NET中创建一个简单的,由单个窗体组成的应用程序,并可在文档层面集成XMLSpy ActiveX控件的步骤,请参见下面的说明。然而,下面的说明旨在向您展示完成一个文档层面的ActiveX集成的最低要求是什么。
1.创建一个“Visual Studio Windows Forms”项目,带有一个新的空窗体。
2.如果您还未执行这一步,请将ActiveX控件添加到工具箱中(参见将ActiveX控件添加到工具箱)。
3.将XMLSpyControl从工具箱拖到您的新窗体中。
4.将XMLSpyControl的IntegrationLevel属性设为ICActiveXIntegrationOnDocumentLevel,Visible属性设为False。您可以在代码中或在属性窗口中执行该步骤。
5.将XMLSpyControl Document从工具箱拖到该窗体中。此控件将在您的应用程序中提供XMLSpy的主文档窗口,因此您可能需要将其大小调整为适合编辑文档的大小。
6.对于您的应用程序所需的每个附加的窗口(例如,项目窗口),在该窗体中添加一个或多个XMLSpyControl Placeholder(此步骤是可选的)。通常,您会将这类附加的占位符控件放在主文档控件的下方、右侧或左侧,例如:

7.将每个XMLSpyControl Placeholder控件的PlaceholderWindowID属性设为一个有效的窗口标识符。有关有效值的列表,请参见XMLSpyControlPlaceholderWindow。
8.在您的应用程序中添加命令(至少您需要打开、保存和关闭文档这些命令),如下所示。
查询XMLSpy命令
当您进行文档层面的集成时,您的应用程序中没有可用的XMLSpy的菜单或工具栏。您可以检索所需的命令、查询它们的状态并以编程的方式执行它们,如下:
•要检索所有可用的命令,使用XMLSpyControl的CommandsList属性。
•要检索主菜单中的命令,使用MainMenu属性。
•要检索工具栏中的命令,使用Toolbars属性。
•要向XMLSpy发送命令,使用Exec方法。
•要查询一个命令目前是启用状态,还是禁用状态,使用QueryStatus方法。
这可以帮助您灵活地将XMLSpy命令集成到您应用程序的菜单和工具栏中。
在您安装XMLSpy时,会提供XMLSpy中使用的命令标签图像。要查看GIF格式的图标,请转至您的XMLSpy安装的<ApplicationFolder>\Examples\ActiveX\Images文件夹。文件名与命令相对应,正如它们在命令参考部分中列出的一样。
常规注意事项
要自动化XMLSpy的行为,可以使用上述的XMLSpyControl、XMLSpyControl Document和XMLSpyControl Placeholder的属性、方法和事件。
要调用更复杂的XMLSpy功能,请考虑使用以下属性:
•XMLSpyControlDocument.Document
•XMLSpyControlPlaceHolder.Project
这些属性将允许您访问XMLSpy自动化接口(XMLSpyAPI)
提示: | 要打开一个文档,请在相应的文档控件上使用XMLSpyControlDocument.Open或XMLSpyControlDocument.New。要打开一个项目,请在嵌入了XMLSpy项目窗口的占位符控件上使用XMLSpyControlPlaceHolder.OpenProject。 |
有关说明如何在不同的编程环境中实例化和调用所需的控件的示例,请参见ActiveX集成示例。