XML Informationsmodelle



Ähnliche Dokumente
2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

... MathML XHTML RDF

XML Grundlagen Teil I

Java und XML 2. Java und XML

XML-Namensräume. Marc Monecke

Datenaustauschformate. Datenaustauschformate - FLV

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

Wiederholung: Beginn

DTD: Syntax-Zusammenfassung

IT-Zertifikat: Daten- und Metadatenstandards

Verteilte Systeme: Übung 4

Übungsaufgaben zu XML:

XML-Austauschformat für Sicherheitsdatenblätter

Objektorientierte Programmierung OOP

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

2. Einführung in Datenbanken und XML

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

XML 1. Einführung, oxygen. Ulrike Henny. IDE Summer School 2013, Chemnitz

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

XML und SOAP Einführung und Grundlagen

HTML5. Wie funktioniert HTML5? Tags: Attribute:

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis

XSL Templates. Mit Templates arbeiten. XSL Templates

Predictive Modeling Markup Language. Thomas Morandell

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

Webseiten und Web-Apps grafisch gestalten mit HTML5 Canvas ohne Flash und sonstige Tools

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Multimedia Technologie II

Workflow, Business Process Management, 4.Teil

5. Programmierschnittstellen für XML

1 Mathematische Grundlagen

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

XML-Programmierschnittstellen: SAX, DOM

5. Programmierschnittstellen für XML

Das Einsteigerseminar

XML Verarbeitung mit einer in Haskell eingebetteten DSL. Manuel Ohlendorf (xi2079)

Dokumenten- und Content Management

XML. Teil 3: Namensräume. Abteilung Informatik WS 02/03

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Grundbegriffe der Informatik

Ruhr.pm XML-Daten verarbeiten mit XML::LibXML Autor: Datum:

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Online-Publishing mit HTML und CSS für Einsteigerinnen

Vorlesung "Software-Engineering"

XSLT Vortrag. 2. Beispiel XML. 3. Anwendungsmöglichkeiten von XSLT 4. XHTML

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

Ressourcen-Beschreibung im Semantic Web

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 4 -

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

1 Software Engineering 1

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Objektorientierte Programmierung. Kapitel 12: Interfaces

Containerformat Spezifikation

Containerformat Spezifikation

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

SAP NetWeaver Gateway. 2013

Webseiten sind keine Gemälde. Webstandards für ein besseres Web. Webstandards für ein besseres Web

Daten in EPUB visualisieren und dynamisch aktualisieren

XML Schema vs. Relax NG

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

AK Medientechnologien 05 Delegation

PDF/A. Mar$n Fischer

Präsentation zum Thema XML Datenaustausch und Integration

Grundlagen der Künstlichen Intelligenz

Programmiersprachen und Übersetzer

Objektorientierte Konzepte und Notation in UML. Objekt Klasse Attribut Operation

Leichte-Sprache-Bilder

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Stellungnahme. E-Government-Standards Seite 1 von 5. Dokumente:...eCH Version: ech-kategorie:...standard. Datum der Eingabe:

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Step by Step Webserver unter Windows Server von Christian Bartl

Programmierkurs Java

Design Patterns 2. Model-View-Controller in der Praxis

PowerPoint 2010 Mit Folienmastern arbeiten

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Fragment Identifiers, Template Handles

Dokumentation Externe Anzeige von Evento Web Dialogen

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Software Engineering Klassendiagramme Assoziationen

Zustandsgebundene Webservices

Was meinen die Leute eigentlich mit: Grexit?

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

WEBSEITEN ENTWICKELN MIT ASP.NET

Kundeninformation PDF-Erzeugung in Adobe Illustrator, Adobe InDesign und QuarkXPress Datenprüfung und Datenübergabe

1. Zusammenfassung der letzten Vorlesung

Archiv - Berechtigungen

Transkript:

