XML-Parser Manuel Röllinghoff.

Slides:



Advertisements
Ähnliche Präsentationen
XML-basierte Techniken
Advertisements

Entwicklung UnivIS-Anbindung auf Basis von PHP und DOM-XML
Extensible Markup Language
DTD XML-Technik Dino Azzano. Definition Document Type Definition Beschreibung der Regeln zum Aufbau aller XML-Dokumente, die zu einer Dokumentklasse.
XML.
Zeitplan. Zeitplan Inhalt Datenmodellierung Syntax Java / .NET-Einsatz Datenbanken.
1. Einführung. 1. Einführung Inhalt Einführung Vorlagen XPath Kontrollstrukturen Sortierung, Gruppierung und Nummerierung Parameter und Variablen Ein-
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Hands On – Einführung in XML
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
HTML - Einführung Richard Göbel.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
DOM (Document Object Model)
Seminar XML und Datenbanken Sven Wiegelmann SS 2002.
HTML - Eine erste Annäherung
XML-basierte Techniken
Tinosch Ganjineh, Christian v. Prollius 1 Scalable Vector Graphics SVG.
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
Modularization of XHTML™
Überblick XML: Extensible Markup Language Entwickelt, um Informationen bereitzustellen, zu speichern und zu übertragen Im Gegensatz zu HTML keine vordefinierten.
XML Standardisierungen und Abfragesprachen
Speicherung von XML- Dokumenten als Large Objects.
Einführung XML XML Einführung Andreas Leicht.
Geoinformation III Vorlesung 13b XML-Schema.
Programmieren mit JAVA
EXtensible Server Pages von Belrhiti El mostafa. Inhalt Was ist XSP ? Wichtige XSP Tags Erstellungsmöglichkeiten Die Basis der XSP.
XML und Datenbanken - Einführung in XML -
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
Was versteht man unter XML Schema?
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Vortrag HTML, XHTML, DHTML
XML DTD.
Formale Sprachen und Automaten
JavaScript.
DTD – Deklaration von Elementen Beschreibt die Einschränkungen des Inhalts eines Elements Syntax: Einziger atomarer Typ: #PCDATA (Parsed Character DATA)
Fortsetzung DTDs, UML  XML
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
Java für Fortgeschrittene
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
Oliver Spritzendorfer Thomas Fekete
XML (Extensible Markup Language)
Kurzpräsentation von Herbert Schlechta
XSL in der Praxis Anwendungsbeispiele für die eXtensible Stylesheet Language Andreas Kühne XML One 2000.
XJustiz XJustiz_XML XJustiz_Schema Fachmodul Wertelisten
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
- Warum: Das HTML-Dilemma
IT-Zertifikat der Phil.Fak Kurs 4: Daten- und Metadatenstandards Patrick Sahle XML-BasicsWS 08/09.
Seminar zur Geoinformation Folie 1 Inhalt: –XML –XML- SCHEMA –XSL –Syntax –GML Seminar zur Geoinformation Datenaustausch mit XML / GML im InternetDatenaustausch.
- XML: Das Sprachkonzept
Peter Brezany Institut für Softwarewissenschaften Universität Wien
XML Schema Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung WS2011/2012 Hist.-kult.wiss. Informationsverarbeitung (Teil.
Geoinformation3 Geoinformation III XML Grundlagen und Dokumentspezifikation Vorlesung 12b.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Dr. Thomas H. Kolbe Geoinformation III XML Grundlagen und Dokumentspezifikationen Vorlesung.
Geoinformation3 Geoinformation III XML Grundlagen, Namensräume und Hyperlinks Vorlesung 12b.
Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.
XML Grundlagen, Namensräume & Hyperlinks
Seminar Modellgetriebene Softwareentwicklung XMI - XML Metadata Interchange Vortrag im Rahmen des Seminar Modellgetriebene Softwareentwicklung Mirko Otto.
DTD und W3C XML Schema Seminar XML und Datenbanken Vortrag: Sven Blüge.
Seminar : XML und Datenbanken Die Auszeichnungssprache XML Lutz GarsteckiJena, 27.Mai 2004.
XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.
1 Java und XML Stephan Baldes Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg.
8.November 2006 ― 1Elektronisches Publizieren: XML Namespaces Kodierung strukturierter Dokumente im Web — XML Namespaces —
Document Type Definitions (DTDs) Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme
XML und Java Verarbeitung von XML-Dokumenten mit JAVA.
13.Dezember 2006–1Elektronisches Publizieren: Schemasprachen — Relax NG Schemasprachen für XML — Relax NG — Anne Brüggemann-Klein TU München.
Fortsetzung DTDs, UML  XML
 Präsentation transkript:

XML-Parser Manuel Röllinghoff

Übersicht Einleitung Parsereigenschaften SAX DOM Beschreibung der wichtigsten Java-Parser Parsergeneratoren

Einleitung Große Anzahl von XML-Parsern für fast alle Programmier- und Skriptsprachen erhältlich. Unterstützung von Standards unterschiedlich. Java und XML

Einleitung Wo werden XML-Parser eingesetzt? Ein Beispiel:

Parserarten Zwei Parserarten: Nicht-validierende Parser: überprüfen nur, ob das Dokument wohlgeformt ist Validierende Parser: überprüfen zusätzlich, ob das Dokument sich an die vorgegebene DTD hält

Wohlgeformtheit Alle Attributwerte müssen in Anführungsstrichen stehen Jedes Tag muss ein Ende-Tag besitzen ( <br></br> ) oder mit einem "/" gleich beendet werden ( <br/> ) Elemente müssen sauber ineinander eingebettet sein ( nicht <sprache> <deutsch> </sprache> </deutsch> ) Der Name eines Attributs kommt innerhalb eines Elements nicht mehr als einmal vor Ein Attributwert darf keinen Verweis auf ein externes Entity enthalten Ein Attributwert darf kein "<" enthalten

SAX Simple API for XML entwickelt von der XML-DEV Mailinglist 1998 Version 1.0, inzwischen Version 2.0 serieller Mechanismus zur Verarbeitung von XML-Dokumenten ereignisgesteuertes Protokoll(Handler)

SAX Parser über ParserFactory instanzieren Handler implementieren und beim Parser registrieren Parser.parse() aufrufen

SAX DocumentHandler startDocument() endDocument() startElement() endElement() characters() ignorableWhitespace() processingInstruction() setDocumentLocator()

SAX

SAX ErrorHandler warning() error() fatalError()

SAX

SAX Entity Resolver DTDHandler resolveEntity() unparsedEntityDecl() notationDecl() DTDHandler

SAX 1.0 => SAX 2.0 Unterstützung von XML-Namespaces einheitliche Schnittstelle zum Lesen und Schreiben von Properties und Features Interface XMLFilter um Filter zwischen Anwendung und SAX-Treiber einzusetzen neue Namen für Interfaces: XMLReader für Parser, ContentHandler für DocumentHandler u.v.m.

Whitespace I Leerzeichen, Tabs, Zeilenschaltung u.ä. zwischen Tags um Quelltext lesbarer zu machen nicht signifikant, kann nur mit Hilfe der DTD erkannt werden wird in Methode ignorableWhitespace() des DocumentHandlers weitergegeben bei nichtvalidierenden Parsern unterschiedliche Behandlung

Whitespace II signifikant, z.B. Zeilenenden bei Quelltext, mehrere Leerzeichen zwischen Wörtern keine Möglichkeit für den Parser, die Signifikanz zu erkennen Lösung: entweder das Attribut xml:space="preserve" setzen oder die Daten in einem CDATA-Abschnitt kapseln

DOM Document Object Model Standard vom W3C 1998 DOM Level 1, DOM Level 2 Proposed Recommendation Das DOM definiert mehrere Interfaces mit denen Daten in einer Baumstruktur beschrieben werden können.

DOM

DOM Alle Knoten von Node abgeleitet Funktionalität zum Traversieren des Baumes in Node spezifische Eigenschaften in abgeleiteten Klassen weitere Interfaces für Notation, Entity, EntityReference, ProcessingInstruction

DOM Beispiel: <?xml version="1.0"?> <!--DOM Demo--> <xdoc> <Begruessung>Hallo <laut>XML</laut> Parser! </Begruessung> <Applaus art="anhaltend"/> </xdoc>

DOM und XML-Parser Die meisten Parser unterstützen ausschließlich DOM Level 1.0 DOM Level 1.0 spezifiziert nur, wie man mit dem DOM arbeiten kann, nicht wie ein DOM aus einem XML-Dokument erzeugt werden kann Unterschiedliche Implementierungen zumeist auf Grundlage von SAX

DOM und XML-Parser Beispiel JAXP von Sun: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { factory.setValidating(true); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse( new File(argv[0]) ); } catch (SAXParseException spe) { ... Fehlerbehandlung ausgeschnitten ... }

DOM Achtung: DOM wird komplett im Hauptspeicher gehalten Bei Verarbeitung von großen Dokumenten mit wenig Arbeitsspeicher Performanceverlust wegen Auslagerung des Speichers

XML-Parser in Java JAXP und Project X (Sun) Xerces-J (Apache) XP (James Clark) XML Parser v2 (Oracle)

JAXP Java API for XML Parsing stellt Schnittstellen zum Parsen und Manipulieren von XML-Dokumenten zur Verfügung zusammen mit Project X als Referenzimplementation eines Parsers Java Optional Package mit Paketnamen javax.xml.parsers Standarderweiterung des JDK, wird aber noch nicht zusammen damit ausgeliefert

JAXP Interfaces: SAXParserFactory SAXParser DocumentBuilderFactory FactoryConfigurationError ParserConfigurationException

JAXP Voraussetzungen, um einen Parser in das JAXP-Interface "pluggen" zu können: Er muß als character set encodings mindestens ascii, UTF8 und UTF16 unterstützen Er muß ein Dokument auf seine Wohlgeformtheit überprüfen können Er muß ein Dokument auf seine Gültigkeit anhand einer DTD überprüfen können

JAXP - Project X Project X 1998 als Technology Release 1 2000 Referenzimplementation für JAXP erster schneller Parser validierender und nichtvalidierender Parser Unterstützung von SAX 1.0, DOM Level 1.0 und XML Namespaces nicht open source, aber Community Source License

JAXP - Project X Vorteile: hohe Konformität zum XML-Standard hohe Geschwindigkeit gute Dokumentation ( Tutorial, Beispiele, source code )

Xerces-J xml.apache.org Projekt entstanden aus dem IBM XML4J XML4J gibt es weiterhin und baut auf Xerces-J auf aktuelle Version 1.2.1 bietet validierende und nichtvalidierende Parser unterstützt SAX 1.0 und 2.0, DOM Level 1, DOM Level 2 beta ansatzweise Unterstützung von XML-Schema

Xerces-J open source gute Dokumentation Achtung: Dieser Parser liest eine DTD, auch wenn er im nicht-validierenden Modus ist

XP Autor James Clark: Technical Editor der XML-Spezifikation zwei Designziele: 100% konform zum XML-Standard und möglichst schnell dafür Einschränkungen: kein validierender Parser, Unterstützung nur von SAX 1.0 keine DOM-Unterstützung nur 4 character encodings ErrorHandling "brutal"

XP Dokumentation nur API-Doc open source

XML Parser v2 (Oracle) validierende und nichtvalidierende Parser Unterstützung von SAX 1.0 und DOM Level 1.0 Besonderheit: XSLT Modul, mit dem sich XML mittels eines Stylesheets in HTML oder ein anderes Format umwandeln läßt. Java Beans Komponenten(DOMBuilderBean, TreeViewBean, XSLBean) kein open source, kein source code Beispiele + API-Dokumentation

Parsergenerator XMLBooster generiert XML-Parser für vorher definierte Datenstrukturen in Java, C, C++, Cobol und Delphi Zunächst Meta-Definition (proprietäres Format, DTD-ähnlich) für das benötigte XML-Format erstellen Dann Parser generieren lassen und in eigene Anwendung integrieren Falls ein geparstes Dokument nicht dem Format genügt, wird Fehlermeldung ausgegeben, ansonsten erhält man die in der Meta-Definition beschriebene Datenstruktur mit Inhalt zurück.

Parsergenerator XMLBooster Vorteile: Geschwindigkeit Daten gleich in eigener Datenstruktur verfügbar Nachteile: proprietäre Meta-Definition nicht frei verfügbar

Ende Noch Fragen?