Altova XMLSpy 2024 Enterprise Edition

Code Generator

Zur Startseite Zurück Nach oben Weiter

XMLSpy enthält einen integrierten Code Generator, der Java-, C++- oder C#-Klassendateien anhand von XML-Schemas generieren kann. Der generierte Code besteht aus stark typisierten Schema Wrapper-Bibliotheken, mit Hilfe derer Sie Software-Applikationen zur Verarbeitung von XML-Daten erstellen können. Mit Hilfe der Schema Wrapper-Bibliotheken können Sie über Programme mit XML-Daten arbeiten und dabei anhand des Schemas generierte Typen verwenden. Normalerweise würde der Code Generator folgendermaßen verwendet werden: Zuerst wird im grafischen Schema-Editor (Schema-Ansicht) von XMLSpy das XML-Schema modelliert. Anschließend wird Code in der Codesprache Ihrer Wahl (Java, C++ oder C#) generiert. Wenn Sie das Content Model des Schemas ändern, muss der Code Generator erneut ausgeführt werden.

 

Der generierte Code unterstützt die folgenden Operationen:

 

Lesen von XML-Dateien in eine speicherresidente Document Object Model (DOM)-Darstellung

Schreiben von XML-Dateien aus einer DOM-Darstellung zurück in eine Systemdatei

Konvertieren von Strings in XML-DOM-Strukturen und umgekehrt

 

Die nachstehende Tabelle enthält einen Überblick über die unterstützten Umgebungen

 

Zielsprache

C++

C#

Java

Entwicklungsumgebungen

Microsoft Visual Studio 2013, 2015, 2017, 2019, 2022

Microsoft Visual Studio 2013, 2015, 2017, 2019, 2022

 

Ziel-Frameworks:

 

.NET Framework

.NET Core 3.1

.NET 5.0

.NET 6.0

.NET 8.0

Java SE JDK 8, 11, 17, 21 (einschließlich OpenJDK)

Eclipse 4.4 oder höher

Apache Ant (build.xml-Datei)

XML DOM Implementierungen

MSXML 6.0

Apache Xerces 3

System.Xml

JAXP

 

Sprachspezifische Informationen

In den folgenden Unterabschnitten finden Sie sprachspezifische Informationen.

 

C++

Sie können konfigurieren, ob der generierte C++-Ausgabecode MSXML 6.0 oder Apache Xerces 3 verwenden soll. Bei der C++-Codegenerierung werden in XMLSpy komplette Projekt- (.vcproj) und Solution- (.sln)-Dateien für alle unterstützten Versionen von Visual Studio (siehe Tabelle oben) generiert. Der generierte Code unterstützt optional MFC.

 

Beachten Sie dabei die folgenden Voraussetzungen:

 

Für die Kompilierung des generierten C++-Codes muss Windows SDK auf Ihrem Rechner installiert sein.

Um Xerces 3 für C++ verwenden zu können, müssen Sie es nach der Anleitung auf der Apache Xerces-Seite installieren und bauen. Dabei muss die Umgebungsvariable XERCES3, die auf das Verzeichnis verweist, in dem Xerces installiert wurde, hinzugefügt werden (z.B. C:\xerces-c-3.2.2). Außerdem muss die Umgebungsvariable PATH den Pfad inkludieren, unter dem sich die Xerces-Binärdateien befinden (z.B. %XERCES3%\bin).

Beim Erstellen von C++-Code für Visual Studio und bei Verwendung einer für Visual C++ vorkompilierten Xerces-Bibliothek muss die Compiler-Einstellung in allen Projekten der Projektmappe geändert werden. Gehen Sie folgendermaßen vor:

 

a)Wählen Sie alle Projekte im Solution Explorer aus.

b)Klicken Sie im Menü Projekt auf Eigenschaften.

c)Klicken Sie auf Konfigurationseigenschaften | C/C++ | Sprache.

d)Wählen Sie in der Liste der Konfigurationen Alle Konfigurationen.

e)Ändern Sie Treat wchar_t as Built-in Type in No (/Zc:wchar_t-).

 

C#

Der generierte C#-Code kann von jeder .NET-fähigen Programmiersprache verwendet werden, z.B. VB.NET, Managed C++ oder J#. Projektdateien können für alle unterstützten Versionen von Visual Studio generiert werden (siehe Tabelle oben).

 

Java

Der generierte Java-Code wird anhand der "Java API for XML Processing" (JAXP) geschrieben und enthält eine Ant build-Datei sowie Projektdateien für die unterstützten Versionen von Java und Eclipse (siehe Tabelle oben).

 

Behebung von Ausnahmeereignissen im Zusammenhang mit zu wenig Arbeitsspeicher bei der Java-Kompilierung

Es kommt vor, dass durch komplexe Schemas eine so große Menge von Code generiert wird, dass es bei der Kompilierung in Ant zu einem java.lang.OutofMemory-Ausnahmeereignis kommt. Um dieses Problem zu beheben:

 

Fügen Sie die Umgebungsvariable ANT_OPTS hinzu. Damit werden bestimmte Ant-Optionen festgelegt, wie z.B. wie viel Arbeitsspeicher dem Compiler zur Verfügung steht. Sie können die Werte wie unten gezeigt definieren.

cg_ANT_OPTS

Um sicherzustellen, dass der Compiler und der generierte Code im selben Prozess wie Ant ausgeführt wird, ändern Sie das Attribut fork in der Datei build.xml in false um.

 

Je nach verfügbarem Arbeitsspeicher auf Ihrem Computer und je nach Projektgröße müssen Sie diese Werte eventuell anpassen. Nähere Informationen finden Sie in der Java VM-Dokumentation.

 

Bei der Ausführung des ant jar-Befehls wird eventuell eine Fehlermeldung angezeigt, dass "[...] das Archiv mehr als 65535 Einheiten enthält". Damit diese Fehlermeldung nicht auftritt, wird empfohlen, Versionen ab Ant 1.9 zu verwenden und in der Datei build.xml zum Element <jar> zip64mode="as-needed" hinzuzufügen.

 

 

Generierte Ausgabe

Der Zielordner für den generierten Code enthält alle zum programmatischen Bearbeiten von XML-Dateien erforderlichen Bibliotheken und Dateien. Es sind dies die folgenden:

 

Altova Standardbibliotheken

Schema Wrapper-Bibliotheken

Eine leere Testapplikation mit Beispielquellcode. Das Applikationsgerüst der Testapplikation ist eine kompilierbare Applikation, die eine leere Example()-Methode aufruft. Sie können in dieser Methode Ihren Testcode hinzufügen, um Ihre neu generierte Bibliothek schnell und einfach testen zu können.

 

Code Generator-Vorlagen

Der generierte Code wird über eine in einer Vorlagensprache namens SPL (Spy Programming Language) geschriebene Vorlage gebaut. Sie können die für die Codegenerierung verwendete Vorlage anpassen. So können Sie etwa mit Hilfe von SPL die vordefinierten Datentypen von XML-Schemas auf die primitiven Datentypen einer bestimmten Programmiersprache mappen und Ihre eigenen Vorlagen erzeugen, um die Generierung praktisch jedes beliebigen anderen Formats wie EJB's, WSDL-Dateien, SQL Scripts, ASP und WML-Code zu automatisieren.

 

Beispiele

Beispiele zur Codegenerierung finden Sie unter Beispiel: Book Library und Beispiel: Bestellung.

 

© 2018-2024 Altova GmbH