Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Hauptseminar Softwaretechnologie TU Dresden, SS 2001

Ähnliche Präsentationen


Präsentation zum Thema: "Hauptseminar Softwaretechnologie TU Dresden, SS 2001"—  Präsentation transkript:

1 Hauptseminar Softwaretechnologie TU Dresden, SS 2001
XML Parser Hauptseminar Softwaretechnologie TU Dresden, SS 2001 Stefan Fromm 1

2 X M L Gliederung 1. XML Charakteristik Beispiel XML-Dokument
2. Parser SAX und DOM Java-Implementierungen 3. Beispiele Apache Crimson IBM XML4J L 2

3 X M L XML Was ist XML? XML = eXtensible Markup Language
Meta-Sprache zum Erzeugen neuer Markup-Sprachen: L CML (Chemical Markup Language) MathML (Mathematical Markup Language) SMIL (Synchronized Multimedia Integration Language) ... 3

4 XML X Historie M 1950 1969 1986 1989 1994 1996 1997 1998 1999 Hypertext GML SGML HTML HTML 2.0, CSS 1.0 HTML 3.2, XML 1.0 HTML 4.0 CSS 2.0, XML 1.0, XSL 1.0 XML, ... Theorie von Tod Nelson Generalized ML von IBM Standard GML als ISO-8879 Tim Bernes-Lee in Genf W3C-Standard XML als W3C-Diskussionsvorschlag W3C-Richtlinie XML als W3C-Standard, XSL als W3C-Vorschlag zahlreiche Erweiterungen für XML L SGML hatte 500 Seiten Regeln, für XML 70 Seiten Spezifikation: schlank SGML trennt schon strikt zwischen Daten und Repräsentation  XML ist abgespeckte Version von SGML 4

5 X M L XML Charakteristik Trennung zwischen Daten und Sprachdefinition
dynamische Tags Document Type Definition hierarchische Elementstruktur definiert Syntax der Daten XML DTD angelehnt an EBNF keine HTML-Unsitten: korrekte Schachtelung Tags schließen intern oder externe Datei ermöglicht phys. Datenverteilung HTML-Unsitten: Empty-Tags werden jetzt gekennzeichnet DTD mit regulären Ausdrücken phys. Datenverteilung durch Entities Syntax beschreibt gültige Tags valid well-formed 5

6 X M L XML Bestandteile Elemente – Strukturknoten
<start-tag>...</end-tag>, leere Elemente mit <.../> Attribute - beschreiben Elemente näher (name=“value“) Entity – physische Speichereinheiten parsed / unparsed, internal / external, general / parameter Processing Instruction - Anweisungen für Anwendungen <?target text?> Notation – Erläuterung zu Entities, Processing Instructions Namespace – Namensraum für Elemente-/Attribute-Namen <namespace:element xmlns:namespace=“...“> CDATA-Section - Freitext ohne Einschränkungen <![CDATA[...]]> Kommentar <! > L HTML-Unsitten: Empty-Tags werden jetzt gekennzeichnet DTD mit regulären Ausdrücken phys. Datenverteilung durch Entities Syntax beschreibt gültige Tags 6

7 X M L XML Bewertung Vorteile Nachteile
ASCII  portabel, Datenaustausch nicht so kompakt wie binär flexibel in Datendefinition, selbstbeschreibend strukturierte Darstellung  Parser für alle XML-Dokumente für Freiformtext schlecht verwendbar Validierung anhand Syntaxvorgabe sprachunabhängig einfach erlernbar L 7

8 Beispiel – Versandhaus
XML X Beispiel – Versandhaus M DTD definiert DTD-Entity bindet ein L orderlist.dtd product product.dtd validiert definiert XML-Entity XML shower bindet ein orderlist.xml showeraccessories.xml 8

9 Beispiel – Document Type Definition
XML X Beispiel – Document Type Definition M orderlist.dtd L XML-Elemente oft gleich benannt  Kollisionen bei mehreren XML-Dokumenten... product.dtd 9

10 Beispiel – XML-Dokument (1)
...Lösung: Namespaces (hier globaler Namensraum – aber auch elementeweise) L orderlist.xml 10

11 Beispiel – XML-Dokument (2)
showeraccessories.xml L orderlist.xml 11

12 X M L Gliederung 1. XML Charakteristik Beispiel XML-Dokument
2. Parser SAX und DOM Java-Implementierungen 3. Beispiele Apache Crimson IBM XML4J L 12

13 X M L Java Parser Parser Parser XML-Datei DTD Java Parser...
transformiert XML in Java-Objekte für Laufzeitzugriff prüft, ob XML wohlgeformt prüft, ob XML gültig anhand einer Grammatik  Syntaxanalyse 13

14 X M L Java Parser SAX – Konzept SAX = Simple API for XML
ereignisorientiertes Parsen, d.h. Ereignishandler werden vom Parser benachrichtigt entwickelt von Mitgliedern der XML-DEV Mailing List aktuell: Version 2.0 Sammlung von Java-Interfaces (C++ ist in Arbeit) SAX Parser implementieren Interfaces  austauschbar L 14

15 X M L Java Parser SAX 2 – Interfaces
veraltete Interfaces von SAX 1.0 nicht dargestellt - Adapter-Klassen für Übergang zu SAX 2.0 sind implementiert 15

