Semistrukturierte Daten



Ähnliche Dokumente
Semistrukturierte Daten

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Datenaustauschformate. Datenaustauschformate - FLV

WEBSEITEN ENTWICKELN MIT ASP.NET

2. Einführung in Datenbanken und XML

... MathML XHTML RDF

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

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

XML Extensible Markup Language

Inhalt VU Semistrukturierte Daten 1. Struktur von Dokumenten. Semistrukturierte Daten. Entwicklung von XML. Aufbau von XML

Barrierefreie Webseiten erstellen mit TYPO3

Java und XML 2. Java und XML

Tobias Hauser. XML-Standards. schnell+kompakt

XML - Extensible Markup Language. Agenda - Oracle XML DB

IT-Zertifikat: Daten- und Metadatenstandards

Informationen zu den regionalen Startseiten

Containerformat Spezifikation

XML Extensible Markup Language

Containerformat Spezifikation

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

X-Technologien. Ein Überblick. Ulrike Henny. IDE Summer School 2013, Chemnitz

5. Programmierschnittstellen für XML

XML Schema vs. Relax NG

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

Das Einsteigerseminar

Informatik 12 Datenbanken SQL-Einführung

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

Erstellen eines Formulars

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

1 Was ist XML? Hallo XML! Kommentare in XML 52

XML und SOAP Einführung und Grundlagen

Die Excel Schnittstelle - Pro Pack

Professionelle Seminare im Bereich MS-Office

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

5. Programmierschnittstellen für XML

Verteilte Anwendungen. Teil 2: Einführung in XML

OP-LOG

Web2Lead. Konfiguration

Content Management System. «Rainbow Basis» Grundlagen. Einfache Kursverwaltung

Lizenz Verwaltung. Adami Vista CRM

32.4 Anpassen von Menüs und Symbolleisten 795i

Kapitel 3. Codierung von Text (ASCII-Code, Unicode)

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Leitfaden für den Import von Artikeln, Sicherheitsdatenblättern, Leistungserklärungen und CE-Kennzeichnungen

XML 1.1. Grundlagen. Heiko Schröder. 4. Ausgabe, 1. Aktualisierung, Oktober 2013 XML11

XSL Templates. Mit Templates arbeiten. XSL Templates

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

1 Mathematische Grundlagen

Übungsaufgaben zu XML:

Hilfedatei der Oden$-Börse Stand Juni 2014

Hilfe zur Dokumentenverwaltung

Informationen zur Verwendung von Visual Studio und cmake

Präsentation zum Thema XML Datenaustausch und Integration


Datenbanken Kapitel 2

Summenbildung in Bauteiltabellen mit If Then Abfrage

Kleines Handbuch zur Fotogalerie der Pixel AG

Aufklappelemente anlegen

Textkodierung mit XML

Das EDV-Cockpit mit MindManager für SharePoint

Es gibt situationsabhängig verschiedene Varianten zum Speichern der Dokumente. Word bietet im Menü DATEI unterschiedliche Optionen an.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Einfügen von Bildern innerhalb eines Beitrages

Strukturierung von Inhalten

Abschnitte. Abschnittswechsel einfügen

Schiller-Gymnasium Hof

Multimedia Technologie II

5 Zweisprachige Seiten

Semantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph!

Semistrukturierte Daten

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

Formale Sprachen und Grammatiken

Erstellen von x-y-diagrammen in OpenOffice.calc

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

IINFO Storyboard

31. März 2015 L A TEX Struktur und Formatieren

03 XML Grundlagen. Manuel Burghardt Lehrstuhl für Medieninformatik

SANDBOXIE konfigurieren

Manual, Version 4.2c: Publikation von Medienmitteilungen auf bs.ch.

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Da die Bedienung des Editors viele Möglichkeiten aufweist, aber auch etwas Übung voraussetzt, haben wir ihm ein eigenes Unterkapitel gewidmet.

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

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

ipin CSV-Datenimport (Mac OS X)

XSL und XSLT. Inhalt. Mathias Heilig XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Textauszeichnung mit XML

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

Webseite in XML Kurzeinführung

Transkript:

Semistrukturierte Daten Sommersemester 2007 Teil 1: XML-Einführung 1.1. "Semistrukturierte" Daten 1.2. Entwicklung von XML 1.3. Aufbau von XML-Dokumenten

1.1. "Semistrukturierte Daten" "Wesen" von semistrukturierten Daten Dokumente vs. Daten (im Web) 2

