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