Altova XMLSpy 2024 Enterprise Edition

Das XMLSpy-Installationspaket enthält ein Java-Beispielprojekt, das Sie im Unterordner API\Java des Ordners Examples finden:

 

 

Windows 7, Windows 8, Windows 10, Windows 11

C:\Benutzer\<Benutzername>\Dokumente\
Altova\XMLSpy\2024\Examples

Dieser Ordner enthält Java-Beispiele für die XMLSpy API. Sie können das Beispielprojekt mit Hilfe der Batch-Datei BuildAndRun.bat, direkt über die Befehlszeile testen oder Sie können es in Eclipse kompilieren und ausführen. Anleitungen dafür finden Sie weiter unten.

 

Dateiliste

Der Ordner für die Java-Beispiele enthält alle zum Ausführen des Beispielprojekts erforderlichen Dateien. Diese Dateien sind unten aufgelistet. Wenn Sie eine 64-Bit-Version der Applikation verwenden, enthalten einige Dateinamen  _x64. Diese Dateinamen sind mit (_x64) gekennzeichnet.

 

AltovaAutomation(_x64).dll

Java-COM Bridge: DLL-Teil

AltovaAutomation.jar

Java-COM Bridge: Java-Bibliotheksteil

XMLSpyAPI.jar

Java-Klassen der XMLSpy API

RunXMLSpy.java

Java-Beispielquellcode

BuildAndRun.bat

Batch-Datei zum Kompilieren und Ausführen des Beispielcodes über die Befehlszeile. Es wird ein Ordner benötigt, in dem sich die Java Virtual Machine als Parameter befindet.

.classpath

Hilfedatei Eclipse-Projekt

.project        

Eclipse-Projektdatei

XMLSpyAPI_JavaDoc.zip

Javadoc Datei, die die Hilfedokumentation für die Java API enthält

 

 

 

 

Funktionen in diesem Beispiel

In diesem Beispielprojekt wird XMLSpy gestartet und einige Operationen wie das Öffnen und Schließen von Dokumenten werden ausgeführt. XMLSpy bleibt danach geöffnet. Sie müssen die Applikation manuell schließen.

 

XMLSpy starten: Startet XMLSpy, das als Automation Server registriert ist, bzw. aktiviert das Programm, wenn XMLSpy bereits ausgeführt wird.

OrgChart.pxf öffnen: Navigiert zu einem der mit XMLSpy installierten Beispieldokumente und öffnet es.

Iterieren durch und Ändern des Ansichtsmodus: Wechselt von der Ansicht aller offenen Dokumente in die Textansicht. Im Code wird auch gezeigt, wie man durch offene Dokumente iteriert.

Iteration, Validierung und Ausgabeparameter: Validiert das aktive Dokument und zeigt das Ergebnis in einem Meldungsfeld an. Im Code wird gezeigt, wie Ausgabeparameter verwendet werden.

Event-Behandlung: Zeigt, wie XMLSpy Events behandelt werden.

XMLSpy beenden: Beendet XMLSpy.

 

Sie können das Beispiel beliebig modifizieren und es ausführen.

 

Ausführen des Beispiels über die Befehlszeile

Um das Beispiel von der Befehlszeile aus auszuführen, öffnen Sie ein Eingabeaufforderungsfester, gehen Sie zum Ordner Java des Ordners API Examples (Pfad siehe oben) und geben Sie folgende Zeile ein:

 

 buildAndRun.bat "<Path-to-the-Java-bin-folder>"

 

Der Java Binary-Ordner muss von einer JDK 14 oder höheren Version auf Ihrem Rechner sein. Drücken Sie die Eingabetaste. Der Java-Quellcode in RunXMLSpy.java wird kompiliert und anschließend ausgeführt.

 

Laden des Beispiels in Eclipse

Öffnen Sie Eclipse und wählen Sie den Befehl Import | Existing Projects into Workspace um die Eclipse-Projektdatei (.project) im Ordner Java des Ordners API Examples (Pfad siehe oben) zu Eclipse hinzuzufügen. Daraufhin wird das Projekt RunXMLSpy in Ihrem Package Explorer oder Navigator angezeigt. Wählen Sie das Projekt aus und klicken Sie anschließend auf Run as | Java Application um das Beispiel auszuführen.

 

