wissens- und content-management

61
Institut für Informatik Wissens- und Content-Management Einführung in XML Dr. Roman Schneider

Upload: others

Post on 16-Oct-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Wissens- und Content-Management

Institut für Informatik

Wissens- und

Content-Management

Einführung in XML Dr. Roman Schneider

Page 2: Wissens- und Content-Management

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

Page 3: Wissens- und Content-Management

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?

Page 4: Wissens- und Content-Management

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

Page 5: Wissens- und Content-Management

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

Page 6: Wissens- und Content-Management

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

Page 7: Wissens- und Content-Management

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

Page 8: Wissens- und Content-Management

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

Page 9: Wissens- und Content-Management

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)

Page 10: Wissens- und Content-Management

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, ...)

Page 11: Wissens- und Content-Management

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"

Page 12: Wissens- und Content-Management

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

Page 13: Wissens- und Content-Management

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>

Page 14: Wissens- und Content-Management

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

Page 15: Wissens- und Content-Management

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

Page 16: Wissens- und Content-Management

Einführung in XML

Beispiel Linguistisches Informationssystem

16 Dr. Roman Schneider Modul Wissens- und Contentmanagement

grammisML

Page 17: Wissens- und Content-Management

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

Page 18: Wissens- und Content-Management

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

Page 19: Wissens- und Content-Management

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

Page 20: Wissens- und Content-Management

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

Page 21: Wissens- und Content-Management

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)

Page 22: Wissens- und Content-Management

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

Page 23: Wissens- und Content-Management

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“

Page 24: Wissens- und Content-Management

Einführung in XML

Die XML-Familie

24 Dr. Roman Schneider Modul Wissens- und Contentmanagement

Page 25: Wissens- und Content-Management

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

Page 26: Wissens- und Content-Management

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?

Page 27: Wissens- und Content-Management

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

Page 28: Wissens- und Content-Management

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

Page 29: Wissens- und Content-Management

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

Page 30: Wissens- und Content-Management

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

Page 31: Wissens- und Content-Management

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

Page 32: Wissens- und Content-Management

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

Page 33: Wissens- und Content-Management

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

Page 34: Wissens- und Content-Management

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

Page 35: Wissens- und Content-Management

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?

Page 36: Wissens- und Content-Management

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

Page 37: Wissens- und Content-Management

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)*>

Page 38: Wissens- und Content-Management

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>

Page 39: Wissens- und Content-Management

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>

Page 40: Wissens- und Content-Management

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

Page 41: Wissens- und Content-Management

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>

Page 42: Wissens- und Content-Management

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

Page 43: Wissens- und Content-Management

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">

Page 44: Wissens- und Content-Management

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!

Page 45: Wissens- und Content-Management

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

Page 46: Wissens- und Content-Management

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>

Page 47: Wissens- und Content-Management

Einführung in XML

Entities 2/5

47 Dr. Roman Schneider Modul Wissens- und Contentmanagement

Vordefinierte Entities zur Verwendung spezieller Zeichen:

&lt; für <

&gt; für >

&amp; für &

&apos; für ´

&quot; 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!

Page 48: Wissens- und Content-Management

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

– à: &agrave;

oder numerisch mit Dezimalzahlen im Bereich 0..255:

– für Zeichen der erweiterten ASCII-Menge (ISO 8859/1 = Latin-1)

– à: &#224;

Dezimalzahlen im Bereich 256..65535 für Unicode-Zeichen (ISO 10646)

Anstelle von Dezimalzahlen lassen sich auch Hexadezimalzahlen verwenden, diesen wird ein x vorangestellt:

– à: &#xE0;

Page 49: Wissens- und Content-Management

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>

Page 50: Wissens- und Content-Management

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

Page 51: Wissens- und Content-Management

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?!

Page 52: Wissens- und Content-Management

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 -->

Page 53: Wissens- und Content-Management

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?

Page 54: Wissens- und Content-Management

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

Page 55: Wissens- und Content-Management

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

Page 56: Wissens- und Content-Management

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 (&lt; &amp;) ersetzt werden

– ...

Nebeneffekt: Verlernen schlechter Eigenschaften, die man sich bei der Webseitenerstellung mit HTML leicht angewöhnt

Page 57: Wissens- und Content-Management

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

Page 58: Wissens- und Content-Management

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>

Page 59: Wissens- und Content-Management

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">

Page 60: Wissens- und Content-Management

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.

Page 61: Wissens- und Content-Management

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!