XML: Extensible Markup Language

Slides:



Advertisements
Ähnliche Präsentationen
Grundlagen des relationalen Modells
Advertisements

Deduktive Datenbanken
XML-Datenmodellierung und Web-Services
Das Relationale Modell
Verarbeiten und Präsentieren von
Grundlagen des relationalen Datenmodells
Extensible Markup Language
Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML
Relationale und Objekt-relationale Datenbanken
Vorlesung: Prof. Norbert Fuhr
Einführung in Informationssysteme
SQL standardisierte Datendefinitions (DDL)- Datenmanipulations (DML)-
XML-Datenmodellierung und Web-Services XML Datenmodell Schemabeschreibungssprachen Anfragesprachen: XPath und XQuery Web-Services Überblick WSDL UDDI SOAP.
Datenbanksysteme Schwerpunkte: Datenbanksystem (DBS): Datenbank (DB):
Dipl.- Dok. Rusalka Offer
Kapitel 5 SQL DDL + DML.
Kapitel 2 SQL Anfragen.
Kapitel 2 SQL Anfragen.
Hands On – Einführung in XML
Speicherung globaler Relationen: Fragementierung und Allokation
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Baumstrukturen Richard Göbel.
Bäume als Datenmodelle
DOM (Document Object Model)
Algorithmen und Datenstrukturen
XINDICE The Apache XML Project Name: Jacqueline Langhorst
XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.
XML - Abfragesprache Xpath. Problemstellung Unsere XML-Datei steht und wir wollen alle 1. Titel aller vergangenen Sendungen automatisch aus den Playlists.
XML-Schema HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke.
Eine Biografie aus ADB/NDB als XML Datenbanken vs. Markup Prof Dr. Manfred Thaller WS 2009 / 2010 Referent: Bilal Erkin.
HTML - Eine erste Annäherung
Syntax von Prolog & Familiendatenbasis
XML Standardisierungen und Abfragesprachen
Einführung XML XML Einführung Andreas Leicht.
Katharina Bellon Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Verarbeitung von XML-Strömen.
EXtensible Server Pages von Belrhiti El mostafa. Inhalt Was ist XSP ? Wichtige XSP Tags Erstellungsmöglichkeiten Die Basis der XSP.
XPointer Die Xpointer beschreiben einen Ort oder Bereich innerhalb einer XML-Instanz. Die XPointer bauen auf der XML Path Language auf. Die XPointer ist.
Xlink / Xpointer - Framework
Kapitel 4 SQL: Grundlagen.
XQuery-Anfragen Spezifikations- und Selektionsmethoden für Daten und Dienste Markus Mauch.
1 XML und Datenbanken Kapitel 7: Modellierung, Teil 1 Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik
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?
1 Seminar 2004/2005 von Auszeichnungssprache XPath Ein Referat von Wei CAI
XML Path Language XPath
Quilt: Eine XML Anfragesprache für heterogene Datenquellen
XML - Konzepte XHTML XML Base XPath XInclude XLink XForms XPointer
Historische Entwicklung relationaler DBMS
Standardisierte -Datendefinitions (DDL)- -Datenmanipulations (DML)- -Anfrage (Query)-Sprache derzeit aktueller Standard ist SQL 99 und SQL3 (2003) objektrelationale.
Datenbanktechnologie Daniel Ebner SS Mai Ulrike Lohner.
Standardisierte -Datendefinitions (DDL)- -Datenmanipulations (DML)- -Anfrage (Query)-Sprache derzeit aktueller Standard ist SQL 99 und SQL3 (2003) objektrelationale.
Historische Entwicklung relationaler DBMS
Java für Fortgeschrittene
XPath Was ist XPath XPath ist eine Syntax für das Definieren der Teile eines XML-Dokumentes. XPath benutzt Pfade, um XML-Elemente zu definieren. XPath.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Verarbeiten von XML-Daten
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
Relationale Datenbanken I
© 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.
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.
Technische Universität München Übung zur Einführung in die Informatik für Hörer anderer Fachrichtungen im Sommersemester 2010 Sitzung 8: Die relationale.
 Präsentation transkript:

XML: Extensible Markup Language Datenmodell Schemabeschreibung Anfragesprachen

HTML-Datenmodell <UL> <LI> Curie <LI> Sokrates <LI> Mäeutik <LI> Bioethik Kein Schema Nur Insider können die beiden Listen interpretieren: "Oben: Professoren" "Unten: Vorlesungen" Wenig geeignet als Datenaustauschformat HTML-Tags tragen keine semantische Information HTML-Renderer nutzen die Tags lediglich zur Präsentation (Formatierung) der Daten

