Java und XML Java und XML

Werbung
Technische Universität Ilmenau
Fakultät für Informatik und Automatisierung
Institut für Praktische Informatik und Medieninformatik
Fachgebiet Telematik
Java und XML
Hauptseminar Telematik WS 2002/2003
Christian Brosch
Betreuer: Dr. Eckhardt Schön
Java und XML
‹ Einführung
• XML
• Warum Java und XML?
‹ XML Verarbeitung
‹ XML Binding
‹ XML Messaging
‹ XML basierter Remote Procedure Call
‹ XML Registries
Christian Brosch
Java und XML
2
1
Java und XML
‹ Quellen
•
•
•
•
http://java.sun.com/xml/
http://java.sun.com/webservices/docs/1.0/tutorial/index.html
http://www.w3c.org/XML/
http://www.w3c.org/TR/SOAP/
‹ Java-Komponenten
die im Folgenden erwähnte Technologien sind enthalten im:
• Java XML Pack:
http://java.sun.com/xml/javaxmlpack.html
• Java Webservice Development Pack:
http://java.sun.com/webservices/webservicespack.html
Christian Brosch
Java und XML
3
XML
‹ XML (eXtensible Markup Language) ist textbasierte
Auszeichungssprache, ähnlich wie HTML
‹ XML ist gängiges Format für Datenaustausch, wurde
1998 vom World Wide Web Consortium (www.w3c.org)
standardisiert
‹ Im Gegensatz zu HTML geben die Tags nicht (nur)
Auskunft über die Formatierung, sondern auch die „Art“
der Daten
‹ keine fest vorgegebene Menge an Tags
‹ optionale DTD (Document Type Definition) gibt an,
welche Tags mit welchen Attributen zulässig sind und
deren Anordnung
Christian Brosch
Java und XML
4
2
XML
‹ XML Schema: komplexes Regelwerk, dass den Aufbau
einer XML-Datei beschreibt und die Validierung einer
XML-Datei ermöglicht
‹ Beispiel für (simples) XML-Dokument
<?xml version="1.0"?>
<message>
<to>[email protected]</to>
<from>[email protected]</from>
<subject> XML Is Really Cool</subject>
<text>text</text>
</message>
Christian Brosch
Java und XML
5
Warum XML und Java?
‹ Java gilt als „Programmiersprache des Webs“ und XML
als „Auszeichnungssprache des Webs“ zur Übertragung
von Dokumenten
‹ beide plattformunabhängig konzipiert
‹ Unicode
‹ Java enthält verschiedene Technologien zur
Verarbeitung von XML:
• SAX (Simple API for XML)
• Unterstützung für Document Objects Model (DOM)
(Standard vom W3C zur Manipulation von XML)
• XML Binding
• Unterstützung für XML-basierte Webservices
Christian Brosch
Java und XML
6
3
XML Verarbeitung
‹ Zur Verarbeitung (d.h. lesen, schreiben, verändern) von
XML-Dokumenten dient das Java API for XML Processing
(JAXP)
‹ Mittels dieser standardisierten Schnittstelle können
verschiedene Parserimplementationen verwenden
werden, ohne die Anwendung zu ändern
‹ Möglichkeit zur Validierung der XML-Dokumente
vorhanden
‹ zur Verarbeitung gibt es zwei grundsätzliche Varianten
• SAX (Simple API for XML)
• DOM (Document Object Model)
Christian Brosch
Java und XML
7
XML Verarbeitung
‹ SAX (Simple API for XML)
• ereignisbasierte, streamartige Abarbeitung der Datei
• Entwickler (=Anwender des Parsers) instanziiert
Parser und stellt CallBack-Methode(n) zur Verfügung
• Parser arbeitet XML-Datei ab und ruft CallBackMethode(n) für jedes Element der XML-Datei auf
• Verarbeitung ist also völlig „seriell“
Christian Brosch
Java und XML
8
4
XML Verarbeitung
‹ DOM
• (Document Object Model) standardisierte
Schnittstelle von W3C, in JAXP enthalten
• DOM-Parser liest XML-Document in baumförmige
Struktur im Speicher
• es kann direkt auf einzelne Knoten des Baumes
wahlfrei zugegriffen werden
• Knoten können eingefügt, modifiziert und gelöscht
werden
Christian Brosch
Java und XML
9
XML Verarbeitung
SAX
- wenig Speicherbedarf
- serielle Abarbeitung
- schneller
Christian Brosch
DOM
- XML-Dokument komplett
im Speicher
- flexiblere Nutzung,
wahlfreier Zugriff
- (meist) weniger Aufwand
für Entwickler
Java und XML
10
5
XML Binding
‹ JAXB (Java Architecture for XML Binding) ermöglicht
eine Abbildung von XML-Dokumenten in Java Objekten
(und umgekehrt)
‹ der JAXB-Compiler erzeugt aus einem gegebenen XMLSchema eine Menge von Java-Klassen
‹ ein XML Dokument kann als Instanz einer solchen
Klasse aufgefasst werden
‹ Vorteile:
• Geschwindigkeit vergleichbar mit SAX
• sehr einfach zu benutzen, leicht wartbar
• valide Dokumente
• Möglichkeit, deutliche komplexere XML-Dokumente
zu bearbeiten
Christian Brosch
Java und XML
11
XML Binding
Christian Brosch
Java und XML
12
6
XML Messaging
‹ JAXM = Java API for XML Messaging
‹ wird hauptsächlich für Webservices genutzt
‹ Nachrichten im XML Format werden mittels SOAP
(Simple Object Access Protocoll) übertragen
‹ dient dem Austausch von XML-Dokumenten z.B.
Oderbestätigung bei Webservices über das Internet
‹ zwei Arten von SOAP-Nachrichten
• ohne Attachment, d.h. nur ein XML-Dokument
enthalten
• mit Attachment, beliebige Dateien (Bilder,
Programme etc.) enthalten
Christian Brosch
Java und XML
13
XML Messaging
‹ Übertragung der Nachrichten kann direkt oder über
einen Provider erfolgen
‹ Provider
• ist immer aktiv
• sorgt für Verteilung der Nachrichten
• speichert diese zwischen, falls Empfänger offline
• führt Logdateien, Fehlerauswertung
Christian Brosch
Java und XML
14
7
XML Messaging
Anwendungsszenario: Online-Shop
Christian Brosch
Java und XML
15
XML basierter RPC
‹ JAX-RPC = Java API for XML-based RPC
‹ RPC (= Remote Procedure Call) ist ein Mechanismus,
der es ermöglicht, Prozeduren auf anderen Systemen
auszuführen
‹ JAX-RPC ist die Java-Schnittstelle zur Verwendung von
XML-basierenden RPC bei Webservices
‹ RPC durch Übertragung einer SOAP-basierenden
Nachricht ausgelöst, Format WSDL
‹ WSDL (=Web Service Description Language) ist ein vom
W3C standardisiertes XML-basierendes Format zur
Beschreibung von Webservices
‹ JAX-RPC-Client kann auch mit nicht-Java-basierendem
Server kommunizieren und umgekehrt
Christian Brosch
Java und XML
16
8
XML Registries
‹ eine XML-Registry ist eine Infrastruktur, die zur
Entwicklung und zum Auffinden von Webservices dient
‹ gemeinsame Resource zwischen allen Beteiligten
‹ z.Zt. existieren mehrere Spezifikationen: ebXML, UDDI
‹ JAXR (Java API for XML Registries) dient als einheitliche
Schnittstelle für Java-Entwickler, um auf verschiedene
Arten von XML Registries zuzugreifen
‹ JAXR besteht grundsätzlich aus zwei Komponenten:
• Client nutzt JAXR-API, um auf WebserviceRegistrierung zuzugreifen
• Provider ist Implementierung der API, der den
Zugriff auf Registrierungsdatenbank(en) ausführt
Christian Brosch
Java und XML
17
9
Herunterladen