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

Preview:

Citation preview

Java und XML

Seminarbeitrag von Ralph-Peter Noll

22. Januar 2001

Gliederung

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

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 (...)

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.

XML Beispiel

<order>

<customer>Bob</customer>

<part>Anvil

<id>982362</id>

<quantity>15</quantity>

</part>

</order>

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

Häufigste Anwendungen der Kombination

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

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

Dateiformate)

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

2. Parsing

SAX - Ereignisgesteuertes ParsenDOM - Dokument-Baum, sprach-

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

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

SAX Interfaces

ParserDocumentHandlerAttributeListErrorHandlerLocatorDTDHandlerEntityResolver

SAX Version 2 Neuerungen

Unterstützung von Namespaces.Filterungerweiterte Parsersteuerung

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

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

DOM Interfaces

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

DocumentElementAttributeCharacterDataEntity, EntityReferenceHilfsklassen

Diskussion von DOM

Vorteile: einheitlicher Zugriff in verschiedenen

Sprachen gezielter und schneller Zugriff geringerer Programmieraufwand als bei

SAX besser geegnet zur Generierung

dynamischen Inhalts

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

DOM Level 2 Neuerungen

StylesheetsViews RangeTraversalEventsDetailverbesserungen , z.B. bessere

Suchfunktionen

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‘

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

3. Transformation als Anwendung

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

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

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

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

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

4. Datenaustausch als Anwendung

Begriff Enterprise Application Integration (EAI)

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

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

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.

5. Tools

ParserXSLT-Prozessorensonstige Java-XML-Tools

Parser

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

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

sonstige Java XML Tools

IBM XML + Web Services Entwicklungsumgebung

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

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

Recommended