Relationales Datenmodell Vorlesungen VorlNr Titel SWS Gelesen Von 5001 Grundzüge 4 2137 5041 Ethik 2125 5043 Erkenntnistheorie 3 2126 5049 Mäeutik 2 4052 Logik 5052 Wissenschaftstheorie 5216 Bioethik 5259 Der Wiener Kreis 2133 5022 Glaube und Wissen 2134 4630 Die 3 Kritiken Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel 232 2127 Kopernikus C3 310 2133 Popper 52 2134 Augustinus 309 2136 Curie 36 2137 Kant 7 Schema ist vorgegeben und man kann nur schema-konforme Daten einfügen (Problem: Ausnahmen  NULL-Werte) Bedeutung der Daten wird durch das Schema definiert Kein (Inter-DBMS-)Datenaustauschformat

XML-Datenmodell Das XML-Datenmodell liegt zwischen HTML … Schemalos Beliebiges Format, solange die (laxe) HTML-Syntax respektiert wird … und Relationen Rigides Schema Keinerlei Ausnahmen XML: Semi-strukturierte Daten XML-Dokumente können einem optionalen Schema gehorchen Schemalose Dokumente sind problemlos möglich und interpretierbar

Unsere Beispiel-Daten in XML ... <Professoren> <ProfessorIn>Curie</ProfessorIn> <ProfessorIn>Sokrates</ProfessorIn> </Professoren> <Vorlesungen> <Vorlesung>Mäeutik</Vorlesung> <Vorlesung>Bioethik</Vorlesung> </Vorlesungen> Semantische Tags (Marken): Geben die Bedeutung der Elemente an, immer paarweise <tag> content </tag>