XML Vorlesung ETHZ, Sommersemester 2006 XML Informationsmodelle Erik Wilde 25.4.2006 http://dret.net/lectures/xml-ss06/ 25.4.2006 XML Vorlesung ETHZ SS 2006 1 Übersicht XML Namespaces für Schema-Kombination XML Information Set als abstrakte Sicht Information Items und ihre Properties Canonical XML als Anwendung des XML Infoset Programmieren mit XML APIs Document Object Model (DOM) Simple API for XML (SAX) 25.4.2006 XML Vorlesung ETHZ SS 2006 2 XML Informationsmodelle 1

XML Namespaces XML ermöglicht anwendungsabhängige Namen Namenskonflikte sind nahezu vorprogrammiert Problem der "friedlichen Koexistenz" von Namensräumen Lösung auf einfache Art: XML Namespaces Identifikation eines Namensraumes durch eine URI Verbindung eines lokalen Präfix mit der globalen URI Verwendung des Präfix im XML-Dokument jeder kann eigene Namespaces definieren keine formale Bedeutung der Namespace URI meistens Verweis auf DTD oder Standard-Dokument Namespace Support wichtig für XML Parser 25.4.2006 XML Vorlesung ETHZ SS 2006 3 Beispiel XML Namespaces <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:output method="html" indent="yes" /> <xsl:template match="/"> <xsl:apply-templates /> </xsl:template> <xsl:template match="kurs"> <html> <head> <title> <xsl:value-of select="titel"/> </title> </head> 25.4.2006 XML Vorlesung ETHZ SS 2006 4 XML Informationsmodelle 2

Anwendungen für Namespaces Kombination verschiedener Namensräume potentielle Namenskonflikte (XML hat lokale Namen) Schema, das andere Schemas wiederverwendet z.b. "Kurs-DTD" zusammen mit XHTML oder MathML Trend zur Modularisierung (XHTML 1.1) XSLT zum Namespace-Filtern sehr einfach Node-Tests können Namespaces erkennen alle XML-Standards unterstützen Namespaces 25.4.2006 XML Vorlesung ETHZ SS 2006 5 Namespaces und XML Processing keine eindeutige Zuordnung möglich Namespace durch 0-m Schemas beschrieben Schema kann Namen für 0-n Namespaces definieren Normalfall: Schema definiert Namespace targetnamespace Attribut des Schemas XML Schema benutzt Namespaces für die Elemente und Attribute der Schemasprache für Attribute in Instanzen für import und redefine von Schemas 25.4.2006 XML Vorlesung ETHZ SS 2006 6 XML Informationsmodelle 3

XML Information Set (XML Infoset) XML definiert Syntax für strukturierte Daten eigentlich wichtig ist die Struktur die Syntax ist Nebensache und irritiert manchmal XML Infoset definierte eine abstrakte Sicht Struktur aus Information Items keine Schnittstelle, sondern nur ein Modell OSI taucht immer wieder auf... XML Infoset als ASN.1 abstrakte Syntax XML als (eine mögliche...) Codierung des Baumes 25.4.2006 XML Vorlesung ETHZ SS 2006 7 Beispiel (XML) <?xml version="1.0"?> <!DOCTYPE kurs SYSTEM "kurs.dtd"> <kurs> <titel kurz="xml">xml - Grundlagen und Umfeld</titel> <referent email="xml@dret.net" homepage="http://dret.net/"> <vorname>erik</vorname> <name>wilde</name> <organisation homepage="http://www.tik.ee.ethz.ch/">eth Zürich</organisation> </referent> <referent>... </referent> <termin date="20000512" location="technopark"/> <inhalt>... </inhalt> </kurs> 25.4.2006 XML Vorlesung ETHZ SS 2006 8 XML Informationsmodelle 4

