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

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

Embed Size (px)

Citation preview

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

XML

1

Hauptseminar SoftwaretechnologieTU Dresden, SS 2001

Parser

Stefan Fromm

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

LMX

Gliederung

1. XML Charakteristik Beispiel XML-Dokument2. Parser SAX und DOM Java-Implementierungen3. Beispiele Apache Crimson IBM XML4J

2

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

LMX

XMLWas ist XML?

• XML = eXtensible Markup Language• Meta-Sprache zum Erzeugen neuer Markup-Sprachen:

- CML (Chemical Markup Language)- MathML (Mathematical Markup Language)- SMIL (Synchronized Multimedia Integration Language)- ...

3

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

LMX

XMLHistorie

HypertextGMLSGMLHTMLHTML 2.0, CSS 1.0HTML 3.2, XML 1.0HTML 4.0CSS 2.0, XML 1.0,XSL 1.0XML, ...

19501969198619891994199619971998

1999

Theorie von Tod NelsonGeneralized ML von IBMStandard GML als ISO-8879Tim Bernes-Lee in GenfW3C-StandardXML als W3C-DiskussionsvorschlagW3C-RichtlinieXML als W3C-Standard,XSL als W3C-Vorschlagzahlreiche Erweiterungen für XML

XML ist abgespeckte Version von SGML

4

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

LMX

XMLCharakteristik

Trennung zwischen Daten und Sprachdefinition

XML DTDintern oder externe Datei

angelehnt an EBNF

definiert Syntax der Daten

Document Type Definitiondynamische Tags

keine HTML-Unsitten:• korrekte Schachtelung• Tags schließen

hierarchischeElementstruktur

ermöglicht phys.Datenverteilung

well-formed valid

5

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

LMX

XMLBestandteile

Elemente – Strukturknoten <start-tag>...</end-tag>, leere Elemente mit <.../>Attribute - beschreiben Elemente näher (name=“value“)Entity – physische Speichereinheiten parsed / unparsed, internal / external, general / parameterProcessing Instruction - Anweisungen für Anwendungen <?target text?>Notation – Erläuterung zu Entities, Processing InstructionsNamespace – Namensraum für Elemente-/Attribute-Namen <namespace:element xmlns:namespace=“...“>CDATA-Section - Freitext ohne Einschränkungen <![CDATA[...]]>Kommentar <!-- ... --> 6

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

LMX

XMLBewertung

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

7

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

LMX

XMLBeispiel – Versandhaus

orderlist.dtd product.dtd

orderlist.xml showeraccessories.xml

product

shower

bindet ein

bindet ein

definiert DTD-Entity

definiert XML-Entityvalidiert

DTD

XML

8

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

LMX

XMLBeispiel – Document Type Definition

XML-Elemente oft gleich benannt Kollisionen bei mehreren XML-Dokumenten...

orderlist.dtd

product.dtd9

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

LMX

XMLBeispiel – XML-Dokument (1)

...Lösung: Namespaces (hier globaler Namensraum – aber auch elementeweise)

orderlist.xml

10

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

LMX

XMLBeispiel – XML-Dokument (2)

orderlist.xml

showeraccessories.xml 11

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

LMX

Gliederung

1. XML Charakteristik Beispiel XML-Dokument2. Parser SAX und DOM Java-Implementierungen3. Beispiele Apache Crimson IBM XML4J

12

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

LMX

Java ParserParser

XML-Datei Parser

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

DTD

13

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

LMX

Java ParserSAX – 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

14

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

LMX

Java ParserSAX 2 – Interfaces

veraltete Interfaces von SAX 1.0 nicht dargestellt

-Adapter-Klassenfür Übergang zu SAX 2.0 sind implementiert

15

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

LMX

Java ParserSAX 2 – Event Handler

ContentHandler• reagiert auf Dokumentstart / -ende, Elemente, Namespace- Deklarationen, TextdatenDTDHandler• reagiert auf Notationen und ungeparste Entities (Binärdaten, Bilder, ...)ErrorHandler• ermöglicht Fehlerausgabe• Unterteilung in leichte / fatale Fehler und WarnungenEntityResolver• Auflösen von URI‘s zu EntitiesDeclHandler + LexicalHandler (Erweiterungen)• DTD-Ereignisse abfangen• Text-Ereignisse abfangen (Kommentar, CDATA, DTD, Entity)

16

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

LMX

Java ParserDOM – 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

17

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

LMX

Java ParserDOM 2 – Core-Interfaces

18

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

LMX

Java ParserDOM 2 – Bestandteile

Core• Basisschnittstelle zur Baumdarstellung von XML-Dokumenten• in DOM 2 neue Methoden zur Namespace-UnterstützungViews (ab DOM2)• def. abstr. View zur Darstellung von XML-Dok‘s in Browsern / EditorenEvents (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 HTMLStyle (ab DOM2)• Zugriff auf Stylesheet-Dok‘s (Spezialisierung für CSS)

19

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

LMX

Java ParserVergleich 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

20

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

LMX

Java ParserXML 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

21

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

LMX

Java ParserImplementierungen

Parser unterstützt valid. Version Adresse

Ælfred SAX1 nein 1.2a www.microstar.com

IBM XML4J SAX1, DOM2

ja 3.1.1 (ben. Xerces 1.2)

xml.apache.org

XP SAX1 nein 0.5 www.jclark.com/xml/

Lark Eigenbau nein 1.0 www.textuality.com/ LarkLarval Eigenbau ja 1.0

Sun JAXP SAX2, DOM2 Core

ja 1.1 sun.java.com

Sun ProjectX SAX1, DOM1

ja TechRel 2 sun.java.com/xml

Crimson SAX2, DOM2

ja 1.1 (erweit. JAXP 1.1)

xml.apache.org

22

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

LMX

Java ParserDOM-Parser – Performance

Quelle: www.developerlife.com 23

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

LMX

Gliederung

1. XML Charakteristik Beispiel XML-Dokument2. Parser SAX und DOM Java-Implementierungen3. Beispiele Apache Crimson IBM XML4J

24

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

LMX

BeispieleCrimson (1)

25

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

LMX

BeispieleCrimson (2)

26

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

LMX

BeispieleIBM XML4J

27

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

LMX

Fazit• strukturierte Daten mit XML Datenaustausch, Datenbanken• noch viele XML-Anwendungen erforderlich – Parser nur erster Schritt• viele weitere Standardisierungen des W3C:

XSL – eXtensible Stylesheet LanguageXLink – eXtensible Linking LanguageXQL – XML Query LanguageXMI – 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

28

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

LMX

Quellen• XML 1.0 Spezifikation, DOM 2 Spezifikation

http://www.w3c.org• SAX 2.0 Spezifikation

http://www.megginson.com/SAX/• Java Parser-Implementierungen

siehe Folie 21• Benchmarks

http://www.developerlife.com• Tutorials

http://skew.org/xmlhttp://www.ibm.com/xml

• XML Quick Referencehttp://www.mulberrytech.com

• Materialsammlunghttp://www.inf.tu-dresden.de/~sf21

29