JAXB 2.0. Samuel Michaelis, Wolfgang Schmiesing. Ein Programmiertutorial für die Java Architecture for XML Binding ISBN

Ähnliche Dokumente
Java Architecture for XML Binding XI Technologieeinführung... XII Programmiertutorials...XII Referenz... XII Feedback...XIII

Peter Huster

Java API for XML Binding

XSD - XML Schema Definition

Java und XML Grundlagen, Einsatz, Referenz

<< Java Architecture for XML Binding >>

Angewandte Softwareentwicklung Serialisierung

XML Schema und Objektorientierung

CLICK TO EDIT MASTER TITLE STYLE

JAXB 2.0. Ein Programmiertutorial für die Java Architecture for XML Binding. von Samuel Michaelis, Wolfgang Schmiesing. 1. Auflage

<Trainingsinhalt> XML umsetzen und nutzen

Inhaltsverzeichnis. Apps für Android entwickeln

JAXB. Java Architecture for XML Binding.

XML, FI und JSON strukturiert in Java verwenden. Wolfgang Nast

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

XML in Oracle 12c. Wolfgang Nast

Inhaltsverzeichnis. Bernd Weber, Patrick Baumgartner, Oliver Braun. OSGi für Praktiker

XML Vorlesung FHA SS

1.1 Für wen dieses Buch gedacht ist Einleitung Danksagung... 2

XML-Technologie: Grundlegende Syntax

XML Schema Marco Skulschus Marcus Wiederstein Sarah Winterstone

XML Binding APIs XML Beans & JAXB

Programmieren II SAX. Beispiel-Schema kontakt.xsd SAX DOM. Dr. Klaus Höppner JAXB. Hochschule Darmstadt SS 2008

Inhaltsverzeichnis Einleitung Imperative Sprachkonzepte Objektorientierte Sprachkonzepte

Namensräume. Allgemeines Deklaration Komponenten aus beliebigen Namensräumen

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs funktionale Programmierung mit Scala ISBN:

Programmieren II. Annotationen (1/3) Vorlesung 6. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester Annotationen XML JAXB

Programmieren II. Annotationen (1/3) Vorlesung 6. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester Annotationen XML JAXB

Java-Grundkurs für Wirtschaftsinformatiker

Entwicklung für DITA mit Arbortext Editor 6.1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

XML Schema. Marco Skulschus Marcus Wiederstein. Webseite zum Buch: Comelio Medien

Inhaltsverzeichnis Seite 1. Inhaltsverzeichnis. Ein I.T.P.-Fachbuch

XML und Datenmodellierung

Einführung in XML Extensible Markup Language

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

Speichersparende XML Verarbeitung mit StAX und JAXB. Wolfgang Nast Nürnberg,

Objektorientierte Anwendungsentwicklung

Oracle PL/SQL und XML. Marco Skulschus Marcus Wiederstein

Ferhat Ayaz. XML mit C++

B Babuschka. Siehe Matrjoschka Babuschka-Design 294, 296, 301, 357 base 102, 109, 238 base64binary 74

Inhalt. Teil I: Der Sprachkern von JavaScript

Einfach generieren. Susanne Klar, Michael Klar. Generative Programmierung verständlich und praxisnah ISBN Inhaltsverzeichnis

5. Programmierschnittstellen für XML

Inhaltsverzeichnis. Fritz Jobst. Programmieren in Java ISBN: Weitere Informationen oder Bestellungen unter

5. Programmierschnittstellen für XML

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

XML und Datenmodellierung

Semistrukturierte Daten

2 Einführung in das Konfigurationsmanagement 11

Beschreibung von Dokumenten mit DTDs

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

Einführung: Installation und Anpassung der Site zum Buch 15

<Trainingsinhalt> XML und Datenbanken

1 Was ist XML? Hallo XML! Kommentare in XML 52

Objektorientiertes Programmieren

Inhaltsverzeichnis. 4.9 Aufgaben... 63

Seminar: mobile GIS Austausch von Geodaten

Persistenz. Ralf Gitzel

Flexible Rails. Flex 3 auf Rails 2. von Dorothea Heymann-Reder, Peter Armstrong. 1. Auflage. Hanser München 2008

Einführung in XML. Seminarunterlage. Version 3.05 vom

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

Document Type Definitions (DTDs)

Inhaltsverzeichnis. Teil 1 Grundlagen 5. Teil 2 Formatierung 31 INHALTSVERZEICHNIS