Infoset eines XML Dokuments kurz kurz titel titel kurs kurs termin termin inhalt inhalt date date email email homepage homepage referent email email vorname referent name name location location organisation name name vorname organisation homepage homepage 25.4.2006 XML Vorlesung ETHZ SS 2006 9 Entstehung des Infosets mehr als ein Parse Tree XML definiert die XML Syntax in EBNF-Produktionen XML Infoset ist eine Abstraktion der Syntax viele Syntax-Details werden im Infoset ignoriert Teile der Struktur werden interpretiert (z.b. Referenzen) ändert sich je nach Parser-Optionen z.b. Attribut-Defaults erscheinen erst in valid Infosets die Typen von Attributen kommen auch aus der DTD es kann verschiedene Schemas geben z.b. eine DTD und ein XML Schema für ein Dokument 25.4.2006 XML Vorlesung ETHZ SS 2006 10 XML Informationsmodelle 5

XML Dokumente und Infoset/DOM <?xml version="1.0"?> <!DOCTYPE kurs SYSTEM "kurs.dtd"> <kurs> <titel kurz="xml">xml - Grundlagen und Umfeld</titel> <referent email="xml@dret.net" homepage="http://dret.net/"> <vorname>erik</vorname> <name>wilde</name> <organisation homepage="...">eth Zürich</organisation> </referent> <referent>... </referent> <inhalt>... </inhalt> XML Parser email email homepage homepage kurz kurz titel titel referent referent kurs kurs email email vorname vorname termin termin referent referent name name inhalt inhalt date date location location organisation organisation </kurs> vorname vorname name name organisation organisation homepage homepage u.u. Schema-Information (z.b. Attribut-Defaults aus DTD oder XML Schema) 25.4.2006 XML Vorlesung ETHZ SS 2006 11 XML Infoset Information Items 11 Typen von Information Items: 1. Document Information Item 2. Element Information Items 3. Attribute Information Items 4. Processing Instruction Information Items 5. Unexpanded Entity Reference Information Items 6. Character Information Items 7. Comment Information Items 8. Document Type Declaration Information Item 9. Unparsed Entity Information Items 10. Notation Information Items 11. Namespace Information Items 25.4.2006 XML Vorlesung ETHZ SS 2006 12 XML Informationsmodelle 6

Infoset als Menge von Infoset Items XML Infoset als Item Menge keine definierte Reihenfolge keine spezielle Syntax Referenzen aufeinander ergeben die Struktur XML Infoset Standard definiert die Items und ihre Properties aber keine Repräsentation oder kein API 25.4.2006 XML Vorlesung ETHZ SS 2006 13 Document Item repräsentiert das gesamte Dokument Startpunkt der Hierarchie von Information Items genau ein Document Item pro Dokument definiert durch neun Properties untergeordnete Items Children (z.b. Kommentare) und das Document Element Notations und Unparsed Entities der DTD Base URI des Dokuments Information aus der XML Deklaration Character Encoding, Version, Standalone Deklaration Flag das die komplette DTD-Verarbeitung signalisiert 25.4.2006 XML Vorlesung ETHZ SS 2006 14 XML Informationsmodelle 7

Element Items repräsentiert ein Element <p id="p5">hallo <em>da!</em></p> definiert durch neun Properties Namespace Name, Local Name, Namespace Prefix zugeordnete Items Children (Elemente, Zeichen, Kommentare,...) Attribute und Attribute mit Namespace Deklarationen gültige Namespaces Base URI des Elements Referenz auf das Eltern-Item (Element/Document) 25.4.2006 XML Vorlesung ETHZ SS 2006 15 Attribute Items Attribute sind eigenständige Items sind jeweils genau einem Element zugeordnet definiert durch acht Properties Namespace Name, Local Name, Namespace Prefix normalisierter Wert des Attributs + specified Flag Behandlung von Whitespace, Line Endings, Entities Attributtyp (kommt aus dem Schema) Referenzen auf andere Items (z.b. IDREF Attribute) Referenz auf das Element des Attributs Namespace Deklarationen sind Attribute werden zusätzlich als Namespace Items repräsentiert 25.4.2006 XML Vorlesung ETHZ SS 2006 16 XML Informationsmodelle 8

