32
Java und XML Seminarbeitrag von Ralph- Peter Noll 22. Januar 2001

Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

Embed Size (px)

Citation preview

Page 1: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

Java und XML

Seminarbeitrag von Ralph-Peter Noll

22. Januar 2001

Page 2: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

Gliederung

1. Grundlagen XML und Java2. Parsing in Java3. Transformationen4. Datenaustausch5. Tools

Page 3: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

1. Grundlagen

XML (Extensible Markup Language) ? Regelsystem zur Definition von HTML-

ähnlichen, formal verifizierbaren Syntaxen für jede Art von strukturierten Daten

Java ? OO-Sprache, setzt in akzeptabler Weise

folgende Ansprüche um: einfach, objektorientiert, robust, sicher, portabel, performant (...)

Page 4: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

XML in 7 Punkten

XML ist ein Verfahren, strukturierte Daten in Textdokumente zu verpacken.

XML sieht zwar aus wie HTML, ist aber anders. XML ist Text, wird aber normalerweise nicht von

Menschen gelesen. XML umfaßt eine ganze Sammlung von

Technologien. XML ist ausführlich, aber das ist kein Problem. XML ist neu, aber nicht zu neu. XML ist kostenlos, plattformunabhängig und weit

verbreitet.

Page 5: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

XML Beispiel

<order>

<customer>Bob</customer>

<part>Anvil

<id>982362</id>

<quantity>15</quantity>

</part>

</order>

Page 6: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

Java

Objektorientierte Sprache C/C++ Syntax unter Verzicht auf fehlerträchtige

Merkmale interpretiert (ggf. dynamisch optimiert) plattformunabhängig modern: netzwerk-/weborientiert, multithreaded,

enthält Sicherheitsmechanismen

Page 7: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

Häufigste Anwendungen der Kombination

Konverter XML nach XML, HTML, PDF... XML zum Datenaustausch (Stichwort

eCommerce, B2B) Datenpersistenz mit XML (neue „einfache“

Dateiformate)

Page 8: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

Vorteile der Kombination XML-Java

Portabilität, AllgemeinheitStandardisierte Programmier-Interfaces

mit austauschbaren ImplementationenNetzwerkorientierung

standardisierter Datenaustausch mit anderer Software

leichte Erweiterbarkeit um Web-Interface

Suns XML-Tools als neuer Bestandteil der ‚Java Plattform‘ weit verbreitet

Page 9: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

2. Parsing

SAX - Ereignisgesteuertes ParsenDOM - Dokument-Baum, sprach-

unabhängigJAXP - SAX + DOM + ErgänzungenJDOM - DOM erweitert, für Java optimiert

Page 10: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

SAX (Simple API for XML)

Ereignisgesteuerter Ansatz: Parser liest sequentiell den Eingabestrom Prüfung auf Korrektheit der Eingabe Aufruf von Callback-Methoden bei bestimmten

Ereignissen

Ziel der Standardisierung solcher Parser: Austauschbarkeit der Parser geringe Lernerfordernisse, Wissenstransfer

Page 11: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

SAX Interfaces

ParserDocumentHandlerAttributeListErrorHandlerLocatorDTDHandlerEntityResolver

Page 12: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

SAX Version 2 Neuerungen

Unterstützung von Namespaces.Filterungerweiterte Parsersteuerung

Page 13: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

Diskussion von SAX

Vorteile: einfach, effizient bzgl. Speicher und

Rechenzeit geeignet für große Datenmengen geringer Overhead bei Verarbeitung eines

geringen Anteils der DatenNachteile:

kein Mechanismus zum Schreiben von XML spezifiziert

Page 14: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

DOM (Document Object Model)

Ansatz: Erstellung eines baumförmigen Modells

der Dokumentstruktur (XML oder HTML) Auswertung und Manipulation dieser

Struktur über Methoden der Objekte im Baum

Sammlung von Klassen („Interfaces“), die im Baum verwendet werden

Page 15: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

DOM Interfaces

Node (mit Name, Typ, Wert, Kontext im Baum)

DocumentElementAttributeCharacterDataEntity, EntityReferenceHilfsklassen

Page 16: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

Diskussion von DOM

Vorteile: einheitlicher Zugriff in verschiedenen

Sprachen gezielter und schneller Zugriff geringerer Programmieraufwand als bei

SAX besser geegnet zur Generierung

dynamischen Inhalts

Page 17: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

Diskussion von DOM (2)

Nachteile: Schreiben von XML nicht enthalten automatisches Durchschreiten des Baumes

