Folien
Transcrição
Folien
Datenformate HS Rechner- und Datennetze Dozent: Michael Heinz Referent: Alexander Struck 21.11.2005 Motivation • anwendungsunabhängig • Langzeitarchivierung • Mensch und Maschine • Automatisierung • RSS 21.11.2005 Datenformate + Anfragesprachen 2 Gliederung 1. 2. 3. 4. 5. 21.11.2005 SGML DTD XPath XSLT PDF + + + + + HTML XML (Schema) XQuery SQL/XML TeX Datenformate + Anfragesprachen 3 SGML Standard Generalized Markup Language • 1960s Tunnicliffe + Goldfarb • Dokument=Text + Strukturanweisung Inhalt < > Layout • Langzeitarchivierung ! Maschinenlesbarkeit ! • Meta-Sprache • ISO 8879:1986 Information processing Text and office systems - ... 21.11.2005 Datenformate + Anfragesprachen 4 HTML Hypertext Markup Language • WWW Seitenbeschreibung • Formatierung CSS (opt) • Erweiterbarkeit nur per Standard 21.11.2005 Datenformate + Anfragesprachen 5 <!DOCTYPE HTML PUBLIC ...> <html> <head> <title>geheime Homepage</title> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW, NOARCHIVE, NOSNIPPET"> </head> <body> Das bekommt mensch zu sehen </body> </html> 21.11.2005 Datenformate + Anfragesprachen 6 XML eXtensible Markup Language • • • • SGML > XML DTD intern|extern erweiterbar & austauschbar datenzentriert (strukturiert) dokumentzentriert (unstrukturiert) semistrukturiert • Wohlgeformtheit & Gültigkeit • SAX & DOM 21.11.2005 Datenformate + Anfragesprachen 7 SAX DOM • Simple API for XML • sequentieller Datenstrom startDocument() startElement (name, attributes) endElement(name) • Document Objekt Model • Methoden zur Identifikation node Navigation doc Manipulation tree getChildren() removeChild(chnod) 21.11.2005 Datenformate + Anfragesprachen 8 <library> <book> <record sign=AC_Vo2H ad=1> <pub>Volksverlag</pub> <aut>Alain Voss</aut> <tit><xxx>Heilmann</xxx></tit> </record> <record sign=AC_Pe1P> <pub>Schuenemann</pub> <aut>Guy Peellaert</aut> <tit>Pravda</tit> </record> ... </book> <journal> ... 21.11.2005 Datenformate + Anfragesprachen 9 DTD Dokumenttypdefinition • Aufbau / Struktur HTML / XML ? Elemente ? Inhalte der Elemente ? Attributwerte ? Wertebereich - keine eigenen Inhaltstypen - keine Daten 21.11.2005 Datenformate + Anfragesprachen 10 Inhaltsmodelle DTD Sequenz Alternative Quantoren Inhalt 21.11.2005 (eins, zwei, ...) (entweder | oder) (einmal) 1x (fiftyfifty?) 0-1 (existent+) 1 - n (beliebig*) 0-n (ANY | wasandres)* Datenformate + Anfragesprachen 11 <!ELEMENT library (books, journals, avmedia)> <!ELEMENT books (author, title, publisher, isbn, signature)> <!ATTLIST author vorname CDATA #REQUIRED nachname CDATA #REQUIRED > <!ELEMENT title (#PCDATA)> <!ELEMENT publisher (#PCDATA)> <!ELEMENT year (#PCDATA)> 21.11.2005 Datenformate + Anfragesprachen 12 XML Schema • Beschreibung Datenstruktur wie in DTD • umfangreicherer Darstellungsmöglichkeit (sequence, choice, all) • erlaubt neben syntaktischer Validierung auch semantische Validierung des Elementinhalts (! Kardinalität !) • Integritätsbedingungen • Definition eigener Datentypen (Extension / Restriction) • geschrieben in XML 21.11.2005 Datenformate + Anfragesprachen 13 XPath XML Path Language • Baum • Dateisystem links > rechts + relativ OR /absolut • Adressierung / Selektion (Knotenmengen) • 7 Knotentypen (Doc, El, Att, Text,...) • > XSLT / XLink / XPointer / XQuery 21.11.2005 Datenformate + Anfragesprachen 14 XPath Ausdrücke • self • child / parent • following / preceding {-sibling} • descendant / ancestor • attribute 21.11.2005 Datenformate + Anfragesprachen 15 21.11.2005 Datenformate + Anfragesprachen © www.xml-und-datenbanken.de 16 XPath Syntax Syntax tagname liefert >>> all child::nodes 'tagname' . - .. - / - // self - parent - root - all @attname * 21.11.2005 attribute::name match all elements Datenformate + Anfragesprachen 17 Beispiele • library//aut <aut>Alain Voss</aut> <aut>Guy Peellaert</aut> <aut>..ZsArtAuth..</aut> • /book/record/@* sign=AC_Vo2H ?? sign=AC_Pe1P ?? • //book/tit/text() Pravda !! 21.11.2005 Datenformate + Anfragesprachen 18 XQuery XML Query Language • XPath, XML Schema, ... • Adressierung, Funktionsdefinition, Konstruktion ... • SQL < FLWR Ausdrücke SELECT [row] FROM [table] WHERE [condition] FOR $var/ LET $var WHERE [condition] RETURN [xml] 21.11.2005 Datenformate + Anfragesprachen 19 <new_bibl> { FOR $var in //book WHERE $var/author/text()=Caza RETURN <werke au=Caza> <title>{$var/tit}</title> </werke> } <anzahl>{count(/title)}</anzahl> </new_bibl> 21.11.2005 Datenformate + Anfragesprachen 20 XQuery Möglichkeiten • Erzeugen von Knoten • Antwortmenge geordnet • Bedingte Ausdrücke (if-then-else) • Quantoren (ANY ALL) • Aggregation (count,min,avg...) • Mengenfunktionen (Duplikate--) 21.11.2005 Datenformate + Anfragesprachen 21 XSLT Extensible Stylesheet Language Transformation • Definition Transformationsregeln XML >> XHTML XML > (>XSL-FO) > PDF ... • XML Syntax (>DSSSL) • XSLT + XSL-FO + XPath = > XSL 21.11.2005 Datenformate + Anfragesprachen 22 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="library"> <!-- wandle datei element library in html um --> <html> <head> <title>library</title> </head> <body> <!-- knoten einlesen --> <xsl:apply-templates/> </body> </html> </xsl:template> 21.11.2005 Datenformate + Anfragesprachen 23 SQL/XML • working draft • Abbildung XML < = > SQL • Generierung ! • Datentypen • Funktionen 21.11.2005 Datenformate + Anfragesprachen 24 Beispiel XMLGEN Funktion books publisher Volksverlag Schuenmann author title Alain Voss Heilmann Guy Peellaert Pravda SELECT XMLGEN ('<ComicAutor>{$author}</ComicAutor> <Titel>{$title}</Titel>') AS Autorenliste FROM books; Autorenliste <ComicAutor>Alain Voss </ComicAutor> <ComicAutor>Guy Peellaert</ComicAutor> 21.11.2005 Datenformate + Anfragesprachen 25 PDF Portable Document Format • PostScript > PDF • proprietär offengelegt verschlüsselt • Dokumentbeschreibungssprache (!Einbindung aller Elemente: Text, Bitmap, Vektor) • Baumstruktur, "content stream" • Datentypen (numbers, strings, hashes, arrays, ...) 21.11.2005 Datenformate + Anfragesprachen 26 TeX • Donald E. Knuth > TAOCP • Textsatz mit Makrosprache Interpreter • Digital Typography / Formelsatz • diverse Distributionen / Packages 21.11.2005 Datenformate + Anfragesprachen 27 \documentclass{article} \begin{document} ... Text (block, einzug, roman, 10pt) \begin{center} ... text \textbf{fettertext} \end{center} \footnote{Fußnotentext} \end{document} 21.11.2005 Datenformate + Anfragesprachen 28 Danke! Fragen? Weiteres> [HS] Gragert - XML in der Praxis [HS] Schulz - XML publishing [link]http://www.xml-unddatenbanken.de [link]http://de.wikipedia.org 21.11.2005 Datenformate + Anfragesprachen 29