"Wesen" von Semistrukturierten Daten (relationales) Datenmodell ist eventuell zu starr: flexiblere Struktur (als Tabellen mit fix vorgegebenen Spalten mit fixem Datentyp) Schema ist nicht vorhanden (oder nicht sichtbar für den Benutzer): Selbstbeschreibend (Strukturinformation als Teil der Daten und nicht in explizitem Schema) Ein Schema kann optional vorhanden sein. 3

Flexible Struktur Die Suche nach Modellen für flexible und unregelmäßige Datenstruktur führte zu Modellen für semistrukturierte Daten wenn relationale Datenbank viele Nullwerte hätte wenn Daten unterschiedlichen Typ haben können. Gut geeignete Datenstruktur: Baum oder allgemeiner: Graph Wir können übliche DB Formate (Tabellen, OO-DB) in diesem Format darstellen. 4

Selbstbeschreibende Daten In Datenbanken wird zuerst ein Schema definiert, d.h.: Struktur + erlaubte Typen Bei Daten am Web ist häufig kein Schema vorhanden (bzw. für den Benutzer nicht sichtbar). Semistrukturierte Daten: Selbstbeschreibende Daten: jeder Eintrag wird explizit mit seiner Beschreibung annotiert. Schema (z.b. DTD oder XML Schema) ist optional Vorteile: Interoperabilität, Erweiterbarkeit Nachteil: Speicherplatzverschwendung bei Standardspeicherungsart (Wiederholung der Bezeichnungen) 5

Dokumente vs. Daten (im Web) Dokumente: Reiner Text ist problematisch für automatische Verarbeitung von Inhalten Sichtbarmachen der Struktur (mittels Markup) erforderlich Daten: Keine starre Struktur, Schema nicht vorhanden (bzw. nicht bekannt) Selbstbeschreibende Daten (mittels Markup) geben mehr Flexibilität XML: vereinigt die beiden Sichtweisen Ursprünglich eher Dokumenten-Sicht Mittlerweile Daten-Sicht mindestens gleich wichtig 6

Anwendungen von XML Dokument-Anwendungen "menschlicher" Informationsaustausch "maschineller" Informationsaustausch Klare Trennung von Struktur und Präsentation => transportables und leicht wiederverwendbares Dokument "maßgeschneiderte" Präsentation mittels Stylesheets Daten-Anwendungen Einheitliches, einfaches, robustes Daten-Austauschformat automatisierter Datenaustausch mit Datenbanken, Programmen, XML Datenbanken <...> <...> <...> <...> <...> 7

Unterschiedliche Forschungsinteressen Dokumentenwelt Intra- und Interdokumentstruktur Präsentationsformate (wie HTML) Informationsaustauschformate Document/Information Retrieval Datenbankwelt Speichertechniken Anfragesprachen Datenmodelle, Methoden zur Strukturierung von Daten Integrität/Konsistenz von Daten Diese Grenzen verschwimmen. 8

1.2. Entwicklung von XML XML vs. SGML und HTML Präsentation von XML-Dokumenten XML-"Standardisierung" Begleitende Standards Einige Tools 9

XML: extensible Markup Language Wichtige Eigenschaften: Genormte, erweiterbare Auszeichnungssprache (W3C): kein ISO-Standard sondern eine W3C Recommendation Syntax zur Beschreibung (semi)strukturierter Information Trennung von Struktur und Präsentation Bereichsspezifische Dokumenttypen ("Applikationen") als Datenaustauschformat sehr gut geeignet "XML will be the ASCII of the Web basic, essential, unexciting" (Tim Bray) 10

SGML Standard Generalized Markup Language ISO Standard (1986) Für einzelne Applikationen kann eine bestimmte Dokumentenstruktur vorgegeben werden Elemente und ihre Relationen werden beschrieben HTML ist eine Applikation von SGML HTML enthält Formatierungsanweisungen, die von Browsern interpretiert werden HTML-Syntax ist relativ flexibel bzw. Browser sind fehlertolerant (z.b. inkorrekte Schachtelung von Elementen) 11

Besandteile eines SGML-Dokuments SGML-Deklaration Definiert Umgebung eines SGML-Dokuments, d.h.: Regeln für DTD und Dokument-Instanz z.b.: Zeichensatz, als Markup zu interpretierende Zeichen, zulässige Länge von Tags, zulässige Schachtelungstiefe,... Dokumenttypdefinition (DTD) Externes/internes DTD-Subset Dokument-Instanz d.h.: der mit Markup annotierte Inhalt 12

