Date post: | 06-Apr-2015 |
Category: |
Documents |
Upload: | gereon-geib |
View: | 112 times |
Download: | 1 times |
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 1 Version 1.0a
XML
• EXTENSIBLE MARKUP LANGUAGE
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 2 Version 1.0a
XML - HTML
• Die statische Bibliothek des Web• Wandlung zu dynamischen Inhalten
– Nicht einfach aus dem Regal zu nehmen– Generiert aus Informationen des
jeweiligen Webservers zum Zeitpunkt des Aufrufes• Lokale Datenbanken• Firmenweite Datenbanken• Andere Webseiten
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 3 Version 1.0a
XML - HTML
• Geschwister beide basierend auf SGML (Standard Gerneral Markup Language)
• Dynamische Information wird häufig noch bearbeitet– Analysiert– Sortiert– Formatiert– Personalisiert
• Web Seiten werden zu Webservices• Dafür wurde XML geschaffen
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 4 Version 1.0a
XML - HTML
– HTML• <p>Acer Aspire 1812
<br> Computer 2000€ 1.830
– In XML• <product>
<model>Acer Aspire 1812</model><haendler>Computer 2000</haendler><preis>€ 1.830</preis>
– Beides könnte im Browser gleich aussehen
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 5 Version 1.0a
XML - HTML
• XML Version hat eingebautes Wissen über die Daten– XML könnte den billigsten Händler
herausfinden ohne die Datenquelle erneut abzufragen
• HTML definiert das Aussehen der Daten - XML die Bedeutung
• XML erlaubt „Custom Tags“, die genau liefern können, was man zur Bearbeitung braucht
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 6 Version 1.0a
XML - HTML
• XML - Dokument mit Intelligenz– Z.B. Modell in anderem Font
darstellen
• XML – Datenformat und Dokument zugleich
• „Semantisches Web“
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 7 Version 1.0a
XML Basis
• W3C - Empfehlungen fürs Web• SGML• GML - General Markup Language IBM
Spezifikation• XML tut nichts!!! - Nur Sprache zur
Strukturierung von Information• Vokabeln der Sprache müssen vom Benutzer
erfunden werden– Tags sind nicht vordefiniert
• XML ist reiner Text mit Struktur• XML werden nicht!! wie HTML Dokumente
dargestellt
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 8 Version 1.0a
XML Basis Fs.
• Anzeige eines Files note.xml im Browser
• Xml hat keine Information wie Daten darzustellen sind
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 9 Version 1.0a
XML Basis Fs.
• Diese Informationen müssen über CSS (Cascading style sheet) definiert werden
• Verlinken von CSS mit XML Dokument– <?xml-stylesheet type="text/css"
href=„dateiname.css"?>
• CSS für HTML entwickelt und nicht nicht optimal für XML geeignet– XML hat keine vordefinierten Tags
(z.B.table)– XML hat kein „eingebautes“ Knowhow über
die Darstellung von Tags
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 10 Version 1.0a
XML Basis Fs.
• XML – Files könnenn mit jedem Texteditor erstellt werden– UltraEdit, Notepad usw.– Spezieller Editor:
• Altova XMLSpy
• Beispiel:– cd_catalog_ohne_css.xml– cd_catalog.css– cd_catalog.xml
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 11 Version 1.0a
XML - XSL
• XSL - eXtensible Stylesheet Language– Eine Verwendungsmöglichkeit:
Umformen des XML Dokuments in HTML– Besteht aus
• XSLT Transformationsregeln• XPath Navigationselemente im XML
Dokument• FO Formatting Objects
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 12 Version 1.0a
XML - XSL
• XSL Style Sheet ist selbst ein XML Dokument
• XSL Stylesheet muss verlinkt werden:– <?xml-stylesheet type="text/xsl"
href=„StyleSheetName.xsl"?>
• Beispiel:– cd_catalog_xsl.xml– cd_catalog.xsl
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 13 Version 1.0a
XML Elemente
• Unicode– XML verwendet Unicode– Als Hilfe für Parser:
• Angabe der Zeichencodierung z.B.<?xml version="1.0" encoding="UTF-8"?>
– ISO-8859-1– windows-1252– UTF-16
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 14 Version 1.0a
XML Logische Struktur
• Hierarchische Strukturierung von Elementen– Buch -> Kapitel -> (Titel, Pragraph, Paragraph, usw)
• Elemente sind die logischen Komponenten eines Dokumentes
• Elemente enthalten entweder wieder Elemente oder "character data"
• Tree-structure• Oberstes Element -> root element oder
document element• Branches• Leaves
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 15 Version 1.0a
XML Logische Struktur Fs.
• Elemente können zusätzliche Informationen haben – Attribute
• Attribute beschreiben die Eigenschaften des Elements
• Attribute können auch als Subelemente dargestellt werden (Geschmacksfrage)
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 16 Version 1.0a
XML physische EntitiesXML verwendet eine einfache
selbsterklärende Syntax. Beispiel von oben:
– XML Deklaration definiert die XML Version und die Zeichencodierung
– root element: <note>– 4 Subelemente– Ende des root elementes
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 17 Version 1.0a
XML Syntax
• Alle Tagx müssen schließende Tags haben
• XML Tags sind case sensitiv• Hierarchisch korrekte Schachtelung
erforderlich• Alle XML Dokumente müssen ein root
Element haben• Subelemente müssen korrekt
geschachtelt werden• Attribute müssen immer mit "quotes"
versehen werden• Leerzeichen werden nicht abgeschnitten
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 18 Version 1.0a
XML Syntax Fs.
• Als Zeilenschaltung wird LF verwendet (nicht CR / LF)
• Kommentare werden durch <!-- und --> eingegrenzt
• Bei Nichteinhaltung:– "Not well formed!!!"– keine Fehlertoleranz durch Parser
• Markup: alles zwischen < und >
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 19 Version 1.0a
XSLT
• Verwendet XPath um Elemente im Quelldokument zu finden.
• Auf die so gefundenen Texte werden die Transformationen angewendet und ein Ausgabedokument produziert.
• IE 6.0 laut MS 100% kompatibel zur W3C Spezifikation
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 20 Version 1.0a
XSLT Stylesheet• Ist ein XML Dokument daher Einleitung durch:
<?xml version="1.0" encoding="ISO-8859-1"?>
• Das Element<xsl:output method='html' version='1.0' encoding='UTF-8' indent='yes'/>gibt das Format des Ausgabedokumentes an
• root element: <xsl:stylesheet> oder <xsl:transform>
• vollständige syntax:<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 21 Version 1.0a
XSLT Stylesheet Fs.
• Template: Ein Menge von Regeln. Dies Regeln werden werden angewendet, wenn ein "Match" für einen Knoten im XML Dokument gefunden wurde.
• <xsl:template match="/"> – Das <xsl:template> Element wird
verwendet um Templates zu bilden.– Das Match Attribut wird verwendet um
Templates mit Elementen des Ausgangsdokumentes zu verbinden.
– Das Match Attribut ist ein XPath Ausdruck• "/" bedeutet das gesamte Dokument
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 22 Version 1.0a
XSLT Stylesheet Fs.
• Das <xsl:value-of> Element wird verwendet, um den Wert eines XML Elementes zu ermitteln und ins Ausgabedokument zu schreiben.– Das Attribut "select=path" gibt den
XPath des gewünschten Xlementes an– <xsl:value-of
select="catalog/cd/title"/> liest den ersten CD Titel des Katalogs
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 23 Version 1.0a
XSLT Stylesheet Fs.
• Das <xsl:for-each> Element wird verwendet um jedes Element aus einer Menge von Knoten zu selektieren (Iteration)– Das Attribut "select=path" gibt den XPath
der Knotenmenge an– <xsl:for-each select="catalog/cd">
</xsl:for-each>
• Die HTML Tags dazwischen werden als Text an das Ausgabedokument weitergereicht
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 24 Version 1.0a
XSLT Stylesheet Fs.
• Die Ausgabedatensätze können sortiert werden– <xsl:sort select="artist"/>
innerhalb der <xsl:for each> Iteration
• Bedingte Verarbeitung ist mit:<xsl:if test="expression"> möglich– <xsl:if test="price > 10"> ..
</xsl:if>
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 25 Version 1.0a
XSLT Stylesheet Fs.
• Mehrfachverzweigungen sind mit:<xsl:choose> <xsl:when test="expression"> ... some output ... </xsl:when> <xsl:otherwise> ... some output .... </xsl:otherwise> </xsl:choose>
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 26 Version 1.0a
XSLT Stylesheet Fs.• Beispiel für Mehrfachverzweigung:
<xsl:choose> <xsl:when test="price > 10"> <td bgcolor="#ff00ff"> <xsl:value-of select="artist"/></td> </xsl:when> <xsl:otherwise> <td> <xsl:value-of select="artist"/></td> </xsl:otherwise> </xsl:choose>
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 27 Version 1.0a
XSLT Stylesheet Fs.
• <xsl:apply-templates [select=Knoten]/>– arbeitet von der angegebenen Stelle aus
die unteren Ebenen ab– sucht nach einem passenden template– Text wird wie ein eigenes Element mit
dem Namen text() behandelt– <xsl:value-of select="."/>
• gibt den Text aus z.B. bei xsl:template match="text()">
– Beispiel buch.xml
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 28 Version 1.0a
XML Syntax
• Documenttype– Menge der zulässigen Elemente
(Wörterbuch oder vocabulary)– Stellen an denen diese Elemente
auftreten können (z.B. Anzahl der Wiederholungen oder keine Fußnote in einer Fußnote)
– Ort der Definition:• DTD Document Type Declaration• XMLSchema andere Syntax
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 29 Version 1.0a
DTD - Documenttypedefinition
• Interne ("Inline") oder externe Declaration
• Interne Declaration– Eingeschlossen in Doctype statement
<!DOCTYPE root-element [element-declarations]>
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 30 Version 1.0a
DTD - Documenttypedefinition Fs
• Beispiel
• Zeile 2: Dokument von Typ "note"• Zeile 3: Dokument hat 4 Elemente• Zeile 4 - 6 Elemente vom Type #PCDATA
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 31 Version 1.0a
DTD - Documenttypedefinition Fs
• "Private" Externe Deklaration– Syntax: <!DOCTYPE root-element SYSTEM "filename">
– XML: note_mit_ext_dtd.xml– DTD: ext_note.dtd
• "Public" Externe Deklaration– Syntax: – <!DOCTYPE root_element PUBLIC "DTD_name"
"DTD_location"• DTD_name: prefix//owner//description//Language
– prefix +, -, ISO
• <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" http://www.w3c.org/TR/REC-html40/loose.dtd
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 32 Version 1.0a
DTD - Documenttypedefinition Fs
• DTD benötigt bei Verwendung als Datenaustausch
• Verifizierung ob ein XML Dokument "gültig" ist (auch das eigene)
• Bausteine:– Elemente - wichtigste Bausteine– Attribute Zusatzinformationen zu
Elementen– PCDATA - geparster Text– CDATA - nicht geparster Text
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 33 Version 1.0a
DTD - Documenttypedefinition Fs
• Elemente - Element Deklaration– <!ELEMENT elementname Kategorie> oder
• <!ELEMENT br EMPTY>
– <!ELEMENT elementname (elementinhalt)>• <!ELEMENT from (PCDATA)>• <!ELEMENT note (to,from,heading,body)>• + (1-n), * (0-n), ? (0-1) Anzahl des Vorkommens,
| Alternativen– <!ELEMENT note (message+)> – <!ELEMENT note (to,from,header,(message|body))>
ADAT©2004 Dipl. - Ing. Walter Sabin
Seite: 34 Version 1.0a
DTD - Documenttypedefinition Fs
• Attribute - Syntax• <!ATTLIST element-name attribute-name
attribute-type default-value> • <!ATTLIST payment type CDATA "check">
<!ATTLIST contact fax CDATA #IMPLIED> <!ATTLIST person number CDATA #REQUIRED>
• XSL Selektierung von Attributen mit "@" (contact/@fax)
• Validierung nicht automatisch– siehe parsedtd.htm
• Beispiele: tvsch.xml, .xsl, .dtd