Praktische Anwendungsentwicklung mit Oracle Forms

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

Inhalt. Vorwort 13. Einleitung 15. Für wen ist dieses Buch gedacht? 15 Zum Aufbau des Buchs Installation und erste Schritte 17

Inhalt. 1 Einleitung Warum dieses Buch? Der rote Faden Danksagung URL zum Buch 4. TEIL I Einführung 5

DTDs und XML- Schemata

Polymorphie. 15. Java Objektorientierung II

XSLT, XPath und XQuery Marco Skulschus Marcus Wiederstein Sarah Winterstone

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

Polymorphie. 15. Java Objektorientierung II

Java Das Tiger-Release


Konfigurationsmanagement mit Subversion, Maven und Redmine

Inhaltsverzeichnis. Daniel Koch. XML für Webentwickler. Ein praktischer Einstieg ISBN:

Current Workflow. formatted. Rules. Extensions. Rules. DOM processing with Meta API-calls. Code Generation (Smarty) XMLfile. Source code.

XML-Technologien. Tutorium im Sommersemester Mai 2014

Inhaltsverzeichnis. Michael Johann. Ruby on Rails für JEE-Experten. Umfassender Einstieg in Rails und JEE-Integration mit JRuby

Inhaltsverzeichnis Einleitung xi Kapitel 1: Die Vorbereitung aufs Abenteuer

Inhaltsverzeichnis 1 Einführung Die Software JGIS Grundlagen raumbezogener Daten

Java-Grundkurs für rtschaftsinformatiker

1 Grundbegriffe Datenbanksysteme Entwicklung von Datenbanksystemen Inhaltsverzeichnis. 1.1 Information und Daten...

Objektorientierte Programmierung in Java

Apps für ios entwickeln

Java 6 Core Techniken

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2

XML Schema 2016 S h_da S Seite 1

Objektrelationale Datenbanken

XML in der Oracle Datenbank

Oliver Zeigermann / Nils Hartmann, React, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm

Visual C#.NET. Bearbeitet von Patrick A. Lorenz

Netzwerkprogrammierung unter Linux und UNIX

Software Engineering

Programmieren mit Eclipse 3

2 Wegweiser Projektbeschreibung...69

Transkript:

JAXB 2.0 Samuel Michaelis, Wolfgang Schmiesing Ein Programmiertutorial für die Java Architecture for XML Binding ISBN 3-446-40753-7 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40753-7 sowie im Buchhandel

Vorwort...XI Java Architecture for XML Binding 2.0...XI Technologieeinführung... XII Programmiertutorials...XII Referenz... XII Feedback...XIII 1 JAXB im Überblick... 1 1.1 Ziele...1 1.2 Entstehung...4 1.3 Architektur...5 1.3.1 Annotationen...7 1.3.2 Der Schema-Compiler...8 1.3.3 Der Schema-Generator...9 1.3.4 Das Binding Framework...10 1.4 1.0 + 1.0 = 2.0?...14 2 Basistechnologien... 17 2.1 XML-Schema...17 2.1.1 Namespaces verwenden...21 2.1.2 Elementdeklarationen in XML-Schema...24 2.1.3 Vererbung...35 2.1.4 Kardinalitäten...37 2.1.5 Offene Schemas definieren...38 2.1.6 Namespaces importieren und referenzieren...40 2.1.7 Eindeutigkeit durch ID und IDREF...43 2.1.8 Dokumentation mit Annotationen...45 2.1.9 Das fertige Beispielschema...46 V