Character Items für jedes Zeichen in XML Character Data müde, müde oder müde Character Entities repräsentieren ein Zeichen jedes Zeichen hat drei Properties der ISO 10646 (Unicode) Character Code erlaubt tausende von Zeichen ein Flag für "Element Content Whitespace" <name> <vorname>erik</vorname> </name> kann nur mit der Elementdeklaration beantwortet werden Verweis auf das enthaltende Item 25.4.2006 XML Vorlesung ETHZ SS 2006 17 Comment Items repräsentiert Kommentare im Dokument <!-- Kommentartext --> wird durch zwei Properties dargestellt Text des Kommentares Markup in Kommentaren wird ignoriert Verweis auf das enthaltende Item Document oder Element Information Item Kommentare in der DTD werden ignoriert 25.4.2006 XML Vorlesung ETHZ SS 2006 18 XML Informationsmodelle 9

Document Type Declaration Item repräsentiert die DTD eines Dokuments muss nicht existieren (XML ohne DTD ist erlaubt) Teile sind in anderen Items (Entities und Notations) definiert durch vier Properties System und Public Identifier (falls vorhanden) Verweise auf alle Processing Instructions in der DTD Verweise auf die jeweiligen Processing Instruction Items ein Verweis auf das Document Item damit kein Zugriff auf viele Informationen insbesondere Element- und Attributdeklarationen 25.4.2006 XML Vorlesung ETHZ SS 2006 19 Namespace Items repräsentieren in-scope Namespaces d.h. alle für ein Element gültigen Namespaces sämtliche Deklarationen auf und "über" dem Element definiert durch zwei Properties der Namespace Name (d.h. die URI) der Namespace Prefix Namespace-Deklarationen tauchen zweimal auf als Attribute Information Item als Namespace Information Item(s) oftmals mehrfach: auf allen Nachkommen des Elementes 25.4.2006 XML Vorlesung ETHZ SS 2006 20 XML Informationsmodelle 10

Nicht alles ist im Infoset die Ordnung von Attributen im Start-Tag Whitespace aus Start- und End-Tags Unterscheidung von leeren Elementen <hallo></hallo> oder <hallo/> praktisch alles aus der DTD die Identifier der DTD sind im Infoset Processing Instructions in der DTD sind im Infoset Unterschied Zeichen/Character Entity ü und ü und ü sind nicht unterscheidbar 25.4.2006 XML Vorlesung ETHZ SS 2006 21 Nicht alles muss im Infoset sein Applikationen sind frei in der Auswahl können Items und/oder Properties weglassen können Items und/oder Properties dazunehmen XML Infoset ist ein Punkt in einem Kontinuum ein extrem ist ein zeichengetreues Modell wird z.b. benötigt für XML-Editoren andere Applikationen, die Round-Trips benötigen anderes Extrem ist eine starke Abstraktion wenn man von XML eigentlich gar nichts wissen will XML Infoset als vom W3C gesetzte Marke 25.4.2006 XML Vorlesung ETHZ SS 2006 22 XML Informationsmodelle 11

Canonical XML XML ist sehr syntax-zentriert Vergleich von XML-Dokumenten ist schwierig Whitespace, Attribute order, Entities, Namespaces,... Canonical XML legt eine Normalisierung fest mache ein XML Infoset aus dem Dokument generiere aus diesem Baum XML nach festen Regeln bessere Basis für Vergleiche als reines XML allerdings aufwendige Operation noch nicht unterstützt von der meisten Software interessant auch für digitale Signaturen von XML 25.4.2006 XML Vorlesung ETHZ SS 2006 23 APIs: Zugriff auf XML Dokumente XML-Dokumente sind strukturierten Daten Problem der definierten Interfaces Zugriff oder Speicherung nicht unbedingt als XML XML Information Set: abstrakte Sicht Standards beziehen sich meist auf XML Infoset syntax-unabhängige abstrakte Sicht von XML jedoch: nur ein Modell, keine definierte Schnittstelle! Programmierschnittstellen für XML-Dokumente Document Object Model (DOM) Simple API for XML (SAX) 25.4.2006 XML Vorlesung ETHZ SS 2006 24 XML Informationsmodelle 12

