XML extensible Markup Language
Gliederung: 1. XML als Auszeichnungssprache 2. Aufbau von XML-Dokumenten 3. Dokumentdefinition 4. Darstellung von XML-Dokumenten 5. Eigenschaften von XML 6. XML in der Automatisierung Ein wichtiger Link: www.w3c.org (World Wide Web Consortium)
Teil 1 : XML als Auszeichnungssprache
Auszeichnungssprachen XML Eine Auszeichnungssprache hat die Aufgabe, die logischen Bestandteile eines textorientierten Dokuments zu beschreiben DTD von SGML HTML SGML XML DTD von XML MathML WML XHTML 1986 SGML (Standard Generalized Markup Language) eine Metasprache Regeln zur Erzeugung einer Auszeichnungssprache (DTD) zu komplex (500 Seiten Dokumentation) und kompliziert veraltet 1989 HTML (Hypertext Markup Language) SGML-Anwendung fürs Web begrenzte Anzahl an Auszeichnungselementen für jedes Element ist die Darstellung im Browser vordefiniert (seit Version 4.0 durch CSS(Cascading Style Sheets) verbessert) 1998 XML (extensible Markup Language) eine SGML-Teilmenge, leistungsfähig wie SGML, aber nicht so akademisch Metasprache!
HTML vs. XML (2) <html> <head> <title>titel der Seite</title> </head> <body> <h1>überschrift der 1. Ebene</h1> <p>absatz mit Informationen</p> </body> </html> <?xml version="1.0" encoding="utf-8"?> <dokument> <kopf> <titel>titel der Seite</titel> </kopf> <koerper> <ueber>überschrift der 1. Ebene</ueber> <absatz>absatz mit Informationen</absatz> </koerper> </dokument> Quelle: XML 1.0 RRZN, Hannover, 2001
Teil 2 : Aufbau von XML-Dokumenten
XML-Dokumente 3 Bestandteile: Struktur Inhalt Layout
-Dokumente XML Prolog Prossesing Instruction (PI) System Identifier (SI) Kommentar Struktur: Root-Element Element Attribut Inhalt <?xml version= 1.0 encoding= ISO8859-1?> <?xml-stylesheet type="text/xsl" href= geraet.xsl"?> <!DOCTYPE Gerätekatalog SYSTEM 'geraet.dtd'> <Gerätekatalog Hersteller= Fa. Fielddevices Inc. > <Gerät Nr= 9876001 > <Name>Temperaturtransmitter T100</Name> <Preis Währung= USD >500</Preis> <Preis Währung= EUR >456</Preis> <MinRange Unit= C >-25</MinRange> <MaxRange Unit= C >75</MaxRange> <Funktionen> <Function Nr= 1 >setdimension</function> <Function Nr= 2 >resetdevice</function> <!-- Andere Funktionen --> </Funktionen> </Gerät> <Gerät Nr= 9876002 > <Name>Drucktransmitter P7</Name> <Preis Währung= USD >1000</Preis> <MinRange Unit= Pa >1000</MinRange> <MaxRange Unit= Pa >1200</MaxRange> <Funktionen>...</Funktionen> </Gerät> </Gerätekatalog>
XML-Dokumente : Überblick Ein wohlgeformtes XML-Dokument (engl.: well formed ) muß gemäß der XML- Spezifikation so aufgebaut werden: XML-Deklaration und mindestens ein Datenelement; genau ein Wurzelelement; jedes Tag muß durch ein end-tag abgeschlossen werden (leere Elemente: <leereselement/>) Baumartige Struktur des XML-Dokumentes XML-Deklaration (obligatorisch): <?xml version="1.0"?> Angaben zum Zeichensatz (optional): Beispiel : <?xml version="1.0" encoding="iso-8859-1"?> (oder UTF-8 ) Standart ISO-8859-1 ist Zeichensatz für westeuropäische Sprachen Der Inhalt von XML-Dateien steht in XML-Elementen. XML-Elemente werden durch Tags markiert. XML ist Case sensitiv!
Teil 3 : Dokumentdefinition
Dokumentdefinition Möglichkeiten der Definition der XML-Dokumentenstruktur: DTD (Document Type Definition) XSD (XML Schema Description Language) DTD (Document Type Definition) ist eine formale Beschreibung der Dokumentenstruktur (Elemente, Attribute, Verschachtelungsmöglichkeiten...) Daten zur reinen Datenverarbeitung speichert man in den Attributen Für Daten, deren Inhalt z.b. am Bildschirm ausgegeben werden soll, definiert man eigene Elemente (Buchstaben, Ziffern (nicht am Anfang), Unterstrich); Keine Markup-Zeichen (z.b. < oder & ) im Text Dokumenttyp-Deklaration: Format einer internen DTD: <!DOCTYPE Name [DTD-Definition]> Einbinden einer externen DTD: <!DOCTYPE Name SYSTEM Dateiname.dtd > (Name ist der Name des Wurzelelements) Ein XML-Dokument ist gültig (engl.: valid ), wenn es wohlgeformt ist, eine DTD/XSD enthält und nach den Regeln der DTD/XSD aufgebaut ist. Die Gültigkeitsprüfung nennt man Validierung; Internet-Browser validieren nicht!
Dokumentdefinition (2) Definition von XML-Elementen in DTD: <!ELEMENT Name (Inhalttyp)> (z. B.: <!ELEMENT Funktion (#PCDATA)>) Definition von Attributen von XML-Elementen in DTD: <!ELEMENT Elementname (Inhalt)> <!ATTLIST Elementname Attributname_1 Inhalt [#REQUIRED #IMPLIED #FIXED "Wert" Defaultwert]... > <?xml version= 1.0 encoding= ISO-8859-1?> <!ELEMENT Gerät (Name, Preis+, MinRange, MaxRange, Funktionen?)> <!ATTLIST Gerät Nr #REQUIRED> <!--- Weitere Elemente: --> <!ELEMENT Name (#PCDATA)> <!ELEMENT Preis (#PCDATA)> <!ATTLIST Preis Währung (USD EUR CHF) USD <!ELEMENT Funktionen (Function*)> Legende - Elemente:? optionales Element (kein- oder einmal) * gar nicht oder beliebig oft + mindestens einmal Wahlmöglichkeit zwischen den Subelementen
Dokumentdefinition (3) DTD Nachteile Beschreibung von Kardinalitäten umständlich Elemente nicht vererbbar wenige Datentypen Keine Namensräume DTD verwendet keine XML-Syntax XSD (XML Schema Description Language) eine Weiterentwicklung der DTD, wird in Zukunft DTD ersetzen, relativ neu, noch nicht vollständig standardisiert Einfache Typen (vordefiniert) integer, float, byte, short, time,... = insgesamt 44 einfache Typen) Komplexe Typen (Abstrakte Typen)
ein XML Schema (XSD): Dokumentdefinition (4) <?xml version= 1.0 encoding= ISO-8859-1?> <xs:schema xmlns:xs= http://www.w3c.org/2001/xmlschema... <xs:element name="gerät"> <xs:complextype> <xs:sequence>... <xs:element name="maxrange"/> <xs:element name="funktionen"/>... </xs:sequence> </xs:complextype> </xs:element>... </xs:schema>
Teil 4 : Darstellung von XML-Dokumenten
Darstellung von XML XML strukturiert und beschreibt die Daten aber nicht, wie eine interpretierende Software die Daten bearbeiten soll; dafür benötigt man Stylesheet-Sprachen (CSS,XSL) XSL ist eine Sprache für die Umwandlung von XML-Dokumenten in ein anderes Ausgabeformat : HTML,WML,PDF,... WML-Dateien HTML-Dateien PDF-Dateien XML-Dateien Mit XML ist es möglich, die Information von ihrer Darstellung zu trennen und so verschiedene Präsentationen der gleichen Information zu ermöglichen
Transformation und Formatierung: XSL XSL (extensible Stylesheet Language) besteht aus 2 Komponenten: Transformation: XSLT (XSL Transformation) Formatierung: XSL:FO (XSL Formatting Objects) Einbinden einer XSL-Datei ins XML-Dokument: Beispiel : <?xml-stylesheet href="addr2.xsl" type="text/xsl"?> Einbinden einer CSS-Datei ins XML-Dokument : Beispiel : <?xml-stylesheet href="addr2.css" type="text/css"?>
Transformation und Formatierung: XSL (2) XSL-Definition: <xsl:stylesheet version= 1.0 xmlns:xsl= http://www.w3c.org/1999/xsl/transform > Grundelement einer XSL-Datei ist die Schablone (Templates): beschreibt, wie ein ausgewähltes XML-Element transformiert wird Bei der Transformation in HTML stellt man eine Verbindung zwischen den Elementen der XML-Datei und bestimmten HTML-Konstrukten her <doc> <item>1</item> <item>2</item> <item>3</item> </doc> XML-Dokument <xsl:template match="item"> <li><xsl:value-of select="."/></li> </xsl:template> XSL-Stylesheet <li>1</li> <li>2</li> <li>3</li> HTML Schleifen-Anweisung ( für jedes Element aus einer Menge wiederholen ): Beispiel: <xsl:for-each select= Name"></xsl:for-each> Den Inhalt eines XML-Elements ausgeben: Beispiel: <xsl:value-of select= Name"/>
Teil 5 : Eigenschaften von XML
XML-Co-Standards
XML-Werkzeuge
Eigenschaften von XML (2) Vorteile: Inhalt, Struktur und Darstellung getrennt Metasprache Typen von XML-Dokumenten von Menschen, Maschinen und Programmen lesbar Unicode-Codierung, d.h. unterstützt alle herkömmlichen Zeichenformate Betriebssystemunabhängig Systemarchitekturneutral beschädigte Teile haben keinen Einfluss Prüfung auf Korrektheit Unmenge von Werkzeugen Nachteile: Informationsredundanz benötigt mehr Speicherplatz Erheblicher Lernaufwand wegen Anzahl der zusammenspielenden Standards
Einsatzgebiete von XML Einsatz von XML: wenn anwendungsspezifische Datenstrukturen und Datenaustausch von Bedeutung sind; Für Internet-Browser geeignet: ein XML-Dokument läßt sich einfach im HTML-Format darstellen Plattformunabhängiges, präzises Dateiformat: als Format für die Konfigurations- und Installationsdateien Trend: Basisformat in weit verbreiteten Programmen (in StarOffice 6.0, demnächst im Microsoft Office,...) XML-fähige Internet-Browser : MS Internet Explorer: ab Version 5.0; Netscape Communicatior: ab Version 6.0; andere
Teil 6 : XML in der Automatisierung
XML in der Automatisierung XML als Beschreibungssprache: Einheitliche Beschreibung von Geräten Beschreibung von Prozessen Beschreibung von Protokollen XML zum Informationsaustausch XML im Web
XML als Beschreibungssprache XML zur Beschreibung von Geräteeigenschaften Beispiel: FDCML (Field Device Configuration Markup Language) Quelle: www.fdcml.org
XML als Beschreibungssprache (2) XML zur Beschreibung von Prozessdaten Beispiel: PDML (Process Data Markup Language)
XML als Beschreibungssprache (3) Definition von Protokollen im Beispiel XML-RPC Request: <methodcall> <methodname>device.gettemperature</methodname> <params/> </methodcall> Response: <methodresponse> <params> <param> <value> <double>20.5</double> </value> </param> </params> </methodresponse>
als Beschreibungssprache (4) XML Einheitliches System für Anzeige, Datenbank-ablagerung, Dokumentation und Protokollierung
Informationsaustausch zwischen Feldbusebene und Web/XML-Anwendung <?xml version="1.0"?> <request xmlns="http://www.mynamespace.org/myfeldbusmessages"> <device name="17"> <channel number="5" operation="5">210</channel> </device> </request> <xsl: template match= /request/device[@name= 17 ] /channel[@number= 5 and @operation= 5 ]"> Write(88,99,<xsl:value-of select=. />); </xsl: template> Write(88,99,210);
Informationsaustausch (2) OPC nutzt DCOM begrenzt auf Microsoft-Betriebssystem untergräbt die Sicherheitsstrategien (Firewalls) OPC XML DA (Austausch in vertikale Richtung) Für den Menschen und die Maschine lesbar Plattformunabhängig Einfache Einbindung in Web-Anwendungen OPC DX (Austausch in horizontale Richtung)
Informationsaustausch (3) Austausch zwischen Datenbanken
XML im Web Verteilte Gerätehomepages