xml extensible markup language

Post on 19-Jan-2016

58 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

TRANSCRIPT

Prof. Dr. Fabian Glasen Content Management Systeme 1

XMLeXtensible 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

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.

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)

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.

Prof. Dr. Fabian Glasen Content Management Systeme 6

XML

Beispiel<Buecher>

<Buch><Titel>....

</Buch><Buch>

....</Buch>

</Buecher>

Root-Knoten

Knoten

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>

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

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

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

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.

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

]>

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}

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)

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)

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.

Prof. Dr. Fabian Glasen Content Management Systeme 17

XML

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

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

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

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)

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)

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

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

Prof. Dr. Fabian Glasen Content Management Systeme 24

XML - XSL

XML

XSL

HTMLXSLProzessor

Prof. Dr. Fabian Glasen Content Management Systeme 25

XML

Informationen können in XML

• als Elemente

oder

• als Attribute

abgelegt werden.

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

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>

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>

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>

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>

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

Prof. Dr. Fabian Glasen Content Management Systeme 32

XML und CSS

(Cascading Style Sheets)

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

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.

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>

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}

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}

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}

Prof. Dr. Fabian Glasen Content Management Systeme 39

DTD(Document Type Definition)

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

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)

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

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.

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)

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

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>

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>

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

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

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

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>staib@ba-loerrach.de</empfaenger><kopieAn>martin@ba-loerrach.de</kopieAn><kopieAn>treffert@ba-loerach.de</kopieAn><absender>glasen@ba-loerrach.de</absender><thema>Gruss</thema><nachricht>Hallo how are you?</nachricht>

</email>

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>

]>

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

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>

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)

Prof. Dr. Fabian Glasen Content Management Systeme 56

XML- Schema

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.

Prof. Dr. Fabian Glasen Content Management Systeme 58

XML

Schemasprachen (XML-Schema) beschreiben XML-Dokumenttypen

XML-Schema arbeitet mit Vererbung

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.

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>

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>

Prof. Dr. Fabian Glasen Content Management Systeme 62

Visualisieren und

Gestalten(XSL / XSL-FO / XSLT)

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.

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

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

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

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>

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>

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>

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>

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

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

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

Prof. Dr. Fabian Glasen Content Management Systeme 74

XML - XSL-FO

Bereichscontainer Kopfzeile

Bereichscontainer Fusszeile

Bereichscontainer Hauptkörper

Zeilenbereich

Blockbereich

Inline-Bereich

top related