74
Prof. Dr. Fabian Glasen Content Management Systeme 1 XML eXtensible Markup Language

XML eXtensible Markup Language

  • Upload
    marge

  • View
    79

  • Download
    0

Embed Size (px)

DESCRIPTION

XML eXtensible Markup Language. XML. Web-Sites www.w3.org/xml www.xml.org xml.apache.org www.microsoft.com/xml/ www.xml.com. XML. Literatur Niedermair Elke, Niedermair, Michael, [2001]: XML Das grosse Buch, Data Becker, Düsseldorf. - PowerPoint PPT Presentation

Citation preview

Page 1: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 1

XMLeXtensible Markup Language

Page 2: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 2

XML

Web-Sites

• www.w3.org/xml

• www.xml.org

• xml.apache.org

• www.microsoft.com/xml/

• www.xml.com

Page 3: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 3

XML

Literatur• Niedermair Elke, Niedermair, Michael,

[2001]: XML Das grosse Buch, Data Becker, Düsseldorf.

• Rothfuss, Gunther / Ried, Christian, [2001]: Content Management mit XML, Springer, Berlin.

Page 4: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 4

XML• XML ist eine Metasprache zur Definition von

Markupsprachen (z.B. HTML)• XML ist selbst eine Markup-Sprache• XML definiert eine hierarchische Struktur für

ein Dokument• Die Struktur kann mittels einer DTD oder

XML-Schema festgeschrieben werden• XML sagt nichts darüber aus, wie ein

Dokument in einem Browser angezeigt wird.• Zur Spezifikation der Anzeige können

Stylesheets verwendet werden (CSS/ XSL)

Page 5: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 5

XML

XML wurde u.a. entworfen, um eine einfache Implementierung und Zusammenarbeit mit

• SGML und• HTML

zu gewährleisten.

Page 6: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 6

XML

Beispiel<Buecher>

<Buch><Titel>....

</Buch><Buch>

....</Buch>

</Buecher>

Root-Knoten

Knoten

Page 7: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 7

XML<?xml version="1.0" encoding="ISO-8859-1" ?><PERSONEN> <PERSON> <NAME> Nikolaus Weihnachtsmann </NAME> <STRASSE> Eisscholle 1 </STRASSE> <PLZ> 2412 </PLZ> <ORT> Nordpol </ORT> <TEL> 012/241200 </TEL> </PERSON> <PERSON> <NAME> Oskar Osterhase </NAME> <STRASSE> Eierring 28 </STRASSE> <PLZ> 87654 </PLZ> <ORT> Eierhausen </ORT> <TEL> 034/678376 </TEL> </PERSON> <PERSON> <NAME> Käptn Blaubär </NAME> <STRASSE> Schwindelweg 3 </STRASSE> <PLZ> 21211 </PLZ> <ORT> Lügenbeutel </ORT> <TEL> 08765/324553 </TEL> </PERSON></PERSONEN>

Page 8: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 8

XML

Jedes XML-Dokument muss mit einer XML-Deklaration beginnen

<?xml version=„1.0“ encoding=„iso-8859-1“?>

Page 9: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 9

XML

• Kommentare• <!-- Kommentar-Text --!>• Processing Instruction (PI)• <? PITarget etc. ?>• Beispiel für PI: XML-Deklaration• <?xml version=„1.0“?>

Page 10: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 10

XML

Schema:Da auch bei „sprechenden“ Tagnamen nicht sicher gestellt ist,

dass jeder Nutzer die Tagnamen eindeutig interpretiert, kann zusätzlich eine Definition (Beschreibung) dafür gegeben werden.

Eine solche Definition (Beschreibung) nennt man ein Schema, wenn die dadurch implizierte Struktur häufiger wieder verwendet werden soll.

Ein Schema ist als ein Modell für eine Klasse gleichartiger Dokumente mit wiederkehrendem Muster.

Das Schema beschreibt die zugelassenen Tags und ihre Anordnung in einem gültigen Dokument

Page 11: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 11

XML

Schema:

Um die gewünschte Strukturvorgabe systematisch zu ermöglichen (werden benötigt) bzw. stehen zur Verfügung:

• DTD- (Document Type Definition)• XML-SchemaXML-Prozessor validiert die XML-Dokumente

hinsichtlich der zugehörigen DTDs.

