Integration auf Dokumentebene
Im Vergleich zur Integration auf Applikationsebene ist die Integration auf Dokumentebene komplexer, bietet aber dafür mehr Flexibilität beim Einbetten von XMLSpy-Funktionalitäten in Ihre Applikation mit Hilfe von ActiveX Controls. Auf diese Art haben Sie selektiven Zugriff auf die folgenden Teile der XMLSpy-Benutzeroberfläche:
•Dokument-Bearbeitungsfenster
•Projektfenster
•Eingabehilfenfenster
•Validierungsausgabefenster
•XPath Profiler-Fenster
•XPath-Dialogfeld-Fenster
•XSLT/XQuery Debugger-Fenster
•SOAP-Debugger-Fenster
Wie bereits im Abschnitt Integration auf Applikationsebene erwähnt, ist für eine ActiveX-Integration auf Applikationsebene nur ein Control, nämlich das XMLSpyControl, erforderlich. Für eine ActiveX-Integration auf Dokumentebene werden die XMLSpy-Funktionalitäten jedoch durch die folgenden ActiveX Controls zur Verfügung gestellt:
Diese Controls werden durch die Datei XMLSpyControl.ocx aus dem Applikationsinstallationsordner von XMLSpy zur Verfügung gestellt. Wenn Sie die ActiveX-Integration mit Hilfe von Visual Studio erstellen, benötigen Sie über die Visual Studio Toolbox Zugriff auf diese Controls (siehe Hinzufügen der ActiveX Controls zur Toolbox).
Die grundlegenden Schritte, um die ActiveX Controls auf Dokumentebene in Ihre Applikation zu integrieren sind die folgenden:
1.Instantiieren Sie in Ihrer Applikation zuerst XMLSpyControl. Die Instantiierung dieses Control ist obligatorisch; Es ermöglicht die Unterstützung für die oben erwähnten Controls XMLSpyControl Document und XMLSpyControl Placeholder. Die Eigenschaft IntegrationLevel muss auf ICActiveXIntegrationOnDocumentLevel (oder "1") gesetzt werden. Um das Control für den Benutzer auszublenden, setzen Sie seine Eigenschaft Visible auf False. Anmerkung: Verwenden Sie für die Integration auf Dokumentebene nicht die Open-Methode des XMLSpyControl, da dies zu unerwünschten Ergebnissen führen könnte. Verwenden Sie stattdessen die entsprechenden open-Methoden von XMLSpyControl Document und XMLSpyControl PlaceHolder.
2.Erstellen Sie mindestens eine Instanz von XMLSpyControl Document in Ihrer Applikation. Dieses Control stellt Ihrer Applikation das Dokumentbearbeitungsfenster von XMLSpy zur Verfügung und kann bei Bedarf mehrmals instantiiert werden.erwenden Sie die Methode Open, um eine vorhandene Datei zu laden. Um Funktionen im Zusammenhang mit einem Dokument aufzurufen, verwenden Sie die Methoden Path und Save oder Methoden und Eigenschaften, die über die Eigenschaft Document zur Verfügung stehen. Anmerkung: Das Control unterstützt keinen schreibgeschützten Modus. Der Wert der Eigenschaft ReadOnly wird ignoriert.
3.Fügen Sie optional für jedes weitere Fenster (bei dem es sich nicht um das Dokumentfenster handelt) und das Ihrer Applikation zur Verfügung stehen soll, den XMLSpyControl Placeholder zur Ihrer Applikation hinzu. Mit Hilfe von Instanzen von XMLSpyControl PlaceHolder können Sie selektiv zusätzliche Fenster von XMLSpy in Ihre Applikation einbetten. Die Art des Fensters (z.B. Projektfenster) wird durch die Eigenschaft PlaceholderWindowID definiert. Um daher die Art des Fensters zu definieren, definieren Sie die Eigenschaft PlaceholderWindowID. Gültige Fenster-IDs finden Sie unter XMLSpyControlPlaceholderWindow. Verwenden Sie für jeden Windows Identifier nur einen XMLSpyControl PlaceHolder.
Für Placeholder Controls, die das XMLSpy-Projektfenster auswählen, stehen zusätzliche Methoden zur Verfügung. Mit Hilfe von OpenProject können Sie ein XMLSpy-Projekt laden. Mit Hilfe der Eigenschaft "Project" und der Methoden und Eigenschaften aus der XMLSpy Automation-Schnittstelle können Sie andere Operationen im Zusammenhang mit einem Projekt durchführen.
Ein Beispiel, wie Sie in C# oder VB.NET mit Visual Studio eine einfache, aus einem Formular bestehende Applikation, in der die XMLSpy ActiveX Controls auf Dokumentebene integriert sind, erstellen, sehen Sie in der Beschreibung unten. Beachten Sie, dass Ihre Applikation bei Bedarf auch komplexer sein kann. In der Anleitung unten sehen Sie jedoch, welche Voraussetzungen mindestens gegeben sein müssen, damit eine ActiveX-Integration auf Dokumentebene erfolgen kann.
1.Erstellen Sie ein neues Visual Studio Windows Forms-Projekt mit einem neuen leeren Formular.
2.Fügen Sie die ActiveX Controls zur Toolbox hinzu, falls dies noch nicht geschehen ist (siehe Hinzufügen der ActiveX Controls zur Toolbox).
3.Ziehen Sie das XMLSpyControl aus der Toolbox in Ihr neues Formular.
4.Setzen Sie die Eigenschaft IntegrationLevel des XMLSpyControl auf ICActiveXIntegrationOnDocumentLevel und die Eigenschaft Visible auf False. Sie können dies entweder über den Code oder über das Fenster Properties tun.
5.Ziehen Sie das XMLSpyControl Document aus der Toolbox in das Formular. Dieses Control stellt das Dokument-Hauptfenster von XMLSpy für Ihre Applikation zur Verfügung. Eventuell müssen Sie die Größe des Fensters an die Ihres Dokuments anpassen.
6.Fügen Sie optional ein oder mehrere XMLSpyControl Placeholder Controls zum Formular hinzu (eines für jeden zusätzlichen Fenstertyp, der für Ihre Applikation benötigt wird, z.B. das Projektfenster). Solche zusätzlichen Placeholder Controls werden normalerweise entweder unterhalb oder rechts oder links vom Dokument-Haupt-Control platziert z.B.:
7.Setzen Sie die Eigenschaft PlaceholderWindowID jedes XMLSpyControl Placeholder auf einen gültigen Fenster-Identifier. Eine Liste der gültigen Werte finden Sie unter XMLSpyControlPlaceholderWindow.
8.Fügen Sie, wie unten gezeigt, Befehle zu Ihrer Applikation hinzu (Sie benötigen zumindest Befehle zum Öffnen, Speichern und Schließen von Dokumenten).
Abfragen von XMLSpy-Befehlen
Bei einer Integration auf Dokumentebene stehen in Ihrer Applikation kein XMLSpy-Menü- und keine XMLSpy-Symbolleiste zur Verfügung. Sie können statt dessen die benötigten Befehle aufrufen, deren Status anzeigen und diese programmatisch ausführen, wie folgt:
•Um alle verfügbaren Befehle abzurufen, verwenden Sie die Eigenschaft CommandsList des XMLSpyControl.
•Um die Befehle, geordnet nach ihrer Menüstruktur abzurufen, verwenden Sie die Eigenschaft MainMenu.
•Um die Befehle, geordnet nach der Symbolleiste, in der sie vorkommen, abzurufen, verwenden Sie die Eigenschaft Toolbars.
•Um Befehle an XMLSpy zu senden, verwenden Sie die Methode Exec.
•Um abzufragen, ob ein Befehl gerade aktiviert oder deaktiviert ist, verwenden Sie die Methode QueryStatus.
Auf diese Art können Sie XMLSpy-Befehle flexibel in die Menüs und Symbolleisten Ihrer Applikation integrieren.
Über Ihre Installation von XMLSpy stehen Ihnen auch Symbole für in XMLSpy verwendete Befehle zur Verfügung. Im Ordner <Applicationsordner>\Examples\ActiveX\Images Ihrer XMLSpy-Installation finden Sie Symbole im GIF-Format. Die Dateinamen entsprechen den im Abschnitt Befehlsreferenz aufgelisteten Befehlsnamen.
Allgemeines
Um das Verhalten von XMLSpy zu automatisieren, verwenden Sie die für XMLSpyControl, XMLSpyControl Document und XMLSpyControl Placeholder beschriebenen Eigenschaften, Methoden und Ereignisse.
Für einen komplexeren Zugriff auf XMLSpy-Funktionalitäten sollten Sie die folgenden Eigenschaften verwenden:
•XMLSpyControlDocument.Document
•XMLSpyControlPlaceHolder.Project
Über diese Eigenschaften erhalten Sie Zugriff auf die XMLSpy Automation-Schnittstelle (<%APPAPI%)
Anmerkung: | Verwenden zum Öffnen eines Dokuments immer XMLSpyControlDocument.Open oder XMLSpyControlDocument.New für das entsprechenden Dokument-Control. Verwenden Sie zum Öffnen eines Projekts immer XMLSpyControlPlaceHolder.OpenProject in einem Placeholder Control, das ein XMLSpy-Projektfenster einbettet. |
Beispiele, wie Sie die erforderlichen Controls in unterschiedlichen Programmierumgebungen instantiieren und aufrufen finden Sie unter Beispiele zur ActiveX-Integration.