Befehl "xjc" für JAXB-Anwendungen
Mit dem Schemacompilertool xjc von Java™ Architecture for XML Binding (JAXB) können Sie eine XML-Schemadatei aus Java-Klassen generieren.
JAXB ist eine Technologie für XML-Java-Bindungen, die die Umsetzung von Schema- in Java-Objekte (und umgekehrt) und von XML-Instanzdokumenten in Java-Objektinstanzen (und umgekehrt) ermöglicht. Die Technologie JAXB setzt sich aus einer Laufzeit-API und begleitenden Tools zusammen, die den Zugriff auf XML-Dokumente vereinfacht. Sie können JAXB-APIs und -Tools verwenden, um die Zuordnungen zwischen Java-Klassen und dem XML-Schema zu definieren. Ein XML-Schema definiert die Datenelemente und die Struktur eines XML-Dokuments. Die JAXB-Technologie stellt Tools bereit, mit denen Sie Ihre XML-Dokumente in Java-Objekte und umgekehrt konvertieren können. Der Zugriff auf die in einem XML-Dokument gespeicherten Daten ist ohne Verständnis der XML-Datenstruktur möglich.
Sie können aus einer XML-Schemadatei vollständig annotierte Java-Klassen generieren, indem Sie den JAXB-Schemacompiler, das Befehlszeilentool xjc, verwenden. Sie können das Schemacompilertool xjc verwenden, um auf der Basis einer XML-Schemadefinition (XSD) einen Satz von JavaBeans zu erstellen, die den Elementen und den Typen zugeordnet werden können, die im XSD-Schema definiert sind. Sobald die Zuordnung zwischen dem XML-Schema und den Java-Klassen vorhanden ist, können XML-Instanzdokumente mithilfe der Laufzeit-API für JAXB-Bindungen in Java-Objekte konvertiert werden und umgekehrt. Die generierten annotierten Java-Klassen enthalten alle erforderlichen Informationen, die die JAXB-Laufzeitumgebung benötigt, um die XML für das Marshalling und Unmarshalling syntaktisch zu analysieren. Sie können die JAXB-Klassen in JAX-WS-Anwendungen (Java API for XML Web Services) oder in anderen Java-Anwendungen für die Verarbeitung von XML-Daten verwenden.


Sie können das JAXB-Tool xjc nicht nur über die Befehlszeile aufrufen, sondern auch in Ant-Build-Umgebungen. Verwenden Sie die Ant-Task com.sun.tools.xjc.XJCTask in der Ant-Build-Umgebung, um das Schemacompilertool xjc aufzurufen. Damit diese Ant-Task richtig ausgeführt wird, müssen Sie Ant mit dem Script "ws_ant" aufrufen.

