close

Anmelden

Neues Passwort anfordern?

Anmeldung mit OpenID

3.6 XML Was ist XML XML & HTML Was ist der Unterschied

EinbettenHerunterladen
SWT - Prozesse, Datenstrukturen
1
3.6 XML
ΠWas ist XML
SWT - Prozesse, Datenstrukturen
Eigenschaften von XML
4
‹ XML wurde entwickelt, um Daten zu beschreiben.
Dabei lag der Fokus darauf, was die Daten denn
nun eigentlich sind.
‹ XML steht für eXtensible Markup Language. XML
hat sehr viel Ähnlichkeiten mit HTML.
Œ
Mit XML werden Struktur und Inhalt (Content)
der Daten unabhängig von unterschiedlichen
Repräsentationsformen spezifiziert.
Œ
XML wurde nicht definiert, um etwas zu tun,
es ist eine einfache
Datenbeschreibungssprache, die zur
Strukturierung, zum Speichern und zum
Versenden von Daten genutzt werden kann.
SWT - Prozesse, Datenstrukturen
2
XML & HTML
ΠWas ist der Unterschied zwischen XML
und HTML?
SWT - Prozesse, Datenstrukturen
Beispiel einer Nachricht in XML (Inhalt)
5
<nachricht>
<an> Heike </an>
‹ HTML wurde entwickelt, um Daten zu
<von> Antje </von>
präsentieren. Hier lag der Fokus darauf, wie die
Daten aussehen.
‹ Es gibt eine Reihe von vorgefertigten Tags, die
ihre semantische Bedeutung haben.
<betreff> Erinnerung Kino</betreff>
<text> Bitte Vergiss unsere Verabredung um
19:00 Uhr vor dem Kino nicht!</text>
</nachricht>
{ z.B. <b> Text </b>
Darstellung von Text im Fettdruck
Diese Nachricht hat die Information von wem an wen
die Information gehen soll. Es gibt eine Beschreibung
des Inhaltes und den eigentlichen Text. Es handelt sich
aber um puren Text in XML. Irgend jemand muss erst
Software schreiben, um dieses Dokument zu speichern,
zu verschicken oder anzuzeigen.
SWT - Prozesse, Datenstrukturen
SWT - Prozesse, Datenstrukturen
Struktur
3
Eigenschaften von Daten (3 Sichten)
Tags in XML
6
Œ
Struktur
Inhalt Content
nachricht
an
von betreff
text
Die Tags
<nachricht>, <an>, <von>, <betreff> und <text>
an: Heike
von: Antje
sind nicht vordefiniert, sondern der Autor des
Dokumentes hat sie sich einfallen lassen.
betreff: Erinnerung Kinobesuch
text: ....
Präsentation
Empfänger:
Heike
Absender:
Antje
Betreff: Erinnerung Kinobesuch
Text:
Bitte vergiss unsere Verabredung um 19:00
Uhr vor dem Kino nicht!
Œ
Eine DTD „Document Type Declaration“
beschreibt die Struktur eines Dokuments (hier
Nachricht).
SWT - Prozesse, Datenstrukturen
7
Beispiel DTD - Document Type Declaration
Œ
Œ
Œ
SWT - Prozesse, Datenstrukturen
10
Einführung in XSL
XSL ist die Formatvorlage von XML. Da XML
keine vordefinierten Tags kennt ist deren
Bedeutung auch nicht bekannt. Daher muss in
XSL auch festgelegt werden, wie ein Dokument
dargestellt werden soll. XSL ist aber mehr als
eine Formatvorlage. Es besteht aus den drei
Teilen:
1. XSL Formatting Objects (Eine Sprache zur
Formatierung von Dokumenten)
2. XPath (Eine Sprache zur identifikation von
Teilen eines Dokumentes)
3. XSLT (Eine Sprache zur Transformation
von Elementen eines Dokuments)
<!ELEMENT nachricht (an, von, betreff, text)>
<!ELEMENT an (#PCDATA)>
<!ELEMENT von (#PCDATA)>
<!ELEMENT betreff (#PCDATA)>
<!ELEMENT text (#PCDATA)>
Erste Zeile spezifiziert, dass eine Nachricht aus an,
gefolgt von von, gefolgt von betreff, gefolgt von text
besteht.
Die einzelnen Bestandteile sind Grunddatentypen.
PCDATA = Parsed Character DATA
SWT - Prozesse, Datenstrukturen
8
Symboldefinitionen in der DTD
Œ
, - Sequenz
SWT - Prozesse, Datenstrukturen
11
<!ELEMENT nachricht (an, von, betreff, text) >
Œ
? - Option
Œ
| - Alternative
Œ
+ - 1 oder mehr Elemente
<!ELEMENT nachricht (an, von, betreff?, text) >
<!ELEMENT information (nachricht | hinweis) >
Das Wurzelement, welches ein Dokument als XSL
Formatvorlage definiert ist heißt
<xsl:stylesheet> oder <xsl:transform>.
Beide Notationsformen können als Synonyme betrachtet
werden und sind damit beliebig austauschbar.
Die richtige Definition einer XSL Formatvorlage
entsprechend der W3C XSL Empfehlungen sieht wie
folgt aus:
<xsl:stylesheet version="1.0“
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!ELEMENT sammelnachricht (nachricht)+ >
Œ
Korrekte Definition der Formatvorlage
oder:
* - 0 oder beliebig viele Elemente
<xsl:transform version="1.0“
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!ELEMENT sammelnachricht (nachricht)* >
Durch xmlns:xsl=http://www.w3.org/1999/XSL/Transform
wird der offizielle durch W3C XSL empfohlene
Namensbereich festgelegt.
Wenn er genutzt wird, muss das Attribut version="1.0"
genutzt werden.
SWT - Prozesse, Datenstrukturen
9
XML-Dokument mit Verweis auf DTD
<?xml version="1.0"?>
<!DOCTYPE nachricht SYSTEM
"http://www.informatik.uni-rostock.de/dtd/nachricht.dtd">
<nachricht>
<an> Heike </an>
<von> Antje </von>
<betreff> Erinnerung Kino </betreff>
<text> Bitte Vergiss unsere Verabredung um 19:00 Uhr vor dem
Kino nicht! </text>
</nachricht>
SWT - Prozesse, Datenstrukturen
12
Beispiel einer XML-Datei
Œ
Katalog.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<katalog>
<buch>
<titel>Lehbuch der Softwaretechnik</titel>
<autor>Helmut Balzert</autor>
<verlag>Spektrum Verlag</verlag>
<preis>79.95</preis>
<jahr>2000</jahr>
</buch>
<buch>
<titel>Objektorientierte Softwareentwicklung mit UML</titel>
<autor>Peter Forbrig</autor>
<verlag>Fachbuchverlag Leipzig</verlag>
<preis>14.90</preis>
<jahr>2001</jahr>
</buch>
</katalog>
SWT - Prozesse, Datenstrukturen
13
Beispiel im Browser
SWT - Prozesse, Datenstrukturen
16
Beispiel mit Formatvorlage
SWT - Prozesse, Datenstrukturen
14
XSL - Formatvorlage
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0“
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body> <h1>Meine Lehrbücher</h1>
<table border="1">
<tr bgcolor="#0000FF">
<th align="left">Titel</th> <th align="left">Autor</th> </tr>
<xsl:for-each select="katalog/buch">
<tr>
<td><xsl:value-of select="titel"/></td>
<td><xsl:value-of select="autor"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
SWT - Prozesse, Datenstrukturen
17
</katalog>
SWT - Prozesse, Datenstrukturen
15
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="katalog.xsl"?>
<katalog>
<buch>
<titel>Lehbuch der Softwaretechnik</titel>
<autor>Helmut Balzert</autor>
<verlag>Spektrum Verlag</verlag>
<preis>79.95</preis>
<jahr>2000</jahr>
</buch>
<buch>
<titel>Objektorientierte Softwareentwicklung mit UML</titel>
<autor>Peter Forbrig</autor>
<verlag>Fachbuchverlag Leipzig</verlag>
<preis>14.90</preis>
<jahr>2001</jahr>
</buch>
</katalog>
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="katalog.xsl"?>
<katalog>
<buch>
....
</buch>
<buch>
.....
</buch>
SWT - Prozesse, Datenstrukturen
18
<xsl:for-each> Element
<xsl:for-each
select="katalog/cd[autor='Helmut
Balzert']">
Legale Filteroperatoren:
Π= (equal)
Π!= (not equal)
Π&lt; less than
Π&gt; greater than
SWT - Prozesse, Datenstrukturen
19
<xl: sort> Element
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h1>Meine Lehrbücher</h1>
<table border="1">
<tr bgcolor="#0000FF">
<th align="left">Titel</th>
<th align="left">Autor</th>
</tr>
<xsl:for-each select="katalog/buch">
<xsl:sort select="autor"/>
<tr>
<td><xsl:value-of select="titel"/></td>
<td><xsl:value-of select="autor"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
<:xsl:stylesheet>
SWT - Prozesse, Datenstrukturen
22
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h1>Meine Lehrbücher</h1>
<table border="1">
<tr bgcolor="#0000FF">
<th align="left">Titel</th>
<th align="left">Autor</th>
</tr>
<xsl:for-each select="katalog/buch">
<xsl:if test="preis&lt;50">
<tr>
<td><xsl:value-of select="titel"/></td>
<td><xsl:value-of select="autor"/></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
SWT - Prozesse, Datenstrukturen
20
SWT - Prozesse, Datenstrukturen
23
SWT - Prozesse, Datenstrukturen
21
<xsl:if> Element
Π<xsl:if test="preis&lt;50">
some output ...
</xsl:if>
SWT - Prozesse, Datenstrukturen
24
Das <xsl:choose> Element
Œ
Œ
Das <xsl:choose> Element wird zusammen mit
den Elementen <xsl:when> und <xsl:otherwise>
genutzt, um mehrfache bedingte Auswahl
vorzunehmen. Das Zusammenspiel erfolgt wie
hier dargestellt:
<xsl:choose>
<xsl:when test="price&lt;'50'">
... Ausgabecode ...
</xsl:when>
<xsl:otherwise>
... Ausgabecode ....
</xsl:otherwise>
</xsl:choose>
SWT - Prozesse, Datenstrukturen
25
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:template match="/">
<html>
<body>
<h1>Meine Lehrbücher</h1>
<table border="1">
<tr bgcolor="#0000FF">
<th align="left">Titel</th>
<th align="left">Autor</th>
</tr>
SWT - Prozesse, Datenstrukturen
28
Das <xsl:apply-templates> Element
ΠDas <xsl:apply-templates> Element
wendet eine Template-Regel auf das
aktuelle Element oder of dessen
Nachfolgerknoten an.
ΠWenn ein Select-Attribut angegeben wird,
dann werden die Regeln nur auf die
Nochfolgerknoten angewendet, die diese
Attribut erfüllen.
SWT - Prozesse, Datenstrukturen
26
<xsl:for-each select="katalog/buch">
<tr>
<xsl:choose>
<xsl:when test="preis&lt;20">
<td bgcolor="#ff00ff">
<xsl:value-of select="titel"/>
</td>
</xsl:when>
<xsl:when test="preis&lt;60">
<td bgcolor="#cccccc">
<xsl:value-of select="titel"/>
</td>
</xsl:when>
<xsl:otherwise>
<td><xsl:value-of select="titel"/></td>
</xsl:otherwise>
</xsl:choose>
<td><xsl:value-of select="autor"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
SWT - Prozesse, Datenstrukturen
29
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h1>Meine Lehrbücher</h1>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="buch">
<p>
<xsl:apply-templates select="titel"/>
<xsl:apply-templates select="autor"/>
<xsl:apply-templates select="jahr"/>
</p>
</xsl:template>
<xsl:template match="titel">
SWT - Prozesse, Datenstrukturen
27
SWT - Prozesse, Datenstrukturen
30
Titel: <span style="color:#ff0000">
<xsl:value-of select="."/>
</span>
<br />
</xsl:template>
<xsl:template match="autor">
Autor: <span style="color:#00ff00">
<xsl:value-of select="."/>
</span>
<br />
</xsl:template>
<xsl:template match="jahr">
Titel: <span style="color:#ff0000">
<xsl:value-of select="."/>
</span>
<br />
</xsl:template>
</xsl:stylesheet>
SWT - Prozesse, Datenstrukturen
31
SWT - Prozesse, Datenstrukturen
34
XML-Schemas sind der Nachfolger von DTDs
ΠWahrscheinlich werden XML-Schemas
für Anwendungen im Internet DTDs aus
folgenden Gründen vollständig
ersetzen:
1. XML Schemas sind erweiterbar um
zukünftige Ansätze
2. XML Schemas sind ausdrucksstärker
3. XML Schemas sind selbst in XML
geschrieben
4. XML Schemas unterstützen Datentypen
5. XML Schemas unterstützen Namensbereiche
SWT - Prozesse, Datenstrukturen
32
Was ist ein XML Schema?
ΠXML Schema ist eine XML-basierte
Alternative zu DTD. Der Zweck ist die
Definition von legalen Blöcken eines
XML-Dokuments. Es beschreibt also
analog zu DTD die Struktur von XMLDokumenten. Die Sprache, in der die
Schemata beschrieben werden wird als
XML Schema Definition (XSD)
bezeichnet.
SWT - Prozesse, Datenstrukturen
35
SWT - Prozesse, Datenstrukturen
33
Ein XML Schema definiert:
1. Die Elemente, die in einem Dokument
vorkommen können
2. Die Attribute, die in einem Dokument
vorkommen können
3. Die Kinder von Elementen
4. Die Reihenfolge der Kindelemente
5. Die Anzahl der Kindelemente
6. Ob eine Element leer ist oder Text enthält
7. Die Datentypen von Elementen und
Attributen
8. Die voreingestellten (default) und die
konstanten (fixed) Werte von Elementen
und Attributen
XML Schema
<?xml version="1.0"?>
<xs:schema
xmlns:xs="http: //www.informatik.uni-rostock.de/XMLSchema“
targetNamespace="//www.informatik.uni-rostock.de/"
xmlns="//www.informatik.uni-rostock.de/“
elementFormDefault="qualified">
<xs:element name="nachricht">
<xs:complexType>
<xs:sequence>
<xs:element name="an" type="xs:string"/>
<xs:element name="von" type="xs:string"/>
<xs:element name="betreff" type="xs:string"/>
<xs:element name="text" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
SWT - Prozesse, Datenstrukturen
36
XML Dokument mit Verweis auf Schema
<?xml version="1.0"?>
<nachricht
xmlns="//www.informatik.uni-rostock.de/“
xmlns:xsi="//www.informatik.uni-rostock.de/XMLSchema-instance“
xsi:schemaLocation="http: //www.informatik.unirostock.de/schema/nachricht.xsd">
<an> Heike </an>
<von> Antje </von>
<betreff> Erinnerung Kino </betreff>
<text> Bitte Vergiss unsere Verabredung um 19:00 Uhr vor
dem Kino nicht! </text>
</nachricht>
SWT - Prozesse, Datenstrukturen
37
XML Schemas benutzen XML Syntax
ΠMan muss keine neue Sprache erlernen
ΠMan kann seinen XML Editor zur
Erzeugung von Schema Dateien nutzen
ΠMan kann seinen XML Parser zur
lexikalischen Analyse von Schema
Dateien nutzen
ΠMan kann sein Schema mit XML DOM
manipulieren
ΠMan kann sein Schema XSLT
transformieren
SWT - Prozesse, Datenstrukturen
40
<?xml version="1.0"?>
<xs:schema>
...
...
</xs:schema>
SWT - Prozesse, Datenstrukturen
38
XML Schemas sichern die Datenkommunikation
Beim Senden von Daten von einem Sender zu einem
Empfänger ist es wichtig, dass beide Seiten die gleiche
Erwartung (Interpretation) der Daten haben.
SWT - Prozesse, Datenstrukturen
41
XML Schemas stellen eine Möglichkeit zur Verfügung, die
dem Sender ermöglicht, die Daten so zu spezifizieren,
dass der Empfänger auch wirklich versteht.
Ein XML Element mit folgender Spezifikation:
<date type="date">1981-12-02</date>
sichert eine mehrseitige Verständigung, da der XML
Datentyp “data” das Format CCYY-MM-DD fordert.
SWT - Prozesse, Datenstrukturen
XML Schemas sind erweiterbar
ΠEin Schema in einem anderen wieder
verwenden
Attribute des <schema> Elementes
Ein <schema> Element kann einige Attribute
enthalten. Es sieht meistens wie folgt aus.
<?xml version="1.0"?>
<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema
targetNamespace=http://wwwswt.informatik.uni-rostock.de
xmlns=" http://wwwswt.informatik.uni-rostock.de
"elementFormDefault="qualified">
...
...
</xs:schema>
Ein Datum, wie 1981-12-02 könnte in einigen Ländern als
12. Februar 1981 oder in einigen anderen Ländern als 2.
Dezember 1981 interpretiert werden.
39
XSD - Das <schema> Element
Das <schema> Element ist die Wurzel
von jedem XML Schema!
SWT - Prozesse, Datenstrukturen
42
Referenzierung eines Schemas
<?xml version="1.0"?>
<nachricht xmlns=http://wwwswt.informatik.uni-rostock.de
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation="http://wwwswt.informatik.uni-rostock.de nachricht.xsd">
Œ
Seine eigenen Datentypen von
Standarddatentypen ableiten
Œ
Mehrer Schemas von ein und dem
selben Dokument referenzieren
<an>Heike</an>
<von>Antje</von>
<betreff> Erinnerung Kino </betreff>
<text> Bitte Vergiss unsere Verabredung um 19:00 Uhr vor dem Kino
nicht! </text>
</nachricht>
SWT - Prozesse, Datenstrukturen
43
Existierende Datentypen für XML Schema
SWT - Prozesse, Datenstrukturen
46
Struktur von Schema
Œ
Œ
Œ
Œ
Œ
Œ
Œ
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time
SWT - Prozesse, Datenstrukturen
44
Einfaches Element
Einfache Elemente können einen voreingestellten
Wert oder eine konstante Menge von
Attributen haben. Der voreingestellte wert
wird einem Element automatisch zugewiesen,
wenn nichts anderes in den Daten spezifiziert
ist. Das Attribut muss also nicht für alle
Datenelemente in XML angegeben werden. Im
folgenden Beispiel ist der voreingestellte Wert
für ein Element "Student":
<xs:element name=“Taetigkeit"
type="xs:string" default="Student"/>
SWT - Prozesse, Datenstrukturen
45
Attribute
Wenn ein Element Attribute besitzt, so wird es als
komplexes Element angesehen. Einfache Elemente
haben keine Attribute.
Ein Attribut selbst ist als ein einfacher Datentyp deklariert
Die Syntax einer Attributdefinition sieht wie folgt aus:
<xs:attribute name="nnn" type="ttt"/>
Hier ist nnn der Name eines Attributes und ttt sein Datentyp.
Beispiel eines XML Elementes mit einem Attribut:
<name geschlecht="weiblich">Antje</name>
Die dazugehörige Attributdefinition könnte wie folgt
aussehen:
<xs:attribute name="geschlecht" type="xs:string"/>
<schema
attributeFormDefault = (qualified | unqualified) : unqualified
blockDefault = (#all | List of (extension | restriction |
substitution)) : ''
elementFormDefault = (qualified | unqualified) : unqualified
finalDefault = (#all | List of (extension | restriction)) : ''
id = ID
targetNamespace = anyURI
version = token
xml:lang = language
{any attributes with non-schema namespace . . .}>
Content: ((include | import | redefine | annotation)*, (((simpleType
| complexType | group | attributeGroup) | element |
attribute | notation), annotation*)*)
</schema>
Document
Kategorie
Internet
Seitenansichten
3
Dateigröße
301 KB
Tags
1/--Seiten
melden