2.2 XPath...48 2.2.1 Die XPath-Sicht auf XML...49 2.2.2 XPath-Ausdrücke verwenden...50 2.2.3 Beispiele...51 2.2.4 XPath in Java...53 2.3 ANT...55 2.3.1 ANT-Übersicht...55 2.3.2 Installation und Aufruf...56 2.3.3 Häufig verwendete Elemente...57 2.3.4 Benutzerdefinierte Tasks...58 2.3.5 xjc und schemagen Tasks...58 2.3.6 Ein Beispiel...59 3 Hallo JAXB!... 61 3.1 Systemvoraussetzungen...61 3.2 Die Entwicklungsumgebung einrichten...62 3.2.1 JAXB-Referenzimplementierung installieren...62 3.2.2 Die JAXB-Bibliotheken einbinden...62 3.2.3 Die Struktur des Beispielprojekts...63 3.3 Am Anfang steht immer: Hallo Welt!...64 3.3.1 Der Weg von Java zu XML...64 3.3.2 Der Weg von XML zu Java...67 3.4 Zusammenfassung...69 4 JAXB-API... 71 4.1 Die ersten Schritte...72 4.1.1 Am Anfang war der JAXBContext...72 4.1.2 Die Klasse JAXBIntrospector verwenden...75 4.1.3 Objekte erzeugen mit der ObjectFactory...77 4.1.4 Zusammenfassung...78 4.2 Marshalling...79 4.2.1 Das Marshaller-Objekt anlegen...79 4.2.2 Den Marshalling-Prozess starten...80 4.2.3 Den Marshalling-Prozess konfigurieren...81 4.2.4 Das fertige Beispiel...83 4.2.5 Marshalling beliebiger Objekte...85 4.2.6 Zusammenfassung...86 4.3 Unmarshalling...87 4.3.1 Das Unmarshaller-Objekt anlegen...87 4.3.2 Den Unmarshalling-Prozess starten...88 4.3.3 Den Unmarshalling-Prozess konfigurieren...89 4.3.4 Das fertige Beispiel...89 4.3.5 Das xsi:type-attribut beim Unmarshalling verwenden...90 4.3.6 Elemente ohne @XMLRootElement verarbeiten...91 4.3.7 Unmarshalling von Teilen eines XML-Dokuments...93 4.3.8 Flexibles Unmarshalling nutzen...95 VI

4.3.9 Zusammenfassung... 97 4.4 Validierung... 97 4.4.1 Beim Unmarshalling validieren... 98 4.4.2 Beim Marshalling validieren... 99 4.4.3 Benutzerdefinierte Validierung... 101 4.4.4 Zusammenfassung... 107 4.5 Callback-Mechanismen einsetzen... 107 4.5.1 Die Listener-Klasse verwenden... 108 4.5.2 Callback-Methoden auf Klassenebene definieren... 110 4.5.3 Zusammenfassung... 112 4.6 Die Binder-Komponente verwenden... 112 4.6.1 Eine DOM-Sicht erstellen... 113 4.6.2 Die Klasse javax.xml.bind.binder... 113 4.6.3 Transformation mit unmarshal und marshal... 114 4.6.4 Navigation mit getxmlnode und getjaxbnode... 115 4.6.5 Synchronisation mit updatexml und updatejaxb... 116 4.6.6 Konkrete Anwendungsfälle... 117 4.6.7 Zusammenfassung... 123 5 XML-Schema zu Java... 125 5.1 Bindungskonfigurationen... 125 5.1.1 Eine Bindungskonfiguration definieren... 126 5.1.2 Bindungskonfigurationen per xjc-task einbinden... 130 5.1.3 Den XJC-Schema-Compiler programmatisch starten... 130 5.1.4 Externe Bindungskonfigurationen auf der Kommandozeile... 134 5.1.5 Ein Wort zu Versionen... 134 5.1.6 Der Sichtbarkeitsbereich... 134 5.1.7 Zusammenfassung... 135 5.2 Die erste Bindungskonfiguration... 136 5.2.1 Zusammenfassung... 138 5.3 Fünf Bindungsdeklarationen für den Alltag... 138 5.3.1 Aufzählungen anpassen mit jaxb:collectiontype... 138 5.3.2 Paketnamen anpassen mit jaxb:package... 140 5.3.3 Generierte Klassen anpassen mit jaxb:class... 142 5.3.4 Änderungen auf Komponentenebene mit jaxb:property... 145 5.3.5 Dokumentieren mit jaxb:javadoc... 152 5.3.6 Zusammenfassung... 155 5.4 XML-Bezeichner anpassen... 155 5.4.1 Einzelne Namenskonflikte auflösen... 156 5.4.2 Präfixe und Suffixe mit jaxb:namexmltransform... 157 5.4.3 Unterstriche verarbeiten mit jaxb:underscorebinding... 159 5.4.4 Bezeichner in Enumerationen... 160 5.4.5 Verwenden von Java-Schlüsselwörtern als Bezeichner... 166 5.4.6 Java-Namenskonventionen... 168 5.4.7 Zusammenfassung... 168 5.5 Datentypen anpassen... 168 VII

