760 likes | 888 Views
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.
E N D
XMLeXtensible Markup Language Prof. Dr. Fabian Glasen Content Management Systeme
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
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
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
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
XML Beispiel <Buecher> <Buch> <Titel> .... </Buch> <Buch> .... </Buch> </Buecher> Root-Knoten Knoten Prof. Dr. Fabian Glasen Content Management Systeme
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
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
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
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
XML Schema: Um die gewünschte Strukturvorgabe systematisch zu ermöglichen (werden benötigt) bzw. stehen zur Verfügung: • DTD- (Document Type Definition) • XML-Schema XML-Prozessor validiert die XML-Dokumente hinsichtlich der zugehörigen DTDs. Prof. Dr. Fabian Glasen Content Management Systeme
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
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
XML XML 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
XML XML ist ein Sprachbaukasten zur Erzeugung bedarfsgerechter neuer Auszeichnungssprachen • ErweiterbarkeitXML 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
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
XML Tag-Sprachen erlauben • Strukturierung • Austausch • Verarbeitung der Inhalte unabhängig von • Plattformen • Betriebssystemen • spezifischer Anwendungssoftware Prof. Dr. Fabian Glasen Content Management Systeme
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
Schema for Object-Oriented XML XML Data Reduced E-Business- XML SOX XML-Schema XDR ebXML WEB-Services Common Business Language DTD SOAP xCBL Open Financial Exchange WSDL OFX UDDI Open Trading Protocol OTP Schema-Sprachen Business-Sprachen XML Visualisierung / Transformation XSLT XSL Document Object Model Resource Description Framework XHTML DOM CSS RDF Prof. Dr. Fabian Glasen Content Management Systeme
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
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
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
XML - XSL Transformation eines XML-Dokumentes in andere Formate XML-Dokument Transformations- regeln XSL-Stylesheet HTML ... XML TeX WML Text PDF RTF Prof. Dr. Fabian Glasen Content Management Systeme
XML - XSL XML HTML XSL Prozessor XSL Prof. Dr. Fabian Glasen Content Management Systeme
XML Informationen können in XML • als Elemente oder • als Attribute abgelegt werden. Prof. Dr. Fabian Glasen Content Management Systeme
XML Beispiel: Ablage als Element ... <Adresse> <Strasse>Inselgasse 25</Strasse> <PLZ>78462</PLZ> <Ort>Konstanz</Ort> </Adresse> ... Prof. Dr. Fabian Glasen Content Management Systeme
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
XML Beispiel: Ablage als Attributund 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
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
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
XML XML-Prozessoren kö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
XML und CSS (Cascading Style Sheets) Prof. Dr. Fabian Glasen Content Management Systeme
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
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
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
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
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
XML - CSS Beispiel 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
DTD(Document Type Definition) Prof. Dr. Fabian Glasen Content Management Systeme
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
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
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
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
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
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
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
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
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
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
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