JAXB. Java Architecture for XML Binding.
|
|
|
- Lars Albrecht
- vor 9 Jahren
- Abrufe
Transkript
1 JAXB Java Architecture for XML Binding
2 Warum JAXB? JAXB ist eine schnelle und einfache Methode, um ein XML Schema mit einer Java Repräsentation zu verbinden. Damit ist es sehr einfach, XML Daten nach Java einzulesen, dort zu verarbeiten und wieder nach XML abzuspeichern. JAXB kann als Ersatz für DOM oder SAX benutzt werden. Die Programmierdetails für das Lesen und Schreiben der XML Daten bleiben verborgen. Wir müssen keine neuen Befehle kennen lernen. Der Zugriff auf die Daten erfolgt nach den Relationen, wie sie im XML Schema definiert sind.
3 Die Architektur von JAXB 2.0
4 Binding Erzeugen der Java Klassen xjc.exe -p pge schema.xsd d out Kompilieren der Java Klassen javac out/pge/*.java Unmarshalling der XML Dokumente, Benutzen der generierten Objekte, Marshalling der Java Daten, Validierung,
5 Übersetzung verschiedener Basis-Datentypen XML-Datentyp xsd:string xsd:integer xsd:int xsd:long xsd:short xsd:decimal xsd:float xsd:double xsd:boolean xsd:byte xsd:datetime xsd:time xsd:date xsd:anysimpletype Java-Datentyp java.lang.string java.math.biginteger int long short java.math.bigdecimal float double boolean byte XMLGregorianCalendar XMLGregorianCalendar XMLGregorianCalendar java.lang.string
6 Das Beispiel Schema <?xml version="1.0"?> <xs:schema xmlns:xs=" <xs:element name="people"> <xs:complextype> <xs:sequence> <xs:element name="person" type="persontype" maxoccurs="unbounded"/> <xs:element name="address" type="addresstype" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element>...
7 Die erzeugten Java Klassen: People People List<PersonType> person; List<AddressType> address; List <PersonType> getperson() List <AddressType> getaddress() Die erzeugten Klassen-Attribute mit Zugriffsfunktionen
8 Die erzeugten Java Klassen: PersonType PersonType NameType name BornType born NameType getname() void setname(nametype) BornType getborn() void setborn(borntype) String getprofession()... <xs:complextype name="persontype"> <xs:sequence> <xs:element name="name" type="nametype"/> <xs:element name="born" type="borntype"/> <xs:element name="died" type="diedtype"/> </xs:sequence> </xs:complextype>
9 Marshalling / Unmarshalling Java XML / XML Java
10 Der Unmarshaller Das JAXBContext-Objekt erstellt einen Zugriff zum JAXB API. Damit wird ein Unmashaller erzeugt. try{ JAXBContext jc = JAXBContext.newInstance( ClassName ); Unmarshaller u = jc.createunmarshaller(); Object obj = u.unmarshal( InputStream File DocNode... )... } catch(jaxbexception e) {... }
11 Validierung Vor dem Lesen der XML Daten kann mit dem Unmarshaller ein Schema verknüpft werden. SchemaFactory schemafactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = schemafactory.newschema(new File("People.xsd")); unmarshaller.setschema(schema);
12 Lesen der XML Daten Der Unmarshaller liefert dann ein Objekt des Typs PeopleType (gemäss dem Root-Element der XML Struktur). Object obj = u.unmarshal(... )); PeopleType people = (PeopleType) obj;
13 Navigation durch die Daten Die generierten get-methoden liefern die weiteren Elemente for(persontype b : people.getperson()) { String firstname = b.getname().getfirstname(); String lastname = b.getname().getlastname(); }
14 Der Marshaller Zum Schreiben der Daten nach XML erzeugen wir ein JAXBContext und damit ein Marshaller Objekt. JAXBContext jc = JAXBContext.newInstance(ClassName); Marshaller ms = jc.createmarshaller(); ms.setproperty( Marshaller.JAXB_FORMATTED_OUTPUT, true ); // Formatiertes Schreiben der Daten ms.marshal( people, new FileOutputStream( FileName ));
15 Validierung Auch der Marshaller kann durch Setzen eines Schemas validierend gemacht werden. SchemaFactory sf = SchemaFactory.newInstance( XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = sf.newschema( SchemaFile ); marshaller.setschema(schema);
16 Customizing Anpassen der Java Klassen Namen
17 Definieren der generierten Klassen Im Schema können die gewünschten (Ziel-) Klassen Namen definiert werden: <xs:complextype name="addresstype"> <xs:annotation> <xs:appinfo> <jxb:class name="address"/> </xs:appinfo> </xs:annotation>... </complextype>
18 Definieren der Membervariablen Ebenso die gewünschten (Ziel-) Membervariablen <xs:attribute name="id" type="xs:string"> <xs:annotation> <xs:appinfo> <jxb:property name="addressid"/> </xs:appinfo> </xs:annotation>... </xs:attribute>
19 Externes Binding Konfigurations-File Die hobby-elemente der Personen sollen in einer Member-Variablen hobbylist abgelegt werden: <jxb:bindings <jxb:bindings <jxb:property name="hobbylist"/> </jxb:bindings> </jxb:bindings>
20 Bindings File Die name-elemente der Personen sollen in einer Klasse Name abgelegt werden <jxb:bindings <jxb:class name="name"/> </jxb:bindings>
21 Erzeugen eines XML Schemas
22 Schemagen.exe Aus den Java Klassen lässt sich mit Hilfe von ) das dazu passende Schema generieren. Der Aufruf zum Erzeugen des Schemas lautet schemagen.exe package\*.java
23 Ein Beispiel: Die Klasse People // serialize all member // in the following proporder = { "person", "address" }) // people is the root = "people") public class People protected List<PersonType> protected List<AddressType> address; } public List<PersonType> getperson() {... } public List<AddressType> getaddress() {... }
24 Das erzeugte Schema <?xml version="1.0" encoding="utf-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs=" <xs:element name="people"> <xs:complextype> <xs:sequence> <xs:element name="person" type="persontype" maxoccurs="unbounded"/> <xs:element name="address" type="addresstype" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element>...
25 Die Klasse name = "addresstype", proporder = { "country", "city }) public class Address private String required=true) private String private String city; } public String getid() {... } public void setid(string value) {... } public String getcountry() {... } public void setcountry(string value) {... }...
26 Das erzeugte Schema <xs:complextype name="peopletype"> <xs:sequence> <xs:element name="person" type="persontype" maxoccurs="unbounded"/> <xs:element name="address" type="addresstype" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> <xs:complextype name="addresstype"> <xs:sequence> <xs:element name="country" type="xs:string"/> <xs:element name="city" type="xs:string"/> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> </xs:complextype>...
27 Marshalling ohne Object Factory
XML Schema und Objektorientierung
XML Schema und Objektorientierung XML Schema und Objektorientierung Einführung.NET Java Einführung: Einsatzbereiche In folgenden Situationen kann eine sehr enge und ähnliche Abbildung von Daten Sinn machen:
<< Java Architecture for XML Binding >>
JAXB > 1 Lernziele JAXB Übersicht JAXB Prinzip von Data Binding verstehen Java Klassen aus XSD erzeugen Java Objekte aus XML marschallen bzw. unmarschallen Customized
XSD - XML Schema Definition
XSD - XML Schema Definition Definieren von XML-Dokumenten Michael Dienert 15. September 2016 Inhaltsverzeichnis 1 Was sind XSD Dateien und warum soll man das lernen? 1 1.1 XSD Dateien und Anwendungen....................
Java API for XML Binding
Java API for XML Binding Eine Einführung Tim Speier Fachbereich MNI Fachhochschule Gießen-Friedberg 24. Juni 2010 1 / 27 XM und Java Teil 1: Aufgabenstellung Aufgabenstellung: In einem XML-Dokument werden
Angewandte Softwareentwicklung Serialisierung
Angewandte Softwareentwicklung Serialisierung WS 2014/2015 Markus Berg Hochschule Wismar Fakultät für Ingenieurwissenschaften Bereich Elektrotechnik und Informatik [email protected] http://mmberg.net
WebServices -reloaded-
WebServices -reloaded- Jan Krüger Bielefeld Bioinformatics Service Institute of Bioinformatics CeBiTec Bielefeld University [email protected] 3 Juli 2007 Übersicht Motivation Was sind WebServices?
XML, FI und JSON strukturiert in Java verwenden. Wolfgang Nast
XML, FI und JSON strukturiert in Java verwenden Wolfgang Nast Agenda Java und XML FastInfoset JSON Zusammenfassung 2 XML in Oracle 12c Im Überblick Technologie-orientiert Branchen-unabhängig Hauptsitz
JAXB 2.0. Samuel Michaelis, Wolfgang Schmiesing. Ein Programmiertutorial für die Java Architecture for XML Binding ISBN
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
Programmieren II SAX. Beispiel-Schema kontakt.xsd SAX DOM. Dr. Klaus Höppner JAXB. Hochschule Darmstadt SS 2008
Programmieren II SAX Dr. Klaus Höppner DOM Hochschule Darmstadt SS 2008 JAXB 1 / 21 2 / 21 SAX SAX (Simple API for XML) ist eine ereignisorientierte Methode zum Parsen von XML-Dateien. Dies bedeutet, das
XML Schema vs. Relax NG
XML Schema vs. Relax NG p. 1/2 XML Schema vs. Relax NG Semistrukturierten Daten 1 Präsentation der Gruppe 2 XML Schema vs. Relax NG p. 2/2 Wozu XML Schema? W3C Empfehlung zur Definition von XML-Dokumentstrukturen
XML Schema 2015 S h_da S Seite 1
XML Schema Seite 1 XML/Schema Weiterentwicklung Seit 5. April 2012 gibt es eine Weiterentwicklung von XML Schema: W3C XML Schema Definition Language (XSD) 1.1 Die wichtigsten Neuerungen: Assertions in
a) Erklären Sie, was die folgenden Eigenschaften eines XML-Dokumentes aussagen? wohlgeformt gültig
HTW Dresden Fakultät Informatik/Mathematik Internettechnologien Aufgaben zur Klausurvorbereitung Die hier gestellten Aufgaben sind bzgl. Art der Fragestellungen mit der Klausur vergleichbar. Zur Klausur
Nonstandard Datenbanken
Prof. Dr. V. Linnemann Nils Höller Universität zu Lübeck Institut für Informationssysteme Lübeck, den 02. Februar 2009 Nonstandard Datenbanken Wintersemester 2008/2009 13. Übungsblatt: Probe-Klausur Hinweise:
Interface Spezifikation exotargets LS
Interface Spezifikation exotargets LS Einführung Inhaltsverzeichnis Inhaltsverzeichnis Inhalt 1. Einführung 3 2. History 3 3. Online-Schnittstelle 3 4. Offline-Schnittstelle 6 5. Implementationshinweise
Technische Richtlinie
Seite 1 von 18 www.bundesanzeiger.de BSI Technische Richtlinie Bezeichnung: De-Mail BSI Technische Richtlinie Anwendungsbereich: Bezeichnung: Kürzel: De-Mail Identitätsbestätigungsdienst Interoperabilitätsspezifikation
Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
Übungsblatt 6 Ausgabe: Prof. Dr. Dr. Lars Schmidt-Thieme, André Busche SoSe 2012
Aufgabe 1a) Worin besteht der Unterschied zwischen well-formed und validem XML? Wie ändert sich ggf. diese Definition / dieser Unterschied, wenn Namensräume benutzt werden? Aufgabe 1b) [4 Punkte] Beantworten/Bearbeiten
XML Binding APIs XML Beans & JAXB
XML Binding APIs XML Beans & JAXB Folie 1 Agenda 1. Einleitung 2. XMLBeans Einführung Quiz und Übung 3. Java Architecture for XML Binding (JAXB) Einführung Quiz und Übung 4. Reflexion XMLBeans vs. JAXB:
Methoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
D#32058 Spezifikation UPOC DM V2
Autor: CodX Software AG Sinserstrasse 47 CH-6330 Cham www.codx.ch Version: 12.5.2011 File: Vertraulich. Alle Rechte vorbehalten. Die Informationen dieses Dokuments oder dieses Dokument selber dürfen nicht
Extraktion von Metainformationen
Extraktion von Metainformationen Idee: es existiert bereits eine Anwendung/ein Datenbestand. Wie kann ich von diesem Ausgangspunkt modellbasiert weiterentwickeln? Möglichkeiten: Relationales Datenbankschemata
Vorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
XML Schema 2015 S h_da S Seite 1
XML Schema Seite 1 XML Schema Weiterführende Konzepte: SimpleContent Complex Content Unique / key-keyref Dokumenterweiterung Dokument-Modularisierung Seite 2 XML Schema complextype Komplexe Typen sind
Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3
Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................
Matrikelnummer: Bitte Namen und Matrikelnummer auf jeder Seite der Vorgabe und allen Arbeitsblättern eintragen!
Klausur XML 30.2286 Bitte Namen und Matrikelnummer auf jeder Seite der Vorgabe und allen Arbeitsblättern eintragen! Themenbereich XML und XML/Schema Beantworten Sie an Hand des beiliegenden XMLSchema Dokuments
Softwareentwicklung in verteilten Umgebungen, Teil 6 Web Services (Coulouris et al., Kapitel 19) Dieter Schmalstieg
Softwareentwicklung in verteilten Umgebungen, Teil 6 Web Services (Coulouris et al., Kapitel 19) Party based on material by Victor García Barrios Was sind Web Services? Im Kern: RPC via XML (Service Server)
Berner Fachhochschule Software Schule Schweiz JDOM. http://www.jdom.org/ Beatrice Amrhein. Oktober 06
Berner Fachhochschule Software Schule Schweiz JDOM http://www.jdom.org/ Beatrice Amrhein Oktober 06 1 Motivation JDOM ist ein Open Source, Baumbasiertes, Java API zum Parsen, Erzeugen, Verarbeiten und
Analyse der Datenkommunikation zur drahtlosen Steuerung eines NAO Roboters durch ein Android Gerät
Analyse der Datenkommunikation zur drahtlosen Steuerung eines NAO Roboters durch ein Android Gerät Seminarvortrag am 17. Januar 2014 Gerrit Kieffer Rechen- und Kommunikationszentrum (RZ) Gliederung Motivation
TU Wien. XML Data Binding. Business Informatics Group Institut für Softwaretechnik und Interaktive Systeme. Peter Gerstbach. Bakkalaureatsarbeit
TU Wien Business Informatics Group Institut für Softwaretechnik und Interaktive Systeme Peter Gerstbach XML Data Binding Bakkalaureatsarbeit Betreuender Assistent: Univ.Ass. Mag. Martin Bernauer Wien,
Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?
Generic Programming without Generics from JAVA5 Motivation Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Ein Bespiel: sie haben bereits eine Klasse zur Multiplikation von Matrizen
Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen
Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung
Java Einführung Klassendefinitionen
Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse
Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder [email protected].
Java: Kapitel 9 Java und XML Programmentwicklung WS 2008/2009 Holger Röder [email protected] Überblick über Kapitel 9 Einführung in XML XML-Verarbeitung in Java Document Object
Computeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) http://infotech.unileoben.ac.at/lehre/cup Der Debugger Mit Hilfe des Debuggers kann der Programmablauf schrittweise verfolgt werden. Dabei können auch Variableninhalte
XML Schema (XSD) http://www.w3.org/tr/xmlschema-0 Was ist XML Schema? XML Schema ist eine XML basierte Alternative für ein DTD. Ein XML Schema beschreibt die Struktur eines XML Dokuments. XML Schema ist
Übungsblatt 1. Java Vorkurs (WS 2017)
Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die
Einstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die
Vorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
Java Übung. Übung Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Werner Gaulke.
Java Übung Übung 5 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 9. Mai 2006 (UniDUE) 9. Mai 2006 1 / 20 Beispiel Anforderungen: Klasse Mensch mit Attributen: Name, Alter, Laune, Geschlecht.
Selbststudium Programmieren & Algorithmen OOP1 FS13 Hochschule Luzern Technik & Architektur
Selbststudium OOP1 Kapitel 1.2 Creating Objects 1. zu bearbeitende Aufgabe: 1.1 2. Wie kann dem Objekt ein eigener Name gegeben werden? Beim Erstellen (Instanz) von einem Objekt kann resp. muss der Name
Informatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp [email protected] 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme
Schwerpunkte 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java Imperative Programmierung Beispiel für ein Programm aus drei Komponenten Variable,
Lernteam OOP3 SW Programmieren 1 - H1103 Felix Rohrer
Aufgabe 1: Datentypen und Typecasting Geben Sie das Ergebnis für folgende mathematischen Ausdrücke im entsprechenden Datentyp in Java an. Beachten Sie hierzu die Folie 14 der Präsentation. Hinweis: Bei
Einführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
Wie entwerfe ich ein Programm?
Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +
Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff
Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
XML-Parser. Parser. Heutige Vorlesung. Grundlegende Architektur. Kategorien von Parser
Heutige Vorlesung XML- Welche XML- gibt es? Was sind ihre Vor- und Nachteile? Was sind Schema-Übersetzer? Klaus Schild, 2004 1 Klaus Schild, 2004 2 Grundlegende Architektur XML- Dokument Serialisierer
Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
Grundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Übungen zur Vorlesung Wissenschaftliches Rechnen I
Übungen zur Vorlesung Wissenschaftliches Rechnen I Nicolas Gauger, René Lamour, Hella Rabus Wintersemester 2007/2008 Programmierung - Einführung Programmierung - Einführung Berechnung einer Formel y =
Web Service Entwicklung mit Java. Sven Lindow
Web Service Entwicklung mit Java Sven Lindow 22.11.2006 Agenda Einleitung SOAP, REST, WSDL, UDDI Web Services mit Java JWSDP JAX-RPC, JAX-WS 2.0 AXIS, AXIS2 Web Services nutzen Google, Ebay Web Services
Christian Kühl. Von JDO zu JPA Entwicklung einer Migrationsstrategie
Christian Kühl Von JDO zu JPA Entwicklung einer Migrationsstrategie Inhalt JDO und JPA Motivation Was muss migriert werden? Strategien Architektur Beispiel Migration am Beispiel Automatisierung Probleme
Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
