java und xml seminarbeitrag von ralph-peter noll 22. januar 2001
TRANSCRIPT
![Page 1: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/1.jpg)
Java und XML
Seminarbeitrag von Ralph-Peter Noll
22. Januar 2001
![Page 2: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/11.jpg)
SAX Interfaces
ParserDocumentHandlerAttributeListErrorHandlerLocatorDTDHandlerEntityResolver
![Page 12: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/12.jpg)
SAX Version 2 Neuerungen
Unterstützung von Namespaces.Filterungerweiterte Parsersteuerung
![Page 13: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/18.jpg)
DOM Level 2 Neuerungen
StylesheetsViews RangeTraversalEventsDetailverbesserungen , z.B. bessere
Suchfunktionen
![Page 19: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/28.jpg)
5. Tools
ParserXSLT-Prozessorensonstige Java-XML-Tools
![Page 29: Java und XML Seminarbeitrag von Ralph-Peter Noll 22. Januar 2001](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/55204d6349795902118b91a2/html5/thumbnails/32.jpg)
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