Document Object Model (DOM) entstanden für portables JavaScript Programmierinterface für Dokumente unabhängig vom Dokumentenmodell core definiert einen strukturellen Kern HTML definiert HTML-spezifische Aspekte XML erlaubt den Zugriff auf XML-Dokumente unabhängig von der Programmiersprache Definition in Interface Definition Language (IDL) language bindings für diverse Sprachen bisher ECMAScript und Java 25.4.2006 XML Vorlesung ETHZ SS 2006 25 DOM Dokumentenmodell das DOM Modell beschreibt logische Struktur eines Dokumentes Zugriff auf Teile eines Dokumentes Manipulation eines Dokumentes core definiert allgemeine Eigenschaften 12 Objekttypen (u.u. abgeleitete Typen) HTML und XML bilden separate Einheiten Abbildung von HTML Elementen auf Objekte u.u. Methoden (z.b. InsertCell in Tabellenzeilen) 25.4.2006 XML Vorlesung ETHZ SS 2006 26 XML Informationsmodelle 13

DOM Levels DOM Level 0 definiert von Netscape 3.0 als JavaScript API keine W3C Spezifikation DOM Level 1 Oktober 1998, Support für HTML und XML 1.0 DOM Level 2 abgeschlossen November 2000 DOM1 + Namespaces, CSS, Events, Traversal DOM Level 3 momentan in Entwicklung, Alignment mit Infoset 25.4.2006 XML Vorlesung ETHZ SS 2006 27 DOM1 Modulhierarchie 25.4.2006 XML Vorlesung ETHZ SS 2006 28 XML Informationsmodelle 14

DOM2 Modulhierarchie 25.4.2006 XML Vorlesung ETHZ SS 2006 29 DOM3 Modulhierarchie 25.4.2006 XML Vorlesung ETHZ SS 2006 30 XML Informationsmodelle 15

DOM vs. Simple API for XML (SAX) Standardisierungsweg DOM wird vom W3C entwickelt (definierter Weg) SAX wird von einer informellen Gruppe definiert DOM bietet eine Datenstruktur komplexer und leistungsfähiger SAX bietet eine Sequenz von Events einfacher, aber limitiert (praktisch kein Kontext) viele Produkte unterstützen DOM und SAX SAX zum Lesen von Daten und Erzeugen von DOM DOM traversieren und SAX Events erzeugen 25.4.2006 XML Vorlesung ETHZ SS 2006 31 Simple API for XML (SAX) eventbasiertes Interface zu XML gut geeignet für grosse Dokumente gut geeignet für sequentielle Bearbeitung weniger geeignet für komplexe Bearbeitung Parser generiert Ereignisse für Start und Ende von Elementen inkl. Attribute Kommentare, Zeichenketten, Entities und alles andere, was im Dokument ist... z.b. Apache's Xerces: SAX1/2, DOM1/2 DOM basiert meist auf SAX-Primitiven 25.4.2006 XML Vorlesung ETHZ SS 2006 32 XML Informationsmodelle 16

Aufbau eines DOM/SAX-Parsers DOM/SAX Application Parser SAX Events DOM Tree Builder DOM Calls Interpretation and SAX Event Generation Scanner (lexical analysis) + Parser (syntactic analysis) <?xml version='1.0'?><!doctype ><elem attr=' '> 25.4.2006 XML Vorlesung ETHZ SS 2006 33 Zusammenfassung XML Namespaces sichern eindeutige Namen Trennung in URI und lokalen Namen definierte Namespaces für offene Standards XML als abstraktes Datenmodell XML Infoset und Canonical XML als Normalform Zugriff auf die Daten über APIs DOM als Baum-basiertes Interface zu Dokumenten SAX als simplere Variante für Streaming 25.4.2006 XML Vorlesung ETHZ SS 2006 34 XML Informationsmodelle 17