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
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&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>[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>
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ü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