nicht enthalten in Corba-IDL spezifiziert, Java-API

ausgeschlossen konsequente Baumorientierung umständlich zunächst hoher Overhead für

Baumerstellung

Page 18: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

DOM Level 2 Neuerungen

StylesheetsViews RangeTraversalEventsDetailverbesserungen , z.B. bessere

Suchfunktionen

Page 19: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

JAXP (Java API for XML Parsing)

„Komplettlösung“ für die meisten Java-XML-Projekte

Komponenten: Parser (namentlich SAX 1.0) Objektmodell (DOM Level 1) einheitliche Schnittstellen zur Erzeugung von

Objekten (Factories)

JAXP 1.1 mit XSL, SAX 2 und DOM 2 ‚available soon‘

Page 20: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

JDOM (Java Document-Object Model)

Ziel: kompaktes API, das nur die Stärken von SAX und DOM vereint

kann auch auf vorhandenen SAX und DOM Parsern aufsetzen

Ausgabe von XML möglich

Page 21: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

3. Transformation als Anwendung

häufige Anwendung: on-the-fly Generierung von Webseiten

Probleme: Effizienz Zielformate (HTML-Versionen, XML etc...) dynamische Inhalte

Page 22: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

Transformation mit SAX und DOM

SAX Ausgabe während Scanner-Durchlauf, einfache

Transformationen möglich

DOM Parsing, Aufbau eines Parsebaums Manipulation dieses Baums rekursive Generierung anhand

Dokumentstruktur

Page 23: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

XSL (Extensible Stylesheet Language)

Stylesheet-Sprache für XML, besteht aus XSLT: Transformationsprache XML nach XML XSL-FO: XML-Vokabular für Formatierungen

Java-Unterstützung JAXP 1.1, diverse Tools

Page 24: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

JSP und Java Servlets

Ansatz: Java Programm läuft im Server Servlet Java-Programm aus JSP-Dokument generiert

Integration in XML über ‚Processing Instructions‘

Dynamic Content Processing (DCP): Manipulationen auf DOM-Objekten vor der

Transformation

Page 25: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

4. Datenaustausch als Anwendung

Begriff Enterprise Application Integration (EAI)

Begriff Electronic Data Interchange (EDI)SOAP und JAXMXML-RPC

Page 26: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

Begriffe EDI und EAI

EAI (Enterprise Application Integration) Abstrakter betriebswirtschaftlicher Oberbegriff für

betriebswirtschaftlich geprägte Vorgänge der Kopplung vorhandener Anwendungen und Integration in neuen Anwendungen

EDI (Electronic Data Interchange ) System zur Festlegung von normierten Formaten

für den Austausch von Daten zwischen kommerziellen Datenverarbeitungsprogrammen (Stichwort B2B)

zunehmend über das Internet

Page 27: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

SOAP und JAXM (Simple Object Access Protocol, Java API for XML Messaging)

Ziel: Austausch strukturierter, typisierter Daten über

Standardprotokolle wie HTTP, FTP, SMTP mittels ‚einfacher‘ Mechanismen.

Robustheit, schnelle Entwicklung

Bestandteile des W3C Protokolls SOAP: Nachrichtenformat: Envelope, Header, Body in XML Kodierung / Serialisierung von Typen und Klassen RPC Konventionen für remote Prozeduraufrufe

JAXP ist ein konkurrierender Standard von Sun mit stärkerer Ausrichtung auf eBusiness.

Page 28: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

5. Tools

ParserXSLT-Prozessorensonstige Java-XML-Tools

Page 29: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

Parser

Apache XML Parser ‚Xerces‘IBM XML Parser ‚ XML4J‘Oracle XML parserSun XML parser (s.o.)XP - freier XML parser von James Clark

Page 30: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

XSLT Prozessoren

Apache XML Prozessor ‚ Xalan‘ (Java und C++)

Lotus LotusXSL, auf dem Xalan aufbautXT - freier XSLT-Prozessor von James

Clark'sSun XSLT-to-Java Compiler

Page 31: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

sonstige Java XML Tools

IBM XML + Web Services Entwicklungsumgebung

Apache Cocoon und Xang - Framework zur Generierung dynamischer Webseiten aus XML mit Java und Javascript

Page 32: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001

6. Ausblick

JAXB (API for XML Data Binding): direktes Mapping von XML-Strukturen auf Java-Klassen Ziel: keine Parser mehr verwenden, sondern

direkt XML-Schemata als Java-Klassen einbinden.

Letzter fehlender Baustein von Suns JAX (Java API for XML) bestehend aus JAXP, JAXM und JAXB