View
109
Download
0
Category
Preview:
Citation preview
XML
1
Hauptseminar SoftwaretechnologieTU 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
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
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
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
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
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
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
LMX
XMLBeispiel – Document Type Definition
XML-Elemente oft gleich benannt Kollisionen bei mehreren XML-Dokumenten...
orderlist.dtd
product.dtd9
LMX
XMLBeispiel – XML-Dokument (1)
...Lösung: Namespaces (hier globaler Namensraum – aber auch elementeweise)
orderlist.xml
10
LMX
XMLBeispiel – XML-Dokument (2)
orderlist.xml
showeraccessories.xml 11
LMX
Gliederung
1. XML Charakteristik Beispiel XML-Dokument2. Parser SAX und DOM Java-Implementierungen3. Beispiele Apache Crimson IBM XML4J
12
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
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
LMX
Java ParserSAX 2 – Interfaces
veraltete Interfaces von SAX 1.0 nicht dargestellt
-Adapter-Klassenfür Übergang zu SAX 2.0 sind implementiert
15
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
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
LMX
Java ParserDOM 2 – Core-Interfaces
18
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
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
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
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
LMX
Java ParserDOM-Parser – Performance
Quelle: www.developerlife.com 23
LMX
Gliederung
1. XML Charakteristik Beispiel XML-Dokument2. Parser SAX und DOM Java-Implementierungen3. Beispiele Apache Crimson IBM XML4J
24
LMX
BeispieleCrimson (1)
25
LMX
BeispieleCrimson (2)
26
LMX
BeispieleIBM XML4J
27
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
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
Recommended