XML-Daten mit Schema (DTD) <?xml version="1.0" encoding='ISO-8859-1'?> <!-- obige Zeile ist der Prolog, diese Zeile ist ein Kommentar --> <!-- Schema als DTD --> <!DOCTYPE Buch[ <!ELEMENT Buch (Titel, Autor*, Verlag)> <!ATTLIST Buch Jahr CDATA #REQUIRED> <!ELEMENT Titel (#PCDATA)> <!ELEMENT Autor (#PCDATA)> <!ELEMENT Verlag (#PCDATA)> ]> <!-- Wurzelelement--> <Buch Jahr="2001"> <Titel>Datenbanksysteme: Eine Einführung</Titel> <Autor>Alfons Kemper</Autor> <Autor>Andre Eickler</Autor> <Verlag>Oldenbourg Verlag</Verlag> </Buch>

Die hierarchische Struktur im Bild

DTD: Rekursive Strukturen <?xml version="1.0" encoding='ISO-8859-1'?> <!-- Schema als DTD --> <!DOCTYPE Bauteil [ <!ELEMENT Bauteil (Beschreibung, Bauteil*)> <!ATTLIST Bauteil Preis CDATA #REQUIRED> <!ELEMENT Beschreibung (#PCDATA)> ]> <!-- Wurzelelement--> <Bauteil Preis="350000"> <Beschreibung>Maybach 620 Limousine</Beschreibung> <Bauteil Preis="50000"> <Beschreibung>V12-Biturbo Motor mit 620 PS</Beschreibung> <Bauteil Preis="2000"> <Beschreibung>Nockenwelle</Beschreibung> </Bauteil> <Bauteil Preis="7000"> <Beschreibung>Kühlschrank für Champagner</Beschreibung>

XML- Dokument der Universität <?xml version="1.0" encoding='ISO-8859-1'?> <Universität UnivName="Virtuelle Universität der Großen Denker"> <UniLeitung> <Rektor>Prof. Sokrates</Rektor> <Kanzler>Dr. Erhard</Kanzler> </UniLeitung> <Fakultäten> <Fakultät> <FakName>Theologie</FakName> <ProfessorIn PersNr="2134"> <Name>Augustinus</Name> <Rang>C3</Rang> <Raum>309</Raum> <Vorlesungen> <Vorlesung VorlNr="5022"> <Titel>Glaube und Wissen</Titel> <SWS>2</SWS> </Vorlesung> </Vorlesungen> </ProfessorIn> </Fakultät> XML- Dokument der Universität

<Fakultät> <FakName>Physik</FakName> <ProfessorIn PersNr="2136"> <Name>Curie</Name> <Rang>C4</Rang> <Raum>36</Raum> </ProfessorIn> <ProfessorIn PersNr="2127"> <Name>Kopernikus</Name> <Rang>C3</Rang> <Raum>310</Raum> </Fakultät> <FakName>Philosophie</FakName> ... </Fakultäten> </Universität>

XML Namensräume ... <Universität xmlns="http://www-db.in.tum.de/Universitaet" xmlns:lit="http://www-db.in.tum.de/Literatur" UnivName="Virtuelle Universität der Großen Denker"> <UniLeitung> <Vorlesung> <Titel> Informationssysteme </Titel> <lit:Buch lit:Jahr="2004"> <lit:Titel>Datenbanksysteme: Eine Einführung</lit:Titel> <lit:Autor>Alfons Kemper</lit:Autor> <lit:Autor>Andre Eickler</lit:Autor> <lit:Verlag>Oldenbourg Verlag</lit:Verlag> </lit:Buch> </Vorlesung>

XML-Schema: mächtiger als DTDs <?xml version="1.0" encoding='ISO-8859-1'?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www-db.in.tum.de/Universitaet"> <xsd:element name="Universität" type="UniInfoTyp"/> <xsd:complexType name="UniInfoTyp"> <xsd:sequence> <xsd:element name="UniLeitung"> <xsd:complexType> <xsd:element name="Rektor" type="xsd:string"/> <xsd:element name="Kanzler" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="Fakultäten">

XML-Schema: mächtiger als DTDs <xsd:element name="Fakultäten"> <xsd:complexType> <xsd:sequence> <xsd:element name="Fakultät" minOccurs="0" maxOccurs="unbounded" type="Fakultätentyp"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:attribute name="UnivName" type="xsd:string"/>

<xsd:complexType name="FakultätenTyp"> <xsd:sequence> <xsd:element name="FakName" type="xsd:string"/> <xsd:element name="ProfessorIn" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:element name="Name" type="xsd:string"/> <xsd:element name="Rang" type="xsd:string"/> <xsd:element name="Raum" type="xsd:integer"/> <xsd:element name="Vorlesungen" minOccurs="0" type="VorlInfo"/> </xsd:sequence> <xsd:attribute name="PersNr" type="xsd:ID"/> </xsd:complexType> </xsd:element>

<xsd:complexType name="VorlInfo"> <xsd:sequence> <xsd:element name="Vorlesung" minOccurs="1" maxOccurs="unbounded"> <xsd:complexType> <xsd:element name="Titel" type="xsd:string"/> <xsd:element name="SWS" type="xsd:integer"/> </xsd:sequence> <xsd:attribute name="VorlNr" type="xsd:ID"/> <xsd:attribute name="Voraussetzungen" type="xsd:IDREFS"/> </xsd:complexType> </xsd:element> </xsd:schema>

Verweise in XML-Dokumenten XML ist ideal für die Modellierung von Hierarchien Hierarchie entsteht durch Schachtelung von Elementen Genau diese Situation tritt im Uni-Beispiel auf: Uni Fakultäten Professoren Vorlesungen

Modellierung eines Stammbaums "Kinder haben zwei Elternteile." Also kann man ein Kind nicht mehr als Sub-Element einer Person modellieren. Wem soll man es zuordnen (Vater oder Mutter)? Hier kann man mit dokumen-internen Verweisen (IDREF und IDREFS) modellieren.

Graphische Darstellung des XML-Dokuments

Familie.xml <!DOCTYPE Stammbaum [ <!ELEMENT Stammbaum (Person*)> <!ELEMENT Person (Name)> <!ELEMENT Name (#PCDATA)> <!ATTLIST Person id ID #REQUIRED Mutter IDREF #IMPLIED Vater IDREF #IMPLIED Kinder IDREFS #IMPLIED> ]> <Stammbaum> <Person id="a" Kinder="k ab"> <Name>Adam</Name> </Person> <Person id="e" Kinder="k ab"> <Name>Eva</Name> </Person> <Person id="k" Mutter="e" Vater="a"> <Name>Kain</Name> </Person> <Person id="ab" Mutter="e" Vater="a"> <Name>Abel</Name> </Person> </Stammbaum>

XML-Anfragesprache XQuery XQuery wird durch das W3C derzeit als Anfragesprache für XML-Daten standardisiert (Juli 2006: Candidate Recommendation) XQuery ist ein kompositionale, funktionale Sprache, in der sowohl Werte als auch XML-Knoten manipuliert werden können XQuery bettet XPath ein, ein Anfragesprache, in der Pfadausdrücke in XML-Knotenhierarchien spezifiziert werden können Ausgehend von Referenzknoten, werden Lokalisierungspfade bestehend aus einzelnen Lokalisierungsschritten formuliert Jeder Lokalisierungsschritt besteht aus bis zu drei Teilen: Achse::Knotentest[Prädikat]

XPath-Achsen self: Hierbei handelt es sich um den Referenzknoten. attribute: Hierunter fallen alle Attribute des Referenzknotens -- falls er überhaupt welche besitzt. child: Entlang dieser Achse werden alle direkten Unterelemente bestimmt. descendant: Hierunter fallen alle direkten und indirekten Unterelemente, also die Kinder und deren Kinder u.s.w. descendant-or-self: Wie oben, außer dass der Referenzknoten hier auch dazu gehört. parent: Der Vaterknoten des Referenzknotens wird über diese Achse ermittelt. ancestor: Hierzu zählen alle Knoten auf dem Pfad vom Referenzknoten zur Wurzel des XML-Baums.

Achsen … cont‘d ancestor-or-self: Wie oben, außer dass der Referenzknoten auch mit eingeschlossen wird. following-sibling: Dies sind die in Dokumentreihenfolge nachfolgenden Kinder des Elternknotens von self. preceding-sibling: Hierbei handelt es sich um die in Dokumentreihenfolge vorangehenden Kinder des Elternknotens von self. following: Alle Knoten, die in Dokumentreihenfolge nach dem Refernzknoten aufgeführt sind. Die Nachkommen (descendant) des Referenzknotens gehören aber nicht dazu. preceding: Alle Knoten, die im Dokument vor dem Referenzknoten vorkommen -- allerdings ohne die Vorfahren (ancestor).

XPath-Ausdrücke (Beispiele) doc("Uni.xml")/child::Universität[attribute::UnivName= "Virtuelle Universität der Großen Denker"] Als Ergebnis bekommt man den gesamten Baum unseres Beispieldokuments doc("Uni.xml")/child::Universität/child::Fakultäten/child::Fakultät/ child::FakName <FakName>Theologie</FakName> <FakName>Physik</FakName> <FakName>Philosophie</FakName> Äquivalent für unser Beispiel: doc("Uni.xml")/descendant-or-self::FakName

XPath-Ausdrücke (Beispiel) doc("Uni.xml")/child::Universität/attribute::UnivName Ergebnis (XML-Attribut): UnivName="Virtuelle Universität der Großen Denker"

XPath-Ausdrücke (Beispiele) doc("Uni.xml")/child::Universität/child::Fakultäten/ child::Fakultät[child::FakName="Philosophie"]/ child::ProfessorIn[child::Rang="C4"]/child::Vorlesungen/ child::Vorlesung/child::Titel <Titel>Ethik</Titel> <Titel>Mäeutik</Titel> <Titel>Logik</Titel> <Titel>Erkenntnistheorie</Titel> <Titel>Wissenschaftstheorie</Titel> <Titel>Bioethik</Titel> <Titel>Grundzüge</Titel> <Titel>Die 3 Kritiken</Titel>

XPath-Ausdrücke (Beispiele) doc("Uni.xml")/child::Universität/child::Fakultäten/ child::Fakultät/child::FakName[parent::Fakultät/ child::ProfessorIn/child::Vorlesungen] <FakName>Theologie</FakName> <FakName>Philosophie</FakName>

XPath-Ausdrücke (Beispiele) doc("Uni.xml")/child::Universität/child::Fakultäten/ child::Fakultät[/descendant::Vorlesungen]/child::FakName child::Fakultät[descendant::Vorlesungen]/child::FakName ?

doc("Uni.xml")/child::Universität/child::Fakultäten/ child::Fakultät[position()=2] Es wird die zweite (in document order) Fakultät ausgegeben: <Fakultät> <FakName>Physik</FakName> <ProfessorIn PersNr="P2136"> <Name>Curie</Name> <Rang>C4</Rang> <Raum>36</Raum> </ProfessorIn> <ProfessorIn PersNr="P2127"> <Name>Kopernikus</Name> <Rang>C3</Rang> <Raum>310</Raum> </Fakultät>

XPath-Ausdrücke (Beispiele) doc("Uni.xml")/child::Universität/child::Fakultäten/ child::Fakultät[child::ProfessorIn/child::Vorlesungen/ child::Vorlesung/child::Titel="Mäeutik"]/child::FakName <FakName>Philosophie</FakName>

XPath: Verkürzte Syntax . aktueller Referenzknoten ( self::node() ) .. Vaterknoten ( parent::node() ) a/b/c child::a/child::b/child::c a//b child::a/descendant-or-self::node()/child::b @a Attributzugriff ( attribute::a )

XPath-Ausdrücke (Beispiele für verkürzte Syntax) doc("Uni.xml")/Universität/Fakultäten/ Fakultät[FakName="Physik"]//Vorlesung Fakultät[position()=2]//Vorlesung doc("Uni.xml")/Universität/Fakultäten/Fakultät[2]//Vorlesung Fakultät[FakName="Physik"]/ProfessorIn/ Vorlesungen/Vorlesung