Einschränkungen von XML (vs. SGML) Max. 2 Bestandteile eines XML-Dokuments: Dokument-Instanz, optional DTD, keine SGML-Deklaration aber implizit gibt es eine fixe SGML-Deklaration für XML d.h.: XML ist eine echte Teilmenge von SGML Wohlgeformtheit ohne Gültigkeit möglich Keine Namen, die mit [Xx] [Mm] [Ll] beginen Keine Auslassung/Abkürzung von Markup Angabe von Attributname + Attributwert zwingend Immer Unicode als Basiszeichensatz Keine Kapazitätsbeschränkungen 13

Warum XML? Einschränkungen von HTML Fix vorgegebene Menge von Elementen keine Trennung von Layout und Struktur Wiederverwendbarkeit? Komplexität von SGML unbrauchbare Optionen für Webapplikationen schwierig für Entwicklung von Tools/Browsern Idee von XML Vereinfachte Version von SGML (Teilmenge) Optimiert für Informationsbereitstellung im Web Soll HTML/SGML ergänzen (nicht ersetzen) 14

HTML vs. XML HTML eine Applikation von SGML (eine fixe DTD) über 100 fixe Tags Browser sehr fehlertolerant (ignoriert DTD...) In erster Linie für Präsentation (z.b. boldfaced, rot) bzw. Layout-Struktur (z.b. Tabellen, Listen) Chaos: verschiedenste proprietäre Erweiterungen XML eine Teilmenge von SGML Metasprache für Markup Sprachen keine vordefinierten Tags strikte Syntax muss eingehalten werden viele ergänzende Standards leicht zu lesen und zu verarbeiten 15

Applikationen und Instanzen Meta Markup Sprache Applikationen Instanzen HTML DBAI Staff Location Map SGML DocBook Courses Practica...<br/> XML XHTML XSD <xsd:element ref="test" minoccurs="1"> XHTML: HTML als XML Applikation CML: Chemical Markup Language XSD: XML Schema Definition 16 CML <dna label = "Insulin Gen">1 ctcgaggg...

W3C: World Wide Web Consortium Sechs Arten von Dokumenten Note: kann jedes W3C Mitglied einreichen noch keine Absichtserklärung des W3C Working Draft (WD) aktueller Diskussionsstand Last Call WD wenn festgelegte Ziele erreicht wurden Candidate Recommendation (CR) Einreichungsbestätigung Proposed Recommendation Implementierungen der Bestandteile sind vorhanden Recommendation W3C "Standard" (ist kein offizieller Standard wie z.b. ein ISO Standard) Note Working Draft Last Call WD CR PR Recommendation 17

Rund um XML: Begleitende Standards Namespaces: Teil der XML-Recommendation W3C Schema-Sprachen: DTD, XSD Navigation: XPath Stylesheets: XSL XSLT: Selektion, Transformation XSL-FO: Präsentation XQuery: Abfragesprache (im Stil von SQL) (quasi-)standardisierte APIs DOM SAX viele weitere Standards 18

Geschichte Hypertext (1945) beliebige Navigationspfade durch Dokumente GML (SGML Vorläufer) (1969) SGML ISO Standard (1986) HTML Tim Berners-Lee, CERN (1989) W3C gegründet (1994) SGML Subset Arbeitsgruppe (1996) XML 1.0 (1998) XSLT (1999) XML Schema (2001) laufend neue Recommendations 19

Einige XML Tools Browser IE 6, Mozilla, Amaya (W3C Browser/Editor) XML Editoren: XMLSpy (www.xmlspy.com) textbasiert vs. baumbasiert XML Parser: Xerces, libxml-bibliothek XSLT: Xalan, Saxon XQuery: Saxon Datenbanken: Tamino native vs. xml-enabled 20