16 X M L Java Parser SAX 2 – Event Handler ContentHandler
reagiert auf Dokumentstart / -ende, Elemente, Namespace- Deklarationen, Textdaten DTDHandler reagiert auf Notationen und ungeparste Entities (Binärdaten, Bilder, ...) ErrorHandler ermöglicht Fehlerausgabe Unterteilung in leichte / fatale Fehler und Warnungen EntityResolver Auflösen von URI‘s zu Entities DeclHandler + LexicalHandler (Erweiterungen) DTD-Ereignisse abfangen Text-Ereignisse abfangen (Kommentar, CDATA, DTD, Entity) L 16

17 X M L Java Parser DOM – Konzept DOM = Document Object Model
gesamtes XML-Dokument wird in Objekt-Baum überführt standardisiert vom W3C aktuell: Level 2, Level 3 in Arbeit Sammlung von zu implementierenden Interfaces Interfaces in IDL sprachneutral definiert Sprachbindung von IDL an Programmiersprachen (Java, C++, ...) spezifiziert besteht aus Kern und Erweiterungen L Parser, der den Kern implementiert, funktioniert. 17

18 X M L Java Parser DOM 2 – Core-Interfaces 18 Node – allgemeiner Knoten
Document - Erzeugen von Knotenobjekten, Ändern des Dokuments Element – eigene Attribute verwalten und untergeordnete Elemente verwalten: viele Zugriffsmethoden CharacterData – Textmanipulation Attr – Name-Value-Paare 18

19 X M L Java Parser DOM 2 – Bestandteile Core
Basisschnittstelle zur Baumdarstellung von XML-Dokumenten in DOM 2 neue Methoden zur Namespace-Unterstützung Views (ab DOM2) def. abstr. View zur Darstellung von XML-Dok‘s in Browsern / Editoren Events (ab DOM2) Ereignisse auslösen (z.B. Dokumentänderungen durch GUI, Maus, ...) Traversal (ab DOM2) Iterator und Treewalker zum Navigieren in DOM-Bäumen Range-Selection in DOM-Bäumen (z.B. als Selektion in GUI) HTML (ab DOM2) Core-Erweiterung für Beschreibung von HTML Style (ab DOM2) Zugriff auf Stylesheet-Dok‘s (Spezialisierung für CSS) L DOM 3 mit Kopfzeilen-Infos: encoding, version, standalone 19

20 X M L Java Parser Vergleich SAX / DOM Simple API for XML
Document Object Model ereignisorientiert Aufbau Baum-Struktur schnell in größeren Dokumenten langsam in großen Dokumenten Aufbau eines eigenen DOM möglich (nicht notwendig) DOM wird vom Parser aufgebaut (Baumstruktur) Interfaces nur zum Lesen von XML ausgelegt kein Schreiben von XML, obwohl Interfaces es hergeben L 20

21 X M L Java Parser XML und Java Java als Internet-Sprache
Java-Technologien bieten Basis für Web-Anwendungen (e-Commerce, ...) XML dient Datendarstellung / Datenaustausch Java ist plattformunabhängig XML ist sprachunabhängig  Kombination im Internet sinnvoll L 21

22 X M L Java Parser Implementierungen Parser unterstützt valid. Version
Adresse Ælfred SAX1 nein 1.2a IBM XML4J SAX1, DOM2 ja 3.1.1 (ben. Xerces 1.2) xml.apache.org XP 0.5 Lark Eigenbau 1.0 Lark Larval Sun JAXP SAX2, DOM2 Core 1.1 sun.java.com Sun ProjectX SAX1, DOM1 TechRel 2 sun.java.com/xml Crimson SAX2, DOM2 1.1 (erweit. JAXP 1.1) L Aelfred und Lark sind klein für Applets auch C-Parser (Expat, ...) 22

23 DOM-Parser – Performance
Java Parser X DOM-Parser – Performance M L Quelle: 23

24 X M L Gliederung 1. XML Charakteristik Beispiel XML-Dokument
2. Parser SAX und DOM Java-Implementierungen 3. Beispiele Apache Crimson IBM XML4J L 24

25 Beispiele X Crimson (1) M L 25

26 Beispiele X Crimson (2) M L 26

27 Beispiele X IBM XML4J M L 27

28 X M L Fazit strukturierte Daten mit XML  Datenaustausch, Datenbanken
noch viele XML-Anwendungen erforderlich – Parser nur erster Schritt viele weitere Standardisierungen des W3C: XSL – eXtensible Stylesheet Language XLink – eXtensible Linking Language XQL – XML Query Language XMI – XML Metadata Interchange ... könnte HTML mit erstem vollwertigem XML-Browser ablösen (auf WWW6-Konferenz bereits angesprochen, HTML nur bis 4.0 zu entwickeln [www.heise.de – iX 6/1997 S. 106: Web-Sprachen])  neue Ära für Anwendungen und das Internet M L 28

29 X M L Quellen XML 1.0 Spezifikation, DOM 2 Spezifikation
SAX 2.0 Spezifikation Java Parser-Implementierungen siehe Folie 21 Benchmarks Tutorials XML Quick Reference Materialsammlung M L 29


Herunterladen ppt "Hauptseminar Softwaretechnologie TU Dresden, SS 2001"

Ähnliche Präsentationen


Google-Anzeigen