5.5.1 Datentypen explizit angeben mit jaxb:basetype...169 5.5.2 Datentypen konvertieren mit jaxb:javatype...173 5.5.3 Zusammenfassung...181 5.6 Deklarationen überlagern...182 5.7 Noch mehr Bindungsdeklarationen...185 5.7.1 Ableiten von einer Oberklasse mit xjc:superclass...186 5.7.2 Ein Wurzelinterface angeben mit xjc:superinterface...187 5.7.3 Erweiterung von jaxb:javatype mit xjc:javatype...189 5.7.4 Das Experiment: xjc:simple...191 5.7.5 Zusammenfassung...192 6 Java zu XML-Schema... 193 6.1 JAXBContext und JAXBElement ganz ohne Schema...194 6.2 Einfache Elementkonfigurationen...201 6.2.1 Wurzelelemente mit @XmlRootElement definieren...201 6.2.2 Der Standardmodus...205 6.2.3 Abbildung als XML-Element explizit konfigurieren...210 6.2.4 Java-Eigenschaften an XML-Attribute binden...216 6.2.5 Java-Eigenschaften an XML-Elementinhalte binden...221 6.2.6 Bindung an XML unterdrücken...223 6.2.7 Reihenfolge der XML-Elemente beeinflussen...225 6.2.8 Namen und Verschachtelung des XML-Typs einstellen...230 6.2.9 XML-Elemente referenzieren...234 6.2.10 Namespace konfigurieren...237 6.3 Listen und Elementmischungen...243 6.3.1 Der Standardmodus für Java-Arrays und Java-Listen...244 6.3.2 Listen und Arrays an simpletype/list-deklarationen binden...249 6.3.3 Mehrere Elemente im gleichen Feld speichern...251 6.3.4 Elementlisten verpacken...263 6.3.5 Mischungen von Elementen und Text...266 6.4 Enumerationen...270 6.4.1 Enumerationen an XML binden: Standardverhalten...271 6.4.2 Bindung von Enumerationen konfigurieren...272 6.5 Eigene Typbindungen definieren...275 6.5.1 Basisdatentyp als Speicherdatentyp...277 6.5.2 Komplexe Datentypen als Speicherdatentypen...280 6.6 Unbekannte Attribut- und Elementwerte binden...284 6.6.1 Wildcard-Attribute mit @XmlAnyAttribute definieren...284 6.6.2 Wildcard-Elemente per @XmlAnyElement deklarieren...286 6.6.3 Lax fischen...288 6.7 Objektgraphen in XML abbilden...290 6.8 Elemente über Factory-Klassen definieren...295 7 JAXB-Referenz... 299 7.1 XJC Kommandozeilenbefehl...299 7.2 XJC ANT-Task...301 VIII

7.3 schemagen-kommandozeilenbefehl... 303 7.4 schemagen-ant-task... 304 7.5 JAXB-Annotationen...306 7.5.1 XmlAccessorOrder... 306 7.5.2 XmlAccessorType... 307 7.5.3 XmlAnyAttribute... 311 7.5.4 XmlAnyElement... 312 7.5.5 XmlAttachmentRef... 314 7.5.6 XmlAttribute... 314 7.5.7 XmlElement... 316 7.5.8 XmlElementDecl... 318 7.5.9 XmlElementRef... 320 7.5.10 XmlElementRefs... 321 7.5.11 XmlElements... 323 7.5.12 XmlElementWrapper... 324 7.5.13 XmlEnum... 325 7.5.14 XmlEnumValue... 326 7.5.15 XmlID... 327 7.5.16 XmlIDREF... 328 7.5.17 XmlInlineBinaryData... 330 7.5.18 XmlList... 330 7.5.19 XmlJavaTypeAdapter... 331 7.5.20 XmlJavaTypeAdapters... 332 7.5.21 XmlMimeType... 333 7.5.22 XmlMixed... 333 7.5.23 XmlNs... 334 7.5.24 XmlRegistry... 334 7.5.25 XmlRootElement... 335 7.5.26 XmlSchema... 336 7.5.27 XmlSchemaType... 338 7.5.28 XmlSchemaTypes... 339 7.5.29 XmlTransient... 340 7.5.30 XmlType... 341 7.5.31 XmlValue... 342 7.6 Typkonversionen Java zu XML-Schema... 343 7.7 Typkonversionen XML-Schema zu Java... 345 7.8 XML-Elemente der Bindungskonfiguration... 346 7.8.1 Globale Einstellungen... 346 7.8.2 Schemaspezifische Einstellungen... 359 7.8.3 Komponentenspezifische Einstellungen... 363 Register... 381 IX