Parser in der Vorlesung/Übung DOM/SAX-Parser in Java: Erstellung eines eigenen Parser-Treibers in der VL XMLLINT: (http://xmlsoft.org/) portable C Bibliothek für Linux, Unix, MacOS, Windows, Installation unter Windows: 3 zip-dateien von http://www.zlatkovic.com/pub/libxml/ iconv-1.9.2.win32, libxml2-2.6.27.win32, zlib-1.2.3.win32xml PATH-Variable erweitern um die bin-unterverzeichnisse dieser 3 Verzeichnisse Kommandozeilen-Aufruf: xmlllint <xml-dateiname> 21

1.3. Aufbau von XML-Dokumenten Baumstruktur Elemente Attribute Header Kommentare CDATA Entitäten Unicode 22

Beispiel: XML Dokument <?xml version="1.0" encoding="iso-8859-1"?> <!-- DBAI --> <lehre> <veranstaltung jahr="2007"> <titel>semistrukturierte Daten</titel> <vorbesprechung> <datum>mi 7.3.</datum> <zeit cum_tempore="yes">15:30</zeit> <ort>radinger HS</ort> </vorbesprechung> <schlagwort>xml</schlagwort> <schlagwort>dtd</schlagwort> <schlagwort>sgml</schlagwort> </veranstaltung> </lehre> 23

Beispiel: Bestandteile eines XML-Dokuments <?xml version="1.0" encoding="iso-8859-1"?> <!-- DBAI --> Kommentar <lehre> Header <veranstaltung jahr="2007"> <titel>semistrukturierte Daten</titel> <vorbesprechung> Wurzelelement, <datum>mi 7.3.</datum> Dokumentelement <zeit cum_tempore="yes">15:30</zeit> <ort>radinger HS</ort> </vorbesprechung> <schlagwort>xml</schlagwort> Attribut <schlagwort>dtd</schlagwort> <schlagwort>sgml</schlagwort> </veranstaltung> </lehre> Elementinhalt 24

Beispiel: Dokumentenbaum lehre veranstaltung jahr 2007 titel vorbesprechung Semistrukturierte Daten datum zeit ort schlagwort schlagwort schlagwort Mi 3.7. 15:30 Radinger HS XML DTD SGML yes cum_ tempore 25

Struktur eines XML-Dokuments Baumstruktur keine Einschränkungen der Baumstruktur durch den XML- Standard (aber natürlich mittels Schema möglich) ist selbstbeschreibend Die Ordnung der Elemente ist signifikant Unterscheidung Zeichendaten vs. Markup Zeichendaten beherbergen die Information Markup beherbergt die Struktur beide sind einfach als Text abgelegt Markup steht innerhalb spitzer Klammern: <...> Beispiel: <lehre> 26

Darstellung eines XML-Dokuments Im Normalfall werden führende und endende Whitespaces ignoriert je nach Parser adaptierbar (bzw. vordefiniertes Attribut) daher viele Repräsentationen desselben Dokuments, kanonische Darstellung <titel>semistrukturierte Daten</titel> <nummer id="181135"> </nummer> Kanonische Darstellung: <titel>semistrukturierte Daten</titel> <nummer id="181135"/> 27

Elemente beherbergen die strukturelle Information annotieren Text mit Markup Namen Elementname innerhalb spitzer Klammern <datum>mi 7.3.</datum> Starttag Endtag Gemischter Inhalt ist erlaubt, d.h.: ein Element kann Text oder Elemente oder beides enthalten <datum><tag>mi</tag>7.3.</datum> 28

Elementverschachtelung Element-Inhalt nicht auf Text beschränkt kann andere Elemente enthalten beliebige Baumtiefe und Wiederholungen <ebayitem> <item>...</item> <price>...</price> <description>...</description> <description>...</description> </ebayitem> <yahooitem> <item>...</item> <price>...</price> <description>...</description> </yahooitem> <item> <item>...</item> <price>...</price> <description>...</description> </item> 29

Regeln für Elementnamen XML selbst definiert keine Elementnamen Start mit Buchstaben oder Unterstrich Enthält Buchstaben, Ziffern, Unterstrich, Punkt, Bindestrich Buchstaben können aus beliebige Sprache stammen (Unicode) Doppelpunkt erlaubt, hat aber spezielle Bedeutung Keine Zwischenräume erlaubt! Nicht beginnen mit XML (beliebig groß/klein) Case Sensitivity (ungleich HTML) Abkürzung für leere Elemente <geblockt/> anstatt <geblockt></geblockt> 30

Einige Beschränkungen Genau ein Wurzelelement pro XML Dokument Name nicht vorgegeben Bei Vereinigungen von Dokumenten: neuen Wurzelknoten hinzufügen auf Ebene von Wurzelelement sonst nur Kommentare und Processing Instructions erlaubt Start- und Endtags jedes Starttag muss geschlossen werden Beispiel: <br> alleine nicht erlaubt (lautet in XHTML <br/>) keine verschränkten Tags, z.b.: erlaubt: <b>bold<i>bold-italic</i>bold</b> nicht erlaubt: <b>bold<i>bold-italic</b>italic</i> 31

Attribute Beschreiben üblicherweise Elementcharakteristika Schreibweise: <attributname> = <attributwert> Attributwert ist eine Zeichenkette in " " oder ' '. Ein Element kann 0 bis beliebig viele Attribute haben. Jeder Attributname darf nur ein Mal pro Element vorkommen Beispiel: <preis waehrung="$" waehrung=" "> nicht erlaubt 32

Attribute Die Reihenfolge der Attribute ist nicht signifikant im Gegensatz zu Elementen Attribute können keine Kinder haben nur Textwerte Datentyp von Attributen kann mittels Schema-Definition (z.b. DTD, XML Schema) beschränkt werden. Nicht alle Zeichen sind in Attributwerten erlaubt: z.b.: "<" Entitäten verwenden oder (binäre) Daten codieren 33

Attribute Namensbeschränkungen wie bei Elementen Attribute stehen innerhalb des Starttags Attributwert immer in Anführungszeichen können einfach ' ' oder doppelt " " sein ' und " dürfen in einem Attribut nicht gemischt werden jeweils andere Anführungszeichen innerhalb verwendbar Attributwerte können leer sein: "" Beispiel: <zeit cum_tempore="yes"> vordefinierte Attribute: xml:space Whitespace erhalten oder löschen (preserve,default) xml:lang zur Sprachspezifikation von Inhalt, z.b. "en-gb" bei jedem Element möglich Wert wird von Subelementen geerbt (oder überschrieben) 34

Richtlinien Element vs. Attribut als Attribut eher systeminterne Dinge; sagt etwas darüber, wie der Elementinhalt zu interpretieren ist. als Element eher Dinge für den Benutzer und wo Unterstruktur nötig ist oder Daten über viele Zeilen Einrückungen bequemere Lesbarkeit Whitespaces werden standardmäßig gefiltert XML ungleich Semantik Bezeichnungen bedeuten nur für Menschen etwas Semantik nur durch Applikation, d.h.: die Tags haben für die jeweilige Applikation eine klar definierte Semantik, z.b. Tag <element> in XSD, in XSLT, in CML, 35

Header und Kommentare XML Deklaration erste Zeile <?xml version="1.0"?> ist optional weitere Information wie z.b. encoding <?xml version="1.0" encoding="iso-8859-1"?> Kommentare <!-- --> für Menschen wird vom Parser nicht interpretiert (und möglicherweise ignoriert) entweder vor oder nach Markup Metacharacters (wie "<", "&") sind in Kommentaren erlaubt 36

CDATA und "verbotene" Zeichen CDATA Character Data nicht vom Parser bearbeitet Entitäten und Tags innerhalb nicht erkannt beginnt mit <![CDATA[ endet mit ]]> (dieses Markup ignoriert Parser nicht) Darstellung von beliebigen binären Zeichen als externe Entität (siehe 2. VL-Termin) codiert (z.b.: base64 oder hexbinary) im XML-Dokument 37

Processing Instructions Einfügen von "Nicht-XML-Statements" Um Anweisungen an eine Applikation zu geben (Für diesen Zweck auf keinen Fall Kommentare "missbrauchen"!) Typische Anwendung: Stylesheetverknüpfung: => Anweisung bzgl. Layout an den Browser. <?xml-stylesheet type="text/xsl" href="lva.xsl"?> Weiteres Beispiel: <?editor href="editor" load doc?> Alles hinter "editor" ist ein großer Datenblock; manche Parser versuchen, wenn es geht, diesen Teil wie Attribute zu behandeln. 38

Entitäten Deklaration von Entitäten in DTD (siehe 2. VL-Termin) vordefinierte Entitäten Entitätsreferenzen innerhalb von &... ; Beispiel: <tag>&mi;</tag> für Mittwoch vordefinierte Entitäten nur für folgende 5 Zeichen: < > & ' " Entitäten: < > & &apos; " Character-Referenzen: Ó (dezimal), ó (hex) 39

Zeichensätze + Zeichenkodierungen Basiszeichensatz für XML: Unicode ca. 100.000 Zeichen: Buchstaben aller Sprachen mathematische Zeichen etc. Unicode Consortium + ISO Standard http://www.unicode.org/ Unicode gibt jedem Zeichen eine eindeutige Zahl Unicode ist kein Font, Fähigkeit Unicode zu bearbeiten ist unabhängig von Fähigkeit zur Anzeige 40

Zeichensätze + Zeichenkodierungen XML-Parser müssen zumindest folgende Kodierungen unterstützen: UTF-8 (Unicode Transformation Format 8) Standard 7-bit ASCII als 8 Bits, andere Zeichen mehrere Bytes lang UTF-16 16 Bits Kodierung für alle "gebräuchlichen" Unicode-Zeichen, andere Zeichen 4 Bytes lang Jede andere Kodierung als UTF braucht eine spezielle Deklaration im XML-Dokument Andere Zeichensätze + Kodierungen (Unicode-Teilmengen), z.b.: Latin-1 (ISO 8859-1): Benötigt 8 bits Umfasst 7bit-ASCII + Sonderzeichen für Deutsch, Französisch, 41