Page 12: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 12

DTD (Beispiel)

<!DOCTYPE PERSONEN [<!ELEMENT PERSONEN (#PCDATA)><!ELEMENT PERSON (#PCDATA)><!ELEMENT NAME (#PCDATA)><!ELEMENT STRASSE (#PCDATA)><!ELEMENT PLZ (#PCDATA)><!ELEMENT ORT (#PCDATA)><!ELEMENT TEL (#PCDATA)>

]>

Page 13: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 13

XML CSS

Beispiel für CSS Datei person.css

NAME {font family: Arial; font size: 20pt; color: red}

STRASSE {font family: Arial; font size: 16pt; color: yellow}

PLZ {font family: Arial; font size: 16pt; color: green}

ORT {font family: Arial; font size: 16pt; color: blue}

TEL {font family: Arial; font size: 12pt; color: magenta}

Page 14: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 14

XMLXML ist eine generalisierte • Auszeichnungssprache (markup language) • Inhaltsbeschreibungssprache• eine Tag-Sprache (wie HTML)• keine Seitenbeschreibungssprache (wie HTML)

generalisiert: Benutzer kann eigene Tags definieren (Spezialsprachen z.B. XHTML)

grosser Bruder: SGML (XML ist Teilmenge von SGML schlanker, aufwärtskompatibel)

Page 15: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 15

XMLXML ist ein Sprachbaukasten zur Erzeugung bedarfsgerechter neuer Auszeichnungssprachen– Erweiterbarkeit

XML erlaubt die Definition neuer Tags und Attribute

– StrukturXML erlaubt die Darstellung beliebig tief verschachtelter hierarchischer Strukturen

– ValidierungXML ermöglicht die Prüfung der strukturellen Gültigkeit der Dokumente (bezüglich DTD)

Page 16: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 16

XML• XML-Dokumente können von einer Person

oder einer beliebigen Anwendung erzeugt und per Messaging über ein Netzwerk verschickt und von einer anderen Person oder Applikation interpretiert werden.

• XML-Dokumente können relativ einfach zur Präsentation in verschiedenen Ausgabeformaten (HTML, WML, PDF, RTF etc.) aufbereitet werden.

Page 17: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 17

XML

Tag-Sprachen erlauben • Strukturierung • Austausch• Verarbeitung der Inhalte unabhängig von• Plattformen• Betriebssystemen• spezifischer Anwendungssoftware

Page 18: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 18

XML

Funktionen des Markups in einem XML-Dokument:

• Aufteilung auf Speicherungseinheiten• Beschreibung der hierarchischen

Struktur• Verknüpfung von Attribut-Wert-Paaren

mit der Struktur

Page 19: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 19

XML

XSLXSLT

XHTML DOMRDF

DTD

XML-SchemaSOX XDR

XML Data ReducedSchema for Object-Oriented XML

Resource DescriptionFramework

Document ObjectModel

ebXML

xCBL

OFX

OTP

E-Business- XML

Open TradingProtocol

Open FinancialExchange

Common BusinessLanguage

Schema-Sprachen

Business-Sprachen

SOAP

WSDL

UDDI

WEB-Services

CSS

Visualisierung / Transformation

Page 20: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 20

XML

XML basierte Standards• XML-Basisstandard (XML als Metasprache)• XML Kernstandards (Xpath, Xlink, DOM,

XML-Schema, XSLT)• Horizontale Standards

(branchenunabhängige DTDs: WML, XHTML, SVG (Scalable Vector Graphics), xCBL, ebXML)

• Vertikale Standards (branchenspezifische DTDs und zugehörige Vokabularien)

Page 21: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 21

XML

Standardisierungsaktivitäten

• xCBL (Common Business Language)

• ebXML (Electronic Business XML)

• OFX (Open Financial Exchange)

• OTP (Open Trading Protocol)

Page 22: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 22

XML

XML eignet sich als• Visualisierungssprache

(formatunabhängig)

• Datenaustauschsprache für SCM (EDI)

• Metasprache zur Definition von Markup-Sprachen

Page 23: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 23

XML - XSL

XML-Dokument

Transformations-regeln

XSL-Stylesheet HTML

WMLPDF RTF Text

...

XML TeX

Transformationeines XML-Dokumentesin andere Formate

Page 24: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 24

XML - XSL

XML

XSL

HTMLXSLProzessor

Page 25: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 25

XML

Informationen können in XML

• als Elemente

oder

• als Attribute

abgelegt werden.

Page 26: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 26

XML

Beispiel: Ablage als Element

...<Adresse>

<Strasse>Inselgasse 25</Strasse><PLZ>78462</PLZ><Ort>Konstanz</Ort>

</Adresse>...

Page 27: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 27

XML

• Beispiel: Ablage als Attribut

...<Adresse strasse=„Abc“ plz=„20111“ ort=„Hamburg“/>...

Attribute sollten möglichst Metainformationen zu den zugehörigen Elementen enthalten:

<Preis Währung=„US-Dollar“>4711</Preis>

Page 28: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 28

XML

Beispiel: Ablage als Attribut und als Element

...<?xml version 1.0?>....<BUCH><TITEL>XML im Content Management</TITEL><VERLAG> ort=„Heidelberg“ >Springer</VERLAG></BUCH>

Page 29: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 29

XML

CDATA-Abschnitte• innerhalb von CDATA-Abschnitten werden

Sonderzeichen z.B. für Tags etc. nicht interpretiert.

• <![CDATA [<gruss>Hallo Welt</gruss>]]>

im Gegensatz zu:• <?xml version=„1.0“?>• <gruss>Hallo Welt</gruss>

Page 30: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 30

XML CDATA

<?xml version="1.0" encoding="ISO-8859-1"?>

<ungleichung>

<![CDATA[Aufgabe: x+27<65

Lösung:

x<65-27 =>

x<38

]]>

</ungleichung>

Page 31: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 31

XML

XML-Prozessorenkönnen XML-Dokumente lesen

(interpretieren), d.h.:Sie können • auf die Struktur zugreifen • über die Struktur auf den Inhalt von

XML-Dokumenten zugreifen • Struktur und Inhalt verändern

Page 32: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 32

XML und CSS

(Cascading Style Sheets)

Page 33: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 33

XML CSS

• CSS entsprechen in Word Druckformatvorlagen (Absatzformate)

• ermöglichen Layoutdefinition für neue Tags einer Web-Site, die in XML oder HTML verwendet werden

• durch Änderung der Tag-Definition in CSS-Datei wird das Design in allen betroffenen Web-Seiten geändert

Page 34: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 34

XML CSS

• Gleichen XML-Tags in unterschiedlichen XML-Dokumenten kann durch CSS ein einheitliches Layout zugewiesen werden

• das Layout aller XML-Dateien, die ein Tag und den Bezug zur einer CSS-Datei enthalten, kann durch Änderung der Tag-Definition in der CSS-Datei einfach für alle XML-Dokumente verändert werden.

Page 35: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 35

XML CSS

<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet href="katalog1.css" type="text/css"?><Katalog>

<Titel> Der fromme Dieb </Titel><Autor> Ellis Peters </Autor><Kategorie> Krimi </Kategorie><Verlag> Heyne Verlag </Verlag><Erscheinungsjahr> 1998 </Erscheinungsjahr><Seitenzahl> 319 </Seitenzahl><ISBN-Nummer> 3-453-13650-0 </ISBN-Nummer><Inhaltsangabe> Nach einem Unwetter müssen die ... </Inhaltsangabe><Preis> 12,90 DM </Preis><Cover src="cover1.gif"></Cover>

</Katalog>

Page 36: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 36

XML CSS

Beispiel 1 für CSS-Datei katalog1.css

Titel, Verlag, ISBN-Nummer {font-family:Arial}

Autor, Erscheinungsjahr,Inhaltsangabe {font-family:"Courier New"}

Kategorie, Seitenzahl, Preis {font-family:Times}

Page 37: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 37

XML CSS

Beispiel 2 für CSS-Datei katalog1.css

Titel, Verlag, ISBN-Nummer, Autor, Erscheinungsjahr,Inhaltsangabe, Kategorie, Seitenzahl, Preis {display:block}

Titel, Verlag, ISBN-Nummer {font-family:Arial}Autor, Erscheinungsjahr,Inhaltsangabe {font-

family:"Courier New"}Kategorie, Seitenzahl, Preis {font-family:Times}

Page 38: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 38

XML - CSSBeispiel 3 für CSS-Datei katalog1.css

Titel {font-family:Arial; font-size: 18pt; font-style: italic}

Autor {font: bold 16pt Arial; text-decoration: underline}

Kategorie, Verlag, Erscheinungsjahr,Seitenzahl, ISBN-Nummer,

Inhaltsangabe, Preis , Neupreis {font-family:Times; font-size: 12pt}

Seitenzahl {font-family:Arial; font-size: 10pt}

ISBN-Nummer, Neupreis {font-weight: bold}

Kategorie {font-family:Arial; font-size: 12pt}

Preis {text-decoration: line-through}

Page 39: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 39

DTD(Document Type Definition)

Page 40: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 40

XML - DTD

Die DTD definiert die Struktur eines XML-Dokumentes

es müssen alle Elemente, Attribute und Entitäten spezifiziert werden

Wird zu Beginn eine Reihenfolge der Elemente spezifiziert, (Inhaltsmodell) müssen die Elemente in der festgelegten Reihenfolge im Dokument auftauchen.

XML-Dokumente können auch ohne DTD angelegt werden

Falls DTD einem XML-Dokument zugwiesen wird, muss sich das Dokument nach den Vorgaben richten

Page 41: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 41

XML - DTD

DTD liefert Unterstützung bei Interpretation durch Menschen und Programme und beim Austausch von XML-Dokumenten

aber:Semantik / Bedeutung

muss letztlich zwischen Menschen vereinbart werden. Sie kann z.B. durch Typdefinitionen verbessert werden (XML-Schema)

Page 42: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 42

XML DTD

<!DOCTYPE Katalog[<!ELEMENT Katalog (Titel, Autor, Kategorie, Verlag, Erscheinungsjahr, Seitenzahl, ISBN-Nummer, (Inhaltsangabe | Autorensteckbrief), Preis, Cover)+ ><!ELEMENT Titel (#PCDATA)><!ELEMENT Autor (#PCDATA)><!ELEMENT Kategorie (#PCDATA)><!ELEMENT Verlag (#PCDATA)><!ELEMENT Erscheinungsjahr (#PCDATA)><!ELEMENT Seitenzahl (#PCDATA)><!ELEMENT ISBN-Nummer (#PCDATA)><!ELEMENT Inhaltsangabe (#PCDATA)>

<!ELEMENT Autorensteckbrief (#PCDATA)><!ELEMENT Preis (#PCDATA)><!ELEMENT Cover EMPTY><!ATTLIST Cover src CDATA #REQUIRED>]>

Page 43: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 43

XML - DTD

Die Dokumenttyp-Deklaration beginnt mit

<!DOCTYPE

und endet mit

]>

Die Element-Deklaration

<!ELEMENT name inhalt>

Gross- und Kleinschreibung wird strikt beachtet!!!

ELEMENT und die Schlüsselwörter müssen gross geschrieben werden.

Page 44: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 44

XML - DTD

Wo sich die DTD befinden kann:• im Dokument selbst (hohe Redundanz)• in separater Datei auf dem gleichen Rechner

wie das Dokument (benötigt Verweis im XML-Dokument)<!DOCTYPE Gespraech SYSTEM „gespraech.dtd>

• irgendwo im Netz (Gefahr eines Netzwerkfehlers)<!DOCTYPE Gespraech SYSTEM http://www.dtds.de/gespraech.dtd>

• im Browser (Beispiel XHTML)

Page 45: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 45

DTD

Interne / externe DTDs

• interne DTDs werden in XML-Datei selbst definiert

• externe DTDs werden in eigener Datei definiertVerweis:<!DOCTYPE wurzelelement SYSTEM „DTD-URL“>

Page 46: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 46

DTD externe DTD (Beispiel)

<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE Katalog SYSTEM "katalog.dtd"><Katalog>

<Titel> Der fromme Dieb </Titel><Autor> Ellis Peters </Autor><Kategorie> Krimi </Kategorie><Verlag> Wilhelm Heyne Verlag GmbH&amp;Co. KG, München </Verlag><Erscheinungsjahr> 1998 </Erscheinungsjahr><Seitenzahl> 319 </Seitenzahl><ISBN-Nummer> 3-453-13650-0 </ISBN-Nummer><Inhaltsangabe> Nach einem Unwetter müssen ....</Inhaltsangabe><Preis> 12,90 DM </Preis><Cover src="cover1.gif"></Cover>

</Katalog>

Page 47: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 47

DTD externe DTD (Beispiel)

<!ELEMENT Katalog (Titel, Autor, Kategorie, Verlag, Erscheinungsjahr, Seitenzahl, ISBN-Nummer, (Inhaltsangabe | Autorensteckbrief), Preis, Cover*)+ ><!ELEMENT Titel (#PCDATA)><!ELEMENT Autor (#PCDATA)><!ELEMENT Kategorie (#PCDATA)><!ELEMENT Verlag (#PCDATA)><!ELEMENT Erscheinungsjahr (#PCDATA)><!ELEMENT Seitenzahl (#PCDATA)><!ELEMENT ISBN-Nummer (#PCDATA)><!ELEMENT Inhaltsangabe (#PCDATA)>

<!ELEMENT Autorensteckbrief (#PCDATA)><!ELEMENT Preis (#PCDATA)><!ELEMENT Cover EMPTY><!ATTLIST Cover src CDATA #REQUIRED>

Page 48: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 48

XML - DTD

Gültigkeitsbeschränkungen Attribute

#REQUIRED Attribut muss immer auftreten

#IMPLIED Attribut muss nicht auftreten

Elemente:

* Element kann beliebig oft vorkommen

? ist optional

+ muss mindestens einmal vorkommen

| Alternative bzw. Sequenz von Elementen

Page 49: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 49

XML - DTD

Definition der Häufigkeit von Elementen

?: einmal oder keinmal*: einmal oder keinmal oder mehrmals+: mindestens einmal oder mehrmals

Page 50: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 50

XML - DTD

Beispiel E-Mail (DTD):<!- - E-Mail-DTD version 2 - -><!ELEMENT email (empfaenger, kopieAn*,

absender, thema, nachricht)>

<!ELEMENT empfaenger (#PCDATA)><!ELEMENT kopieAn (#PCDATA)><!ELEMENT absender(#PCDATA)><!ELEMENT thema (#PCDATA)><!ELEMENT nachricht (#PCDATA)>

Page 51: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 51

XML - DTD

Beispiel E-Mail (Instanz):<?xml version=„1.0“?><!DOCTYPE email SYSTEM email2.dtd><email>

<empfaenger>[email protected]</empfaenger><kopieAn>[email protected]</kopieAn><kopieAn>[email protected]</kopieAn><absender>[email protected]</absender><thema>Gruss</thema><nachricht>Hallo how are you?</nachricht>

</email>

Page 52: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 52

XML - DTD (Inhaltsmodell)

<!DOCTYPE Buch [<!ELEMENT Buch (Titel, Autor, Kategorie, Verlag, Erscheinungsjahr, Seitenzahl, ISBN-Nummer, Inhaltsangabe, Preis, Cover) ><!ELEMENT Titel (#PCDATA)><!ELEMENT Autor (#PCDATA)><!ELEMENT Kategorie (#PCDATA)><!ELEMENT Verlag (#PCDATA)><!ELEMENT Erscheinungsjahr (#PCDATA)><!ELEMENT Seitenzahl (#PCDATA)><!ELEMENT ISBN-Nummer (#PCDATA)><!ELEMENT Inhaltsangabe (#PCDATA)><!ELEMENT Preis (#PCDATA)><!ELEMENT Cover EMPTY><!ATTLIST Cover src CDATA #REQUIRED>

]>

Page 53: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 53

XML - DTD (Inhaltsmodell/Alternative)<!DOCTYPE Buch [

<!ELEMENT Buch (Titel, Autor, Kategorie, Verlag, Erscheinungsjahr, Seitenzahl, ISBN-Nummer, (Inhaltsangabe | Autorensteckbrief), Preis, Cover) ><!ELEMENT Titel (#PCDATA)><!ELEMENT Autor (#PCDATA)><!ELEMENT Kategorie (#PCDATA)><!ELEMENT Verlag (#PCDATA)><!ELEMENT Erscheinungsjahr (#PCDATA)><!ELEMENT Seitenzahl (#PCDATA)><!ELEMENT ISBN-Nummer (#PCDATA)><!ELEMENT Inhaltsangabe (#PCDATA)>

<!ELEMENT Autorensteckbrief (#PCDATA)><!ELEMENT Preis (#PCDATA)><!ELEMENT Cover EMPTY><!ATTLIST Cover src CDATA #REQUIRED>]>

Page 54: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 54

XML - DTDBeispiel Häufigkeit<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE Buch [

<!ELEMENT Buch (Titel, Autor, Kategorie+) ><!ELEMENT Titel (#PCDATA)><!ELEMENT Autor (#PCDATA)><!ELEMENT Kategorie (#PCDATA)>

]><Buch>

<Titel> Der fromme Dieb </Titel><Autor> Ellis Peters </Autor><Kategorie> Krimi </Kategorie><Kategorie> Historischer Roman </Kategorie>

</Buch>

Page 55: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 55

XML (DTD) - Defizite

• XML hat kein Typsystem (nur PCDATA / CDATA)

• ermöglicht keine Darstellung von n:m-Relationen

• liefert keinen Beitrag zu Prozessdefinition und Abwicklung

• XML ist langsam• XML ist nicht objektorientiert

(Vererbungsbeziehungen zwischen Dokumenttypen fehlen)

Page 56: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 56

XML- Schema

Page 57: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 57

XML-Schema

Nachfolger der XML-DTD

Weitaus ausdrucksstärker als DTD:

• Vielzahl elementarer Datentypen• Komplexe Datentypen • Verteilte Schemata (im Web verteilt)• Vererbung zwischen Typdefinitionen• Für Substrukturen eines Dokumentes

können Schlüssel definiert werden.

Page 58: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 58

XML

Schemasprachen (XML-Schema) beschreiben XML-Dokumenttypen

XML-Schema arbeitet mit Vererbung

Page 59: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 59

XML-Schema

XML-Schema ist selbst eine XML-Sprache

Dadurch können XML-Parser auch auf Schemadefinitionen angewendet werden.

Page 60: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 60

XML-Schema

Beispiel

<xsd:complexType name=„Adresse“><xsd:sequence>

<xsd: element name=„Name“ type=„xsd:string/><xsd: element name=„Strasse“ type=„xsd:string/><xsd: element name=„Stadt“ type=„xsd:string/><xsd: element name=„PLZ“ type=„xsd:decimal/>

</xsd:sequence><xsd:attribute name=„Land“ type=„xsd:string“

use=optional“ value=„DE“/></xsd:complexType>

Page 61: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 61

XML-Schema

Beispiel

<xsd:complexType name=„BestellungType“><xsd:sequence>

<xsd: element name=„Lieferadresse“ type=„Adresse“ /><xsd: element name=„ Zahlungsadresse“ type=„Adresse“ /><xsd: element name=„Positionen“ type=„Positionentype“/></xsd:sequence>

<xsd:attribute name=„Datum“ type=„xsd:date“/></xsd:complexType>

Page 62: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 62

Visualisieren und

Gestalten(XSL / XSL-FO / XSLT)

Page 63: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 63

XML - XSL

Visualisierung XSL (eXtensible Stylesheet Language)

ermöglicht unterschiedliche Darstellungen des gleichen XML-Dokumentes in unterschiedlichen Anwendungskontexten

mögliche Zielsprachen:

HTML, RTF, PDF, ASCII Text, EDI, WML (Wireless Markup Language) etc.

Page 64: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 64

XML - XSL

XSL (eXtensible Stylesheet Language)

HTML-Autoren können weiterhin mit HTML und CSS arbeiten

Entwicklungsbausteine in XSL

• Scriptsprache für XSL ist ECMAScript (eine Standardisierung von JavaScript/)

• Flow-Object-Klassen von DSSSL

Page 65: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 65

XML - XSL

XSL umfasst die Sprachen

• XSLT (XSL Transformation)stellt Sprachelemente bereit, die beschreiben, wie die Übersetzung von XML-Dokumente in XML-Dokumente oder in andere Ausgabeformate erfolgen soll

• XSL-FO (XSL Formatierung)stellt Sprachelemente bereit, die beschreiben, wie XML-Elemente angezeigt werden sollen (Schriftart, Grösse etc.)

Page 66: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 66

XML - XSL

Wo / wie erfolgt die Transformation???• im Client (Browser)

XML und XSL-Dokument werden zum Browser an den Browser übertragen und dort verarbeitet

• dynamisch am ServerXML und XSL werden bei jedem Aufruf dynamisch am Server verarbeitet

• statisch am ServerXML und XSL werden zu Beginn in HTML (etc.) transformiert und nur bei Änderungen als HTML (etc.) aktualisiert

Page 67: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 67

XML - XSL (Beispiel: kurs.xsl)<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="Kurs"> <html> <body> <xsl:apply-templates/> </body> </html></xsl:template>

<xsl:template match="Einheit"> <p> <xsl:apply-templates/> </p></xsl:template></xsl:stylesheet>

Page 68: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 68

XML - XSL (Beispiel: kurs.xml)<?xml version="1.0" encoding="ISO-8859-1"?><Kurs> <Tag param="Montag"> <Einheit art="Vortrag"> <Zeit>9:00-10:30</Zeit> <Ort>Raum 229</Ort> <Thema>Java in verteilten Systemen</Thema> <Referent>Herr Dr. Müller</Referent> </Einheit> <Einheit art="Kurs"> <Zeit>10:30-12:00</Zeit> <Ort>Raum 228</Ort> <Thema>Java in verteilten Systemen</Thema> <Referent>Herr Peter Marks</Referent> </Einheit> <Einheit art="Kurs"> <Zeit>13:00-17:00</Zeit> <Ort>Raum 228</Ort> <Thema>Java in verteilten Systemen</Thema> <Referent>Herr Peter Marks</Referent> </Einheit> </Tag>

Page 69: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 69

XML - XSL (Beispiel)<Tag param="Dienstag"> <Einheit art="Referat"> <Zeit>9:00-10:00</Zeit> <Ort>Raum 120</Ort> <Thema>XML und Java</Thema> <Referent>Frau Petra Kern</Referent> </Einheit> <Einheit art="Übung"> <Zeit>10:00-12:00</Zeit> <Ort>Raum 120</Ort> <Thema>XML und Java</Thema> <Referent>Frau Petra Kern</Referent> </Einheit> <Einheit art="Übung"> <Zeit>13:00-17:00</Zeit> <Ort>Raum 120</Ort> <Thema>XML und Java</Thema> <Referent>Frau Petra Kern</Referent> </Einheit> </Tag></Kurs>

Page 70: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 70

XML - XSL (Beispiel: kurs.html)<html><body><p>9:00-10:30 Raum 229 Java in verteilten Systemen Herr Dr. M&uuml;ller</p><p>10:30-12:00 Raum 228 Java in verteilten Systemen Herr Peter Marks</p><p>13:00-17:00 Raum 228 Java in verteilten Systemen Herr Peter Marks</p><p>9:00-10:00 Raum 120 XML und Java Frau Petra Kern</p><p>10:00-12:00 Raum 120 XML und Java Frau Petra Kern</p><p>13:00-17:00 Raum 120 XML und Java Frau Petra Kern</p></body></html>

Page 71: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 71

XML - XSL-FO

XSL-FO (Formatierungsobjekte) unterstützen ein vielseitiges visuelles Layout (für professionelles Publishing)– Kopf und Fusszeilen– Fussnoten– Randnotizen– Seitenzahlen– Querverweise

Page 72: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 72

XML - XSL-FO

XSL-FO basiert auf rechteckigen Seiten-Bereichen (Kästen(Areas), die – Text– nichts (Leerraum)– Formatierungsobjekte

enthalten können

Der XSL-Formatierer ermittelt, wo diese Bereiche auf der Seite platziert werden

Page 73: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 73

XML - XSL-FOXSL-FO Areas (Bereichstypen):• Bereichscontainer

oberste Container, kann auf Seite per Koordinaten positioniert werden

• Blockbereichei.d.R: Absätze (können enthalten: Zeilenbereiche, Blockbereiche, Grafik)

• Zeilenbereichenimmt eine Textzeile innerhalb eines Blocks auf, kann Inline-Bereiche enthalten

• Inline-Bereichesind Teile einer Zeile, einzelne Zeichen, Fussnaoten, Referenzen, mathematische Formeln

Page 74: XML eXtensible Markup Language

Prof. Dr. Fabian Glasen Content Management Systeme 74

XML - XSL-FO

Bereichscontainer Kopfzeile

Bereichscontainer Fusszeile

Bereichscontainer Hauptkörper

Zeilenbereich

Blockbereich

Inline-Bereich