wissens- und content-management
TRANSCRIPT
Institut für Informatik
Wissens- und
Content-Management
Einführung in XML Dr. Roman Schneider
Einführung in XML
Das Phänomen XML
XML: Extensible Markup Language
(“erweiterbare Auszeichnungssprache” - eigentlich eine Metasprache!)
• „ XML is the ASCII for the new millenium.“
• „It defines a lingua franca for textual languages.“ Quelle: “The XML Hype”
http://cocoon.apache.org/2.0/introduction.html
Warum diese Popularität?
2 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Das Phänomen XML
3 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Dokumente bestehen aus
– Struktur
• Kapitel, Abschnitte, Verweise, Fußnoten, Aufzählungen usw.
– Inhalt/Daten
• Text, Bilder, Audio, Video
– Format/Darstellung
• Schriftarten, -größen, -formate, Farben, Positionen
Markup Language (ML) = Auszeichnungssprache
Prä-XML-Beispiele:
a) das Wort wird <b>fett</b> dargestellt
b) \section{Überschrift 1}
Extensible?
Einführung in XML
Motivation: Textstrukturierung 1/7
Herkunft des Begriffs “Mark up”:
• ursprünglich aus dem Verlagswesen
• Anweisungen von Autor bzw. Lektor an den Setzer
• Informationen über Inhaltselemente eines Dokuments
Eigenschaften digitaler Dokumente:
• vereinigen Inhaltskonzept & Ausdrucksform
• Inhaltskonzept: Verbindung von Wort-/Satzbedeutungen & Textaufbau
• Ausdrucksform: äußere Form des Textes (z.B. Schrifttypen,
Absatzgestaltung, Bildpositionierung)
Hypertexte: Verknüpfung von Texten bzw. Textsegmenten
4
Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Motivation: Textstrukturierung 2/7
Dokumente/Texte: Primär für die Kommunikation zwischen Menschen • verwenden natürliche Sprache
•beinhalten komplexe und irreguläre Strukturen
•erfordern Weltwissen
•Textsorten
5 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Motivation: Textstrukturierung 3/7
• Elektronische Verarbeitung: auch für die Kommunikation zwischen Computern
– meist datenzentriert (Bestellungen, Rechnungen, Kataloge)
• Ebenfalls: Mensch <–> Computer
– oft dokumentenzentriert (E-Mails, Webseiten, Softwarekonfiguration)
• Dokumentenstruktur? Weltwissen?
=> Markup kann für Darstellung/Transport dieser Informationen eingesetzt werden
6 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Motivation: Textstrukturierung 4/7
Ziel: Trennung von Form und Inhalt durch eine formale Sprache!
• Idee der expliziten Trennung existiert seit Ende der 1960er Jahre
• „Generic Markup“ (wörtlich: “artgemäße”, auch: “logische” oder
“semantische” Auszeichnungen) vs. „Visual Markup“
7 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Inhalt Form
Daten Struktur
Einführung in XML
Motivation: Textstrukturierung 5/7
8 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Definition:
Das Markup-Prinzip beruht auf einer formal standardisierten Einbettung
unterschiedlichster Meta-Informationen in digitale Dokumente.
Ziel ist eine eindeutige Identifizierung und Charakterisierung der
Dokumentsegmente.
Vokabular und Syntax von Markup-Sprachen werden mit Hilfe
kontextfreier Grammatiken festgelegt (Chomsky: Typ-2-Grammatik). <satz typ=”reiseanfrage”>
Welcher <transportmittel>ICE</transportmittel>
fährt nach <zielort>Leipzig</zielort>?
</satz>
Ersetzungsregel z.B.: reiseanfrage besteht aus transportmittel, zielort und/oder Fließtext
Einführung in XML
Motivation: Textstrukturierung 6/7
9 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Markupsprachen sind nicht:
- Seitenbeschreibungssprachen (Postscript, PDF) - Seitenorientierung / fixes Layout fehlen
- Programmiersprachen - (Kontrollstrukturen und prozedurale Bestandteile fehlen)
Einführung in XML
Motivation: Textstrukturierung 7/7
10 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Entwicklung von Markup-Sprachen: 1967: William Tunnicliffe stellt “Generic Coding” vor / Stanley Rice entwirft „Editorial Structured Tags“
1969: Charles Goldfarb, Edward Mosher und Raymond Lorie (IBM) entwickeln „Generalized Markup Language (GML)“
1978: Textsatzsystem TeX von Donald E. Knuth
1980: Scribe (Trennung von Text- und Stildateien) von Brian Reid (Carnegie Mellon, Ph.D.)
1986: SGML wird ISO-Standard
1996: W3C konzipiert die “Extensible Markup Language (XML)” als Untermenge von SGML (schlankere Spezifikation, keine Strukturbeschreibung zwingend, ...)
Einführung in XML
Was war vor XML? 1/2
Hypertexte: Vorläufer moderner Systeme
Vannevar Bush 1945 Memex
Douglas Engelbart 1962 Augment, Maus
Ted Nelson 1965 Xanadu („Hypertext“)
Tim Berners-Lee 1989 HTML, WWW
De-Linearisierung, Anreicherung um Querverweise (Hyperlinks), ...
11 Dr. Roman Schneider Modul Wissens- und Contentmanagement
"wholly new forms of encyclopedias will appear, ready made with a mesh of associative trails running through them, ready to be dropped into the memex"
Einführung in XML
Was war vor XML? 2/2
HTML als Sprache des WWW:
einfache Auszeichnungssprache mit feststehendem Satz von
vordefinierten Tags
verleitet zur Vermischung von Inhaltsauszeichnung und Layout
feste Kodierung von Layout-Angaben (unübersichtlich, unflexibel)
=>Alternative CSS
nicht zwingend logisch geschachtelt
<HTML>
<H1>Mein Titel</h1>
<P><FONT face="Arial" size="12">Der erste <b>Absatz.</font></P>
<P><FONT face="Arial" size="12"></b>Der zweite <b>Absatz</b>.</FONT></P>
</HTML>
XML dagegen ist eine Metasprache zur Definition von Markup-Sprachen!
12
Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
HTML vs. XML
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Person</title>
</head>
<body>
<h3>Alan Turing</h3>
<p>
23. Juni 1912* <br>
Mathematiker, Informatiker
</p>
</body>
</html>
13 Dr. Roman Schneider Modul Wissens- und Contentmanagement
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE person SYSTEM "person.dtd">
<person>
<name>
<vorname>Alan</vorname>
<nachname>Turing</nachname>
</name>
<geburtstag>23. Juni 1912</geburtstag>
<beruf>Mathematiker</beruf>
<beruf>Informatiker</beruf>
</person>
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE person SYSTEM "person.dtd">
<person>
<adresse>
<plz>Alan</plz>
<stadt>Turing</stadt>
</adresse>
<gewicht>23. Juni 1912</gewicht>
<name>Mathematiker</name>
<name>Informatiker</name>
</person>
Einführung in XML
Beispiel Linguistische Annotation 1/2
14 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Traditionell: Satzstruktur als Baumgraph
• nicht-terminale Knoten enthalten linguistische Meta-Angaben
Einführung in XML
Beispiel Linguistische Annotation 2/2
15 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Exemplarischer Tagger/Parser-Output in XML
• Elementstruktur entspricht einem Baum
• Anreicherung um morpho-syntaktische Angaben
ideales Speicherungs-
und Austauschformat
(„enabling technology“)
integrierbar in
linguistische Applikationen,
z.B. grammisML für Online-
Informationssystem
grammis
Einführung in XML
Beispiel Linguistisches Informationssystem
16 Dr. Roman Schneider Modul Wissens- und Contentmanagement
grammisML
Einführung in XML
Man verspricht sich von XML:
• Branchen- und systemübergreifende Standardisierung
• Weltweiter Datenaustausch (write once, read everywhere)
• Vielfältigkeit
Bekannte Beispiele: HTML, MathML, ChessML, Gene Expression
Markup Language, GraphML, Chemical Markup Language, SVG,
Extensible Application Markup Language (XAML), XML/EDI
• Gegenwärtig knapp 600 XML-Sprachen auf den Webseiten von
Robin Cover (seit 1986, http://xml.coverpages.org)
• Dazu kommen zahlreiche selbstdefinierte Formate (z.B. grammisML)
– und damit hört die Universalität auch schon auf…
…und der Rückgriff auf standardisierte Eigenschaften beginnt!
17
Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Übersicht: Eigenschaften von XML-Sprachen
• Flexible, dabei präzise Definition eigener Dokumentstrukturen
durch Element- und Attributtypen
• korrekte Schachtelung zwingend
• Groß-/Kleinschreibung relevant
• logische Strukturierung statt Gestaltung
• selbstbeschreibend, lesbar, verständlich für Mensch und Maschine
• variable Anzeige mit Hilfe von Stylesheets (CSS, XSLT)
• Markup-Sprachen werden auch „XML-Applikationen“ genannt
• Dokumente mit gemeinsamer Struktur heißen „XML-Instanzen“
=> durch das World Wide Web Consortium (W3C) entwickelt
18 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Exkurs: Das W3C 1/2
• 1994 am MIT (Cambridge, MA) gegründet (=> Tim Berners-Lee/CERN)
• “Leading the web to its full potential”
• Über 400 Mitgliederorganisationen
• Ca. 70 Vollzeit-Mitarbeiter weltweit
• Schaffung von technischen Richtlinien (Standards, Protokolle) für das
WWW, um die Interoperabilität von Anwendungen zu sichern
• Beispiele: XML, HTML, DOM, XPath, XML Schema, ...
• Ablauf: Vorschläge, Working Drafts, Empfehlungen
19 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Exkurs: Das W3C 2/2
Prozesse am W3C
• Note – Vorschläge, noch außerhalb der Verantwortung des W3C
• Working Draft – Aktuelle, noch laufende Arbeiten, werden noch nicht vom ganzen W3C getragen
• Last Call Working Draft – sollen nach 3 Monaten in die nächste Phase übergehen
• Candidate Recommendation – Für Testimplementierungen freigegeben
• Recommendation – Standard
20 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Zeitliche Entwicklung XML 1/3
Grafik aus Neil Bradley:
The XML companion
21 Dr. Roman Schneider Modul Wissens- und Contentmanagement
1986 SGML wird ISO-Standard
1992 HTML-Entwurf (Tim Berners-Lee)
1996 Beginn der Entwicklung von XML
1998 XML wird W3C-Standard (XML 1.0)
1999 Internet Explorer unterstützt XML
(später folgen andere Browser wie z.B. Mozilla)
2000 “Second Edition“ von XML 1.0
2000 erste Version von XHTML
2008 “Fifth Edition“ von XML 1.0 (Proposed Edited Recommendation)
Einführung in XML
Zeitliche Entwicklung XML 2/3
22 Dr. Roman Schneider Modul Wissens- und Contentmanagement
2006 XML 1.1 (Recommendation incl. Names- & Unicode-Weiterentwicklungen) und XHTML 2.0
“The overall philosophy of names has changed since XML 1.0. Whereas XML 1.0 provided a rigid definition of names,
wherein everything that was not permitted was forbidden, XML 1.1 names are designed so that everything that
is not forbidden (for a specific reason) is permitted.”
2004 XML-Schema Part 0: Primer, Recommendation
2012 XML-Schema (XSD) 1.1 Part 1: Structures
2012 XML-Schema (XSD) 1.1 Part 2: Datatypes
2012 XSL Formatting Objects (XSL-FO) 2.0. Working Draft
2013 XSL Transformations (XSLT) 3.0. Latest Working Draft
2014 XML Path Language (XPath) 3.0. Recommendation
2014 XML Query Language (XQuery) 3.0. Recommendation
Einführung in XML
Zeitliche Entwicklung XML 3/3
• XML 1.0 First Edition wurde am 10. Februar 1998 als Recommendation
verabschiedet, ist also bereits über 15 Jahre alt
• viele weitere Empfehlungen basieren darauf, sind oft deutlich später
verabschiedet worden (Namespaces, Schema, XSLT, ...)
• andere Bereiche sind noch in der Entwicklung (z.B. Security, Anfragesprachen)
=> dynamisches Gebiet
• Aktualität? => Verlagerung in Spezial-Applikationen
23 Dr. Roman Schneider Modul Wissens- und Contentmanagement
2014 MathML 3.0. Markup-Sprache für mathematische Notation 2014 SVG 2. Markup-Sprache für zweidimensionale Vektorgrafik 2014 RDF 1.1. Generisches Beschreibungs-Framework 2007 WSDL 2.0. Beschreibungssprache für Web-Services
Suchwort „XML“
Einführung in XML
Die XML-Familie
24 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Wie kompliziert ist XML?
It takes ten minutes to understand (base) XML, and then ten months
to understand the new technologies hung around it.
(Peter Chen)
Wir werden XML-Syntax länger als 10 Minuten ansehen...
… aber keine 10 Monate für weitere Technologien verwenden!
Das heißt: Nur eine kleine Auswahl wird vorgestellt und punktuell
vertieft.
25
Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Datenzentriert – semistrukturiert – dokumentzentriert
Vor detaillierter Bescheibung: Beispiel eines XML-Dokuments (Elemente, Attribute)
<?xml version="1.0" encoding="UTF-8"?> <rechnung kundennummer="k333063143"> <monatspreis>0,00</monatspreis> <einzelverbindungsnachweis> <verbindung> <datum>26.2.</datum> <zeit>19:47</zeit> <nummer>200xxxx</nummer> <einzelpreis waehrung="Euro">0,66</einzelpreis> </verbindung> <verbindung> <datum>27.2.</datum> <zeit>19:06</zeit> <nummer>200xxxx</nummer> <einzelpreis waehrung="Euro">0.46</einzelpreis> </verbindung> <verbindungskosten_gesamt waehrung="Euro">2.19</verbindungskosten_gesamt> </einzelverbindungsnachweis> </rechnung>
26
Dr. Roman Schneider Modul Wissens- und Contentmanagement
datenzentriert? semistrukturiert? dokumentzentriert?
Einführung in XML
Eigenschaften datenzentriertes XML
• XML-Dokumente enthalten Daten und Strukturinformationen über diese
Daten (selbstbeschreibend)
• Hierarchische Schachtelung: Baum vs. Sequenz
• Dokumente eines Typs sind gleich strukturiert (regulär)
• Informationen im XML-Dokument haben einen Datentyp (typed)
Obige Beispiel-Informationen könnten auch in einer Datenbank gespeichert werden –
Tabellenstruktur (Spalten/Zeilen) hier evtl. effizienter für Weiterverarbeitung / Suche…
27
Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Weitere XML-Dokumenttypen
• XML-Dokumente können nicht nur datenzentriert (d.h. strukturiert und
regulär) sein, mit XML lassen sich auch andere Arten von Informationen
kodieren:
=> Semistrukturierte Informationen (daten- und dokumentzentrierte Anteile)
=> Dokumentzentrierte Informationen (unstrukturiert, irregulär)
28 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Eigenschaften semistrukturiertes XML
• Wie bei datenzentriertem XML: Dokumente enthalten Daten und Struktur über
die Daten in einem Dokument (selbstbeschreibend) , jedoch kein Layout
Aber:
• semistrukturierte Dokumente können Anteile von Volltext enthalten
• meist flachere Hierarchien
• Elemente haben keinen oder einen wechselnden Datentyp (untyped)
29 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Struktu
r
Inh
alt Layo
ut
XML
Einführung in XML
Beispiel für semistrukturiertes XML
<lexikon>
<eintrag stichwort="Information">
<herkunft>lat.</herkunft>
<erklaerung num="1">Auskunft, Nachricht, Mitteilung, Belehrung</erklaerung>
<erklaerung num="2"><siehe_auch>1.1.2</siehe_auch>
</erklaerung>
<erklaerung num="3"><anwendung>Informatik:</anwendung>die formulierte
Unterrichtung nicht nur von Menschen, sondern auch von
Organisationen und techn. Einrichtungen über Sachverhalte,
Ereignisse, Abläufe. Die <siehe_auch>Informationstheorie
</siehe_auch> versteht unter Informatik ein Maß, das den Zeichen einer Nachricht zugeordnet ist.
</erklaerung>
...
</eintrag>
</lexikon>
Quelle der Inhalte: Der Brockhaus in fünf Bänden
30 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Dokumentzentriertes XML
31 Dr. Roman Schneider Modul Wissens- und Contentmanagement
<content>
XML builds on the principles of two
existing languages, <emph>HTML
</emph> and <emph>SGML
</emph> to create a simple
mechanism .. The generalized
markup concept .. </content>
• “Markup in Volltexten“
• unregelmäßige, wenig vorhersehbare Struktur (tendenziell irregulär)
• oft sehr geringe Schachtelungstiefe
• “Mixed Content”: enthält XML-Elementtypen sowie textuelle Daten
Einführung in XML
Syntax von Elementen 1/3
Grundbausteine eines XML-Dokuments
Ein Element besteht aus:
Start-Tag
Ende-Tag und
Elementinhalt
Beispiel:
<referent> Roman Schneider </referent>
Start-Tag Ende-Tag Elementinhalt
32 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Einführung in XML
Syntax von Elementen 2/3
33 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Auch leere Elemente sind möglich:
<referent/>
Elemente können verschachtelt werden:
<referent>
<name>Schneider</name>
<vorname>Roman</vorname>
</referent>
Start-Tag
Ende-Tag
Elementinhalt
Einführung in XML
Syntax von Elementen 3/3
34 Dr. Roman Schneider Modul Wissens- und Contentmanagement
referent
vorname name
Roman
Elementknoten
Textknoten
XML-Dokumente sind Bäume!
Beispiel:
<referent>
<name>Schneider</name>
<vorname>Roman</vorname>
</referent>
Korrekte (= „wohlgeformte“) Schachtelung
der Elemente notwendig!
„wohlgeformt“ vs. „gültig“ (=> erfordert
Strukturbeschreibung)
Schneider
Einführung in XML
Strukturbeschreibung mit einer DTD 1/2
35 Dr. Roman Schneider Modul Wissens- und Contentmanagement
DTD (Document Type Definition): Deklaration von Strukturinformationen
ISO Norm 8879 für SGML: "Rules, ..., that apply SGML to the markup of documents of a
particular type."
Für XML nicht zwingend, aber wünschenswert!
Darstellung, welche Elemente auftreten können & wie sie geschachtelt werden => „gültig“.
Closed-World-Semantik: Alles, was nicht erlaubt ist, ist verboten.
Vorteile einer DTD:
Programme können DTD auswerten & darauf reagieren.
Fehler in XML-Dokumenten können (automatisiert) erkannt werden.
Dokumentiert XML-Dokumente (z.B. für darauf operierende Anwendungen)
Bessere Qualität der XML-Dokumente, durchdachteres Vorgehen.
Wie sieht DTD-Syntax aus?
Einführung in XML
Strukturbeschreibung mit einer DTD 2/2
36 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Minimales XML-Dokument:
<referent> Roman Schneider </referent>
Zugehörige DTD:
<!ELEMENT referent (#PCDATA)>
Geschachteltes XML-Dokument:
<referent>
<name> Schneider </name>
<vorname> Roman </vorname>
</referent>
Zugehörige DTD:
<!ELEMENT referent (name, vorname)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT vorname (#PCDATA)>
kontextfrei: nonterminales Element wird auf nonterminales oder terminales Element abgebildet
Parsed Character Data
Einführung in XML
Kombination von Elementen in einer DTD
37 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Sequenz (A , B)
A und B müssen in der angegebenen Reihenfolge auftreten
Alternative (A | B)
entweder A oder B treten auf
Wiederholung
A? - 0..1 Mal
A+ - 1..n Mal
A* - 0..n Mal
Mixed Content (#PCDATA | A | B)*
A, B oder beliebiger Text treten auf
<!ELEMENT referent (name, vorname+, adresse, biographie)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT vorname (#PCDATA)>
<!ELEMENT adresse
(plz, ort,
((strasse, nummer?) | postfach))>
<!ELEMENT biographie (#PCDATA | job | institution)*>
Einführung in XML
Beispiele zur Definition von Elementen in einer DTD 1/3
38 Dr. Roman Schneider Modul Wissens- und Contentmanagement
<!ELEMENT referent (name, vorname+, adresse, biographie)>
<referent>
<name>Schneider</name>
<vorname>Roman</vorname>
<vorname>F.</vorname>
<adresse>...</adresse>
<biographie>...</biographie>
</referent>
Einführung in XML
Beispiele zur Definition von Elementen in einer DTD 2/3
39 Dr. Roman Schneider Modul Wissens- und Contentmanagement
<!ELEMENT adresse (plz, ort, ((strasse, nummer?) | postfach))>
<adresse>
<plz>68161</plz>
<ort>Mannheim</ort>
<strasse>R5</strasse>
<nummer>6-13</nummer>
</adresse>
<adresse>
<plz>68016</plz>
<ort>Mannheim</ort>
<postfach>10 16 21</postfach>
</adresse>
Einführung in XML
Beispiele zur Definition von Elementen in einer DTD 3/3
40 Dr. Roman Schneider Modul Wissens- und Contentmanagement
<!ELEMENT biographie (# PCDATA | job | institution)*> <biographie>Studium der Computerlinguistik und Phonetik
an der Universität Trier. Anschließend Consultant für Datenbank-Technologie und Text Retrieval bei Oracle. </biographie>
oder <biographie><job>Studium der Computerlinguistik und
Phonetik</job> an der <institution>Universität Trier</institution>. Anschließend <job>Consultant für Datenbank-Technologie und Text Retrieval</job> bei <institution>Oracle</institution>.</biographie>
Mixed Content
Einführung in XML
Syntax von Attributen 1/2
41 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Zugehörige DTD:
<!ELEMENT referent (name, vorname+, adresse, biographie)>
<!ATTLIST referent veranstaltung CDATA #REQUIRED>
Start-Tag Ende-Tag Elementinhalt
Attributname Attributwert
Attribute werden einem Element des XML-Dokumentes
zugeordnet:
<referent veranstaltung = „WCM“> … </referent>
Einführung in XML
Syntax von Attributen 2/2
42 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Zur Erinnerung: XML-Dokumente sind Bäume!
Beispiel:
<referent veranstaltung=“WCM“>
<name>Schneider</name>
<vorname>Roman</vorname>
</referent>
Elementknoten
Textknoten
Attributknoten
WCM
veranstaltung
name vorname
Schneider Roman
referent
Einführung in XML
Deklaration von Attributen in einer DTD
43 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Attribute haben:
- einen Namen
- einen Typ
(CDATA, ID, IDREF/IDREFs,
ENTITY/ENTITYS,
NMTOKEN/NMTOKENS (name tokens, dürfen Zahlen im Namen enthalten) )
oder Aufzählung möglicher Werte (wert1|wert2|...)
- eine Angabe, ob das Attribut auftreten muss
(#REQUIRED, #IMPLIED oder #FIXED)
- einen optionalen Defaultwert (bei #FIXED ist dieser sogar erforderlich!)
<!ATTLIST referent veranstaltung
CDATA #REQUIRED>
<!ATTLIST referent veranstaltung
CDATA #FIXED "WCM">
Einführung in XML
Attribute mit Identifikations(referenz)wert: ID / IDREF
44 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Attribute können als ID/ IDREF (1:1) bzw. IDREFS (1:n) definiert sein.
ID-Werte innerhalb einer Instanz müssen eindeutig sein (wichtiges Feature vor allem im Hinblick auf Script-Sprachen)!
<!ELEMENT referent (name, vorname+,
adresse, biographie)>
<!ATTLIST referent veranstaltung IDREFS
#REQUIRED>
<!ELEMENT vorlesung (name, ..)>
<!ATTLIST vorlesung vorlesungsbez
ID #REQUIRED>
<!ELEMENT seminar (name, ..)>
<!ATTLIST seminar seminarbez
ID #REQUIRED>
<referent veranstaltung=“WCM“>
<name>...</name>
</referent>
<referent veranstaltung=“FS WCM“>
<name>...</name>
</referent>
<vorlesung vorlesungsbez=“WCM“>
<name>Wissens-/Contentmanagement</name>
</vorlesung>
<seminar seminarbez=“FS“>
<name>Forschungsseminar</name>
</seminar>
Erst durch die Werte des IDREF-Attributs ergibt sich, welche IDs (vorlesungsbez oder
seminarbez) referenziert werden. Diese können verschiedenen Elementtypen (vorlesung,
seminar) zugeordnet sein. => anderes Konzept als (Fremd-)Schlüssel in Datenbanken!
Einführung in XML
Vergleich der Mächtigkeit: Elemente vs. Attribute
45 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Elemente
Quantifizierer 1/?/+/*
Alternativen |
keine Defaultwerte
keine Aufzählungstypen
geeignet für komplexere
Informationen
Einsatz für Darstellung von Primärdaten
Attribute
#REQUIRED/#IMPLIED
keine Alternativen
Defaultwerte
Aufzählungstypen (enumerations)
geeignet für wenig detaillierte Informationen
Einsatz für Darstellung von Metadaten
Einführung in XML
Entities 1/5
46 Dr. Roman Schneider Modul Wissens- und Contentmanagement
• Entities (Singular: Entity) sind definierte Kürzel für Textbausteine,
Benennung von Zeichen usw.
• Allgemeine Entity-Deklaration zur Definition von Dokumentbestandteilen:
<!ENTITY termin ´2. Dezember 2015´>
<!ENTITY themen ´XML-Standards und XML-Datenbanken´>
<vorlesung>
Die Vorlesung findet am &termin; statt.
Es werden &themen; vorgestellt.
</vorlesung>
Einführung in XML
Entities 2/5
47 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Vordefinierte Entities zur Verwendung spezieller Zeichen:
< für <
> für >
& für &
' für ´
" für “
Diese speziellen Zeichen sollten nicht unkodiert im Text dargestellt werden,
da sie eine besondere Bedeutung (für XML-Syntax) haben.
Jeder XML-Prozessor muss Entities auswerten können!
Einführung in XML
Entities 3/5
48 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Character Entities: Recommendation „XML Entity Definitions for Characters“ (2010)
“literarisch” zur Definition von Sonderzeichen
– à: à
oder numerisch mit Dezimalzahlen im Bereich 0..255:
– für Zeichen der erweiterten ASCII-Menge (ISO 8859/1 = Latin-1)
– à: à
Dezimalzahlen im Bereich 256..65535 für Unicode-Zeichen (ISO 10646)
Anstelle von Dezimalzahlen lassen sich auch Hexadezimalzahlen verwenden, diesen wird ein x vorangestellt:
– à: à
Einführung in XML
Entities 4/5
49 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Entities zur Einbindung externer Dateiformate:
Bilder, Animationen, Videos und ähnliches (evtl. via MIME-Types)
Angaben werden nicht geparst!
Jeweilige Anwendung muss mit Inhalten umgehen können!
Syntax: <!ENTITY name SYSTEM value NDATA TYPE>
<!ELEMENT referent (name, vorname+, adresse, biographie)>
<!ATTLIST referent bild ENTITY #IMPLIED>
<!ENTITY bild_schneider SYSTEM "schneider.gif" NDATA GIF>
<!NOTATION GIF SYSTEM "image/gif">
<referent bild="bild_schneider"> … </referent>
Einführung in XML
Entities 5/5
50 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Parameter Entities:
zur Verwendung in DTDs
Beispiel:
<!ENTITY % adressdef ´(ort,plz,strasse,nummer)´>
...
<!ELEMENT adresse %adressdef;>
Einsatz zur Deklaration von mehrfach auftretenden Kombinationen
Ziel: konsistente Wiederverwendung, Modularisierung
Einführung in XML
Processing Instructions
51 Dr. Roman Schneider Modul Wissens- und Contentmanagement
PI: Anweisungen für die Verarbeitung einesXML-Dokuments
Syntax: <? PI-Name PI-Anweisung ?>
Widerspruch zur Trennung von Inhalt & Weiterverarbeitung/Layout!?
In gewissem Sinne können Processing Instructions als ein Rückgriff auf die Vergangenheit angesehen werden, da sie dem Benutzer die Möglichkeit geben, system-spezifische Auszeichnungen an ein Anwendungsprogramm in seiner eigenen Sprache zu übermitteln. [...] In einer perfekten Welt wären [Processing Instructions] nicht notwendig, aber, wie Sie vielleicht bemerkt haben, die Welt ist nicht perfekt. (C. Goldfarb 1990: SGML Handbook)
Beispiele:
<?xml version="1.0"?> XML-Header mit Versionsangabe
<?xml-stylesheet type="text/xsl" href="my-style.xsl"?> Zuweisung eines Stylesheets
<?apache include file="fusszeile.html" ?> Alternative Notation für Apaches SSI-Mechanismus
Abgesehen von etablierten Einsatzbereichen (s.o.) sparsam einsetzen!
Denn: Kann sichergestellt werden, dass Anwendung die PI auswerten kann?!
Einführung in XML
Kommentare
52 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Dürfen in DTDs und in XML-Dokumenten auftreten
Verwendung:
– Strukturierung von Dokumenten
– Gliederung
– Lesbarkeit für den Anwender erhöhen
Kommentare lassen sich prinzipiell durch Applikationen auswerten (z.B. mit XML-Prozessoren, XSLT)
Dennoch nicht geeignet, um Informationen darzustellen, die originär
in XML-Elemente/-Attribute oder Processing Instructions gehören!
Syntax:
<!-- Dies ist ein Beispielkommentar -->
Einführung in XML
Aufbau eines XML-Dokumentes
53 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Überblick: Bestandteile eines XML-Dokuments
Vorspann (Prolog)
DTD
XML (Body)
=> DTD und XML-Body wurden bereits vorgestellt, wie sieht der Vorspann aus?
Einführung in XML
Vorspann eines XML-Dokuments 1/2
54 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Der XML-Vorspann enthält Meta-Informationen über das Dokument.
Er umfasst folgende Bestandteile:
version
– gegenwärtig nur 1.0, 1.1
– falls zukünftig weitere Versionen als W3C-Empfehlungen verabschiedet werden, ermöglicht der Parameter deren angemessene Verarbeitung
encoding (optional)
- Kodierung des Dokuments, z.B.: ISO-8859-1, UTF-8, UTF-16
- muss durch alle XML-Prozessoren unterstützt werden
standalone (optional)
– 'yes' spezifiziert, dass dem Dokument keine externe Strukturdefinition (DTD oder XML-Schema) zugeordnet wird
– Defaultwert 'no'‚ wenn externe Deklaration definiert ist und standalone nicht angegeben ist
Anbindung der DTD
Einführung in XML
Vorspann eines XML-Dokuments 2/2
55 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Beispiele:
<?XML version="1.0" encoding="UTF-8"
standalone="yes">
<?XML version="1.0" encoding="ISO-8859-1"
standalone="no">
<!DOCTYPE bericht SYSTEM “bericht.dtd"> DTD-Anbindung
Einführung in XML
Eigenschaften von XML-Dokumenten: wohlgeformt vs. gültig 1/2
56 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Wohlgeformtheit
Dokument syntaktisch korrekt? Überprüft wird: – Alle Elemente müssen ein Start-Tag und ein Ende-Tag haben, außer leere
Elemente (<leer/>)
– Korrekte Schachtelung von Tags
– Alle Attributwerte stehen in Anführungsstrichen
– Ohne zugeordnete DTD sind alle Attribute per default vom Typ CDATA
– Keine mehrfach auftretenden Attributnamen zu einem Element
– Alle Zeichen, die Markup sein könnten (Bsp <, &), dürfen nicht im Text auftreten, sondern müssen durch Entityreferenzen (< &) ersetzt werden
– ...
Nebeneffekt: Verlernen schlechter Eigenschaften, die man sich bei der Webseitenerstellung mit HTML leicht angewöhnt
Einführung in XML
Eigenschaften von XML-Dokumenten : wohlgeformt vs. gültig 2/2
57 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Gültigkeit: Rückgriff auf Dokumentregeln
Das XML-Dokument ist wohlgeformt und entspricht der
zugeordneten DTD / dem Schema!
Getestet wird z.B.:
– Entsprechen die Inhaltsmodelle der Elemente (=
Strukturierung/Schachtelung) der DTD bzw. dem Schema?
– Sind alle verwendeten Attribute definiert?
– Umgekehrt: Sind alle verlangten Inhalte/Strukturen
vorhanden?
XML-Dokumente
Dokument-
beschreibung
Einführung in XML
Eine andere Methode zur Strukturbeschreibung 1/2
58 Dr. Roman Schneider Modul Wissens- und Contentmanagement
XML-Schema (wird hier nur kurz dargestellt)
– Genauere Darstellung von Strukturinformation möglich,
Beispiele: minOccurs, maxOccurs, …
– Vorteil: Schemata sind selbst XML und daher intuitiv lesbar (?)
und verarbeitbar (!)
– 41 Standard-Datentypen (string, boolean, decimal, date, …)
– Benutzerdefinierte Datentypen möglich; Beispiel:
<xsd:element name="plz" type="plz"/>
<xsd:simpleType name="plz">
<xsd:restriction base="xsd:integer"/>
<xsd:length value="5"/>
</xsd:simpleType>
Einführung in XML
Eine andere Methode zur Strukturbeschreibung 2/2
59 Dr. Roman Schneider Modul Wissens- und Contentmanagement
<xs:complexType name="Adresse">
<xs:complexContent> <xs:restriction base="xs:anyType"> <xs:sequence> <xs:element name="Ort" minOccurs="1" maxOccurs="1" type="ort" /> <xs:element name="PLZ" minOccurs="1" maxOccurs="1" type="xs:integer" /> <xs:element name= "Strasse" minOccurs="1" maxOccurs="1" type= "xs:string"/> <xs:element name="Nr" minOccurs="1" maxOccurs="1" type="hausnummer"/> </xs:sequence> </xs:restriction> </xs:complexContent>
</xs:complexType>
<xs:element name="adresse" type="Adresse">
Einführung in XML
Zusammenfassung 1/2
60 Dr. Roman Schneider Modul Wissens- und Contentmanagement
XML-Dokumente beschreiben Struktur und Inhalt von Dokumenten,
nicht deren Darstellung/Layout!
Wohlgeformte XML-Dokumente (Instanzen) bestehen aus:
Elementen
Attributen
Processing Instructions
Kommentaren
Ihnen können als Strukturbeschreibung externe und interne DTDs
(oder XML Schemata) zugeordnet sein. Gültigkeit der XML-
Dokumente wird daran getestet.
Einführung in XML
Zusammenfassung 2/2
61 Dr. Roman Schneider Modul Wissens- und Contentmanagement
Durch die flexible Syntax können verschiedenste Arten von
Informationen dargestellt und in der Baumstruktur adressiert
werden (mit ►XPath).
Palette reicht von numerischen Daten bis hin zu komplex
strukturierten Volltexten bzw. multimedialen Inhalten.
Im Praxiseinsatz ist eine performante, dauerhafte Speicherung
erforderlich.
=> Datenbanken / Content Management Systeme!