Syntax
Die Befehlszeilensyntax ist im Folgenden beschrieben:
![[Windows]](../images/windows.gif)
Stammverzeichnis_des_Anwendungsservers\bin\xjc.bat [Optionen] <Schemadatei/URL/Verzeichnis_oder_JAR> ...[-b<Bindungsinformationen>] ...
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
Stammverzeichnis_des_Anwendungsservers/bin/xjc.sh [Optionen] <Schemadatei/URL/Verzeichnis_oder_JAR> ...[-b<Bindungsinformationen>] ...
![[IBM i]](../images/iseries.gif)
Stammverzeichnis_des_Anwendungsservers/bin/xjc [Optionen] <Schemadatei/URL/Verzeichnis_oder_JAR> ...[-b<Bindungsinformationen>] ...
Wenn ein Verzeichnis angegeben ist, werden alle Schemadateien im Verzeichnis kompiliert.
Parameter
Die Name der JAR-Datei für Schemadatei/URL bzw. die Position des Verzeichnisse ist der einzige erforderliche Parameter. Die folgenden Parameter sind für den Befehl xjc optional:
- -b <Dateiname oder Verzeichnis>
- Gibt die externen JAX-WS- oder JAXB-Bindungsdateien an. Mit der Option -b können Sie mehrere JAX-WS- und JAXB-Bindungsdateien angeben. Jede Datei muss jedoch mit einer eigenen Option -b angegeben werden. Wenn ein Verzeichnis angegeben ist, wird nach **/*.xjb gesucht.
- -catalog <Dateiname>
- Gibt die Katalogdatei für die Auflösung externer Entitätsreferenzen an. Unterstützt werden die Formate TR9401, XCatalog und OASIS XML Catalog.
- -classpath <Pfad>
- Gibt die Position der Klassendateien an.
- -d <Verzeichnis>
- Gibt an, wohin die generierten Ausgabedateien geschrieben werden sollen.
- -dtd
- Gibt an, dass die Eingabe als XML-Dokumenttypdefinition behandelt werden soll. Diese Option ist für Testzwecke vorgesehen und wird daher nicht unterstützt.
- -extension
- Gibt an, ob angepasste Erweiterungen für Funktionen zugelassen werden sollen, die in der JAXB-Spezifikation nicht angegeben sind. Die Verwendung von Erweiterungen kann dazu führen, dass die Anwendungen nicht portierbar sind oder nicht mit anderen Implementierungen interagieren können.
- -help
- Zeigt das Hilfemenü an.
- -httpproxy <[user[:password]@]<proxyhost>:<proxyport>>
- Gibt einen HTTP- oder HTTPS-Proxy an.
- -httpproxyfile <Dateiname>
- Dieser Parameter gleicht dem Parameter -httpproxy, verwendet jedoch das Argument in einer Datei, um das Kennwort zu schützen.
- -no-header
- Gibt an, dass die Generierung eines Dateiheaders mit Zeitmarke unterdrückt werden soll.
- -npa
- Gibt an, dass die Generierung einer Annotation auf Ebene des Pakets **/package-info.java unterdrückt werden soll.
- -nv
- Gibt an, dass keine strikte Validierung der Eingabeschemata durchgeführt werden soll.
- -p <Paketname>
- Gibt ein Zielpaket an.
- -quiet
- Gibt an, dass die Ausgabe des Tools xjc unterdrückt werden soll.
- -relaxng
- Gibt an, dass die Eingabe als RELAX NG (REgular LAnguage for XML Next Generation) behandelt werden soll. Diese Option ist für Testzwecke vorgesehen und wird daher nicht unterstützt.
- -readOnly
- Gibt an, dass die generierten Dateien sich im Nur-Lese-Modus befinden.
- -relaxng-compact
- Gibt an, dass die Eingabe als kompakte RELAX-NG-Syntax (REgular LAnguage for XML Next Generation) behandelt werden soll. Diese Option ist für Testzwecke vorgesehen und wird daher nicht unterstützt.
- -target <Version>
- Gibt an, dass Ausgabe erstellt werden soll, die die angegebene JAX-WS-Spezifikation einhält. Geben Sie 2.0 oder 2.1 an, damit das Tool kompatiblen Code gemäß Spezifikation JAXB 2.0 bzw. JAX-WS 2.1 generiert. Geben Sie 2.1 für das Tool an, um kompatiblen Code gemäß der Spezifikation JAXB 2.1 zu generieren. Die Standardzielversion ist 2.2 und generiert kompatiblen Code gemäß der Spezifikation JAXB 2.2.
- Die Option target ist für das Liberty-Profil erforderlich.
- -verbose
- Gibt an, dass Nachrichten über die Aktionen des Compilers ausgegeben werden sollen.
- -version
- Gibt die Versionsinformationen aus. Wenn Sie diese Option angeben, wird nur die Versionsinformation ausgegeben, und es findet keine normale Befehlsverarbeitung statt.
- -wsdl
- Gibt an, dass die Eingabe als WSDL-Datei (Web Services Description Language) behandelt werden soll und Schemata in der WSDL-Datei kompiliert werden sollen. Diese Option ist für Testzwecke vorgesehen und wird daher nicht unterstützt.
- -xmlschema
- Gibt an, dass die Eingabe als XML-Schema gemäß World Wide Web Consortium (W3C) behandelt werden soll. Dieser Wert ist der Standardwert.