Anmerkung:Sie können einen Klassennamen oder eine Methode der Java API auswählen und F1 drücken, um Hilfe zu dieser Klasse oder Methode zu erhalten.

 

Java-Quellcode

Im Folgenden finden Sie den mit Kommentaren versehenen Java-Quellcode aus der Beispieldatei RunXMLSpy.java.

 

 

001 // Access general JAVA-COM bridge classes

002 import com.altova.automation.libs.*;

003

004 // Access XMLSpy Java-COM bridge

005 import com.altova.automation.XMLSpy.*;

006 import com.altova.automation.XMLSpy.Enums.SPYViewModes;

007

008 /**

009  * An example that starts XMLSpy COM server and performs view operations on it

010  * Feel free to extend

011  */

012 public class RunXMLSpy

013 {

014   public static void main(String[] args)

015   {

016     // An instance of the application.

017     Application xmlSpy = null;

018

019     // Instead of COM error handling, use Java exception mechanism

020     try

021       {

022       // Start XMLSpy as COM server

023       xmlSpy = new Application();

024

025       // COM servers start up invisible, so make it visible

026       xmlSpy.setVisible(true);

027

028       // Locate samples installed with the product

029       String strExamplesFolder =

030       System.getenv("USERPROFILE") + "\\My Documents\\Altova\\XMLSpy2012\\Examples\\";

031

032       // Open two example files

033       xmlSpy.getDocuments().openFile(strExamplesFolder + "OrgChart.pxf", false);

034       xmlSpy.getDocuments().openFile(strExamplesFolder + "ExpReport.xml", false);

035

036       // Iterate through open documents and set view mode to 'Text'.

037       for (Document doc:xmlSpy.getDocuments())

038       if ( doc.getCurrentViewMode() != SPYViewModes.spyViewText)

039           doc.switchViewMode(SPYViewModes.spyViewText);

040

041       // An alternative iteration mode is index-based

042       // COM indices are typically zero-based

043       Documents documents = xmlSpy.getDocuments();

044       for (int i = 1; i <= documents.getCount();

045           i++)

046           {

047             Document doc = documents.getItem(i);

048

049       // Validation is one of the few methods to have output parameters.

050       // The class JVariant is the correct type for parameters in these cases.

051       // To get values back mark them with the by-reference flag.

052       JVariant validationErrorText = new

053

054       JVariant.JStringVariant("");

055

056       validationErrorText.setByRefFlag();

057       JVariant validationErrorCount = new

058

059       JVariant.JIntVariant(0);

060

061       validationErrorCount.setByRefFlag();

062       JVariant validationErrorXMLData = new

063

064       JVariant.JIDispatchVariant(0);

065

066       validationErrorXMLData.setByRefFlag();

067       if (!doc.isValid(validationErrorText, validationErrorCount, validationErrorXMLData))

068           System.out.println("Document" + doc.getName() + " is not wellformed - " + validationErrorText.getStringValue());

069         else

070           System.out.println("Document" + doc.getName() + " is wellformed.");

071       }

072

073       // The following lines attach to the document events using a default implementation

074       // for the events and override one of its methods.

075       // If you want to override all document events it is better to derive your listener class

076       // from DocumentEvents and implement all methods of this interface.

077       Document doc = xmlSpy.getActiveDocument();

078       doc.addListener(new

079

080 DocumentEventsDefaultHandler()

081       {

082         @Override

083         public boolean

084

085 onBeforeCloseDocument(Document i_ipDoc) throws AutomationException

086         {

087           System.out.println("Document

088

089 " + i_ipDoc.getName() + " requested closing.");

090

091           // Allow closing of document

092           return true;

093         }

094       });

095       doc.close(true);

096       doc = null;

097

098       System.out.println("Watch XMLSpy!");

099     }

100     catch (AutomationException e)

101     {

102       // e.printStackTrace();

103     }

104     finally

105     {

106       // Make sure that XMLSpy can shut down properly.

107       if (xmlSpy != null)

108           xmlSpy.dispose();

109

110       // Since the COM server was made visible and still is visible,

111       // it will keep running, and needs to be closed manually.

112       System.out.println("Now close XMLSpy!");

113     }

114   }

115 }

 

© 2017-2023 Altova GmbH