Grundlagen von XML
© Prof. T. Kudraß, HTWK Leipzig
Geschichte Grundidee „generic coding“ -
Trennung Information/Form formal definierter
Dokumenttyp verschachtelte Strukturen Hypertext Extensible Markup Language
(XML): “Erweiterbares HTML” Zusammenwachsen von
SGML and HTML: – Stärke von SGML
(Dokumentenbeschreibungs-sprache)
– plus Einfachheit von HTML
© Prof. T. Kudraß, HTWK Leipzig
HTML vs. XML HTML beschreibt das Aussehen eines Web-
Dokuments, nicht den Inhalt. Daraus resultieren Beschränkungen des WWW:
– Austausch von Informationen– Transformation von Dokumentformaten– Suche nach Informationen
Idee von XML„XML bridges the incompatibilities of computer systems, allowing people to search for and exchange scientific data, commercial products and multilingual documents with greater ease and speed“(Jon Bosak & Tim Bray, XML and the Second-Generation Web, in: Scientific American, Mai 1999)
© Prof. T. Kudraß, HTWK Leipzig
Was ist XML ? XML = EXtensible Markup Language zukünftiges universelles Datenformat (Teilmenge von
SGML) XML ist eine Meta-Sprache, also eine Sprache zur
Definition von Sprachen Tags im Vergleich zu HTML nicht vordefiniert
„Design“ von eigenen Tags Standard ist frei und erweiterbar XML,um Informationen zu
– strukturieren– speichern– senden
Datenaustausch im Web (auch B2B)
© Prof. T. Kudraß, HTWK Leipzig
XML-Beispiel (Bücherliste)<?XML version=“1.0” standalone=“yes”?><!DOCTYPE BOOKLIST SYSTEM “booklist.dtd”><BOOKLIST><BOOK genre=“Fiction”> <AUTHOR> <FIRST>Milan</FIRST><LAST>Kundera</LAST> </AUTHOR> <TITLE>Identity</TITLE> <PUBLISHED>1998</PUBLISHED><BOOK genre=“Science” format=“Hardcover”> <AUTHOR> <FIRST>Richard</FIRST><LAST>Feynman</LAST> </AUTHOR> <TITLE>The Character of Physical Law</TITLE></BOOK></BOOKLIST>
© Prof. T. Kudraß, HTWK Leipzig
XML-Grundbegriffe: Dokument Dokument
– XML-Dokument impliziert nicht Dokument im herkömmlichen Sinn– Ein XML-Dokument besteht aus
Prolog (optional) DTD (optional) dem Wurzelelement
– Baum Kommentare und Processing Instructions sind an fast allen Stellen
möglich– Im Sinne der Spezifikation wohlgeformte Daten XML Dokument– gültig, falls DTD vorliegt und Dokument dieser entspricht– physikalischer Aufbau aus Entities– logischer Aufbau aus Deklarationen, Elementen,
Kommentaren, ... Prolog
– <?xml version=“1.0“ encoding=“UTF-8“ standalone=“yes“?>
© Prof. T. Kudraß, HTWK Leipzig
XML-Grundbegriffe: Element XML-Element
– hat ein Start-Tag und ein End-Tag mit seinem Namen– kann Attribute und Inhalt haben (PCDATA oder Elemente)
<myElement myatt=“5“>Inhalt>/myElement> <yourElement><x>y</x><x>5</x><Z>a</Z></yourElement>
– Attribute optional– ein leeres Element hat keinen Inhalt
<emptyElement></emptyElement> kurz: <emptyElement/>– mixed Content: Inhalt besteht aus PCDATA und Elementen
<Vortrag>XML-Speicherung mit <Produkt>Oracle</Produkt> von <Professor>Kudrass</Professor></Vortrag>
Namensregeln– Buchstaben, Zahlen und andere Zeichen– nicht Zahl, „_“ bzw. „xml“ am Anfang– keine Leerzeichen
© Prof. T. Kudraß, HTWK Leipzig
XML-Grundbegriffe: Entity Parameter Entity (nur in der DTD verwendet)
– nur in der DTD verwendet: % entity-name; <!ENTITY % children “(A, B, C)*“> Referenz: <!ELEMENT parent %children;>
Character Entity (referenziert durch    ) Predefined Entity (referenziert durch < > &qout;
& ') Parsed (internal oder external) Entity
<!ENTITY entity-name "entity-value"><!ENTITY Copyright “Copyright Oracle 2001"> <!ENTITY License SYSTEM “http://www.oracle.com/license.xml“>
Unparsed external Entity<!ENTITY entity-name SYSTEM "URI/URL"><!ENTITY Bild SYSTEM “../grafics/BuntesBild.gif“ NDATA gif>Name als Attributwert verwendet
© Prof. T. Kudraß, HTWK Leipzig
Weitere XML-Grundbegriffe Kommentar
– <!-- Dies ist ein Kommentar -->– kann (außerhalb von Markup) überall im Dokument
vorkommen– nicht in DTD deklariert
Processing Instruction– <?xml:stylesheet type=“text/xsl“
href=“stylesheets/print/xsl“ ?>– kann (außerhalb von Markup) überall im Dokument
vorkommen– nicht in DTD deklariert
© Prof. T. Kudraß, HTWK Leipzig
XML Namespaces (Namensräume) Konflikte zwischen Elementnamen vermeiden Präfix (kein Namespace)
– <prefix:element>– z.B. <meinEMailProgramm:web>
<meinEMailProgramm:email>– Problem: Präfixe nicht immer eindeutig
Präfixe für Namespaces– <element xmlns:namespace-prefix="namespace">– <eag:email xmlns:eag=“http://www.aol.com/EmailAppGuy“>
[email protected]<eag:email>
Default Namespaces– <element xmlns="namespace">
Attributwert "namespace" sollte URI sein Zweck: weltweit eindeutige Zeichenkette (selbst wenn
dort nicht vorhanden)
© Prof. T. Kudraß, HTWK Leipzig
XML PCDATA XML Parser behandeln alle Daten außer
CDATA-Blöcke als PCDATA (Parsable Character Data)
ungültige Zeichen “<“ und “&“ Zeichenersetzungen:
< > less than
> > greater than
& & ampersand
' ' apostrophe
" " quotation mark
© Prof. T. Kudraß, HTWK Leipzig
CDATA-Abschnitte CDATA Abschnitt: <![CDATA[ ‘ Inhalt ‘]]>
– Interpretation: “Hände weg! Das hier soll nicht interpretiert werden!“
– Textabschnitt wird nicht als mit Markups durchsetzt interpretiert
Beispiel:<![CDATA [
<HTML>Dies ist ein Beispiel für HTML für Dummköpfe!<p> Es kann mühsam sein, in HTML ein Buch über XML zu schreiben, aber in XML ist es ganz einfach!</HTML>]]>
© Prof. T. Kudraß, HTWK Leipzig
DTD Document Type Definition schematische Beschreibung des XML-Dokuments
– <!ELEMENT myElement (PCDATA)><!ELEMENT yourElement (x*,y)><!ATTLIST myElement myatt CDATA #REQUIRED>
und Definition von Entities Elemente dürfen verschiedene Eltern haben Schema kann auch rekursiv sein
– <!ELEMENT A (B*)><!ELEMENT B (A*)>
“Offenes“ Schema ist möglich (Kinder müssen aber deklariert sein)
– <!ELEMENT X (ANY)>
© Prof. T. Kudraß, HTWK Leipzig
DTD (Forts.) DTD kann
– extern sein <!DOCTYPE root-element SYSTEM "filename">
– und/oder intern externe Definitionen werden überschrieben <!DOCTYPE root-element [element-declarations]>
– oder fehlen Gültig: Dokumente, für die eine DTD definiert
ist, heißen gültig (valid), wenn sie der in der DTD definierten Struktur entsprechen
Wohlgeformt: Dokumente, die gemäß XML Empfehlung syntaktisch korrekt sind, heißen wohlgeformt (well-formed)
© Prof. T. Kudraß, HTWK Leipzig
DTD Beispiel (intern)
<?xml version="1.0"?><!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>]><note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend</body></note>
© Prof. T. Kudraß, HTWK Leipzig
DTD Beispiel (extern)
Externe DTD zu XML Beispiel (note)<!ELEMENT note (to,from,heading,body)><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT heading (#PCDATA)><!ELEMENT body (#PCDATA)>
Einbindung in note.xml<!DOCTYPE note SYSTEM "note.dtd">
© Prof. T. Kudraß, HTWK Leipzig
DTD Elemente Sequenz-Operator
<!ELEMENT element-name (child1, child2)> Oder-Operator
<!ELEMENT element-name (child1 | child2)> optionales Element (child?)
mindestens ein Vorkommen (child+)
beliebig oft (child*) nur Text <!ELEMENT element-name (#PCDATA)> Gemischter Inhalt
<!ELEMENT element-name (#PCDATA | child)*> Beliebiger Inhalt (ANY)
<!ELEMENT element-name ANY> Kein Inhalt (leeres Element)
<!ELEMENT element-name EMPTY>
© Prof. T. Kudraß, HTWK Leipzig
DTD Attribute mit !ATTLIST definiert (Default)
<!ATTLIST ename aname atype adefault-value>e = element, a = attribute
Beispiel-Definition<!ELEMENT payment (#PCDATA)> <!ATTLIST payment type CDATA "check">
<payment type="check">100 €</payment> nicht explizit benötigt (implied)
<!ATTLIST ename aname atype #IMPLIED> notwendig (required)
<!ATTLIST ename aname atype #REQIRED> festgelegt (fixed)
<!ATTLIST ename aname atype #FIXED default> Auswahlliste
<!ATTLIST ename aname (en1|en2|...) default>
© Prof. T. Kudraß, HTWK Leipzig
DTD Notation
Definition von z.B. GrafikformatenEntity
<!ENTITY bild SYSTEM "foto.jpg" NDATA JPEG>
zugehörige Notation<!NOTATION JPEG PUBLIC
"ISO/IEC 10918:1993//NOTATION Digital Compression and Coding of Continuous-tone Still Images (JPEG)//EN">
<!--Internationaler JPEG-Standard-->
© Prof. T. Kudraß, HTWK Leipzig
DTD Weiteres Beispiel
<!DOCTYPE BOOKLIST [
<!ELEMENT BOOKLIST (BOOK)*>
<!ELEMENT BOOK (AUTHOR, TITLE, PUBLISHED?)>
<!ELEMENT AUTHOR (FIRST, LAST)>
<!ELEMENT FIRST (#PCDATA)>
<!ELEMENT LAST (#PCDATA)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT PUBLISHED (#PCDATA)>
<!ATTLIST BOOK genre (Science | Fiction) #REQUIRED>
<!ATTLIST BOOK format (Paperback | Hardcover) “Paperback”>
]>
© Prof. T. Kudraß, HTWK Leipzig
XML-Parser
/
<tag>
data
attr
data
<tag>
<tag>
XML-ParserXML-Dokument
© Prof. T. Kudraß, HTWK Leipzig
Document Object Model (DOM) HTML und XML Plattform- und sprachunabhängig Dynamischer Zugriff und Manipulation von
– Inhalt– Struktur
Eigenes Strukturmodell– repräsentiert die Baumstruktur eines XML-
Dokumentes– einschließlich Kommentaren und Processing
Instructions Schnittstelle
– nicht Implementierung
© Prof. T. Kudraß, HTWK Leipzig
Spezifische Markup-SprachenEntwicklung standardisierter DTDs für spezialisierte
Domains erlaubt Datenaustausch zwischen heterogenen Quellen
DTD definiert Markup-Sprache für branchen- und anwendungsspezifische Semantik
Beispiel: Mathematische Markup Language (MathML)– Mathematische Sachverhalte im Web– In HTML: <IMG SRC=“xysq.gif” ALT=“(x+y)^2”>
Nachteil: Mangelnde Flexibilität bei der Präsentation (Font-Größe, Hintergrund-Farbe)
– In MathML Presentation Elements, Content ElementsBeispiel: <apply> <power/> <apply> <plus/> <ci>x</ci> <ci>y</ci> </apply> <cn>2</cn> </apply>
© Prof. T. Kudraß, HTWK Leipzig
XML-basierte Markup-Sprachen ECML - Electronic Commerce Modeling Language FpML - Financial Products Markup Language Chemical Markup Language (CML) Music Markup Language (MusikML) Weather Observation Definition Format Encoded Archival Description (EAD) Tutorial Markup Language (TML) Channnel Definition Format (CDF) WebDAV: Distributed Authoring and Versioning on the
WWW Wireless Application Protocol (WAP) ...
© Prof. T. Kudraß, HTWK Leipzig
XML in Anwendungen
XML Standards, Sprachen und Anwendungen: Web Publishing Electronic Commerce
– Application-to-Application (A2A)– Business-to-Business (B2B)– Business-to-Consumer (B2C)
Elektronic Data Interchange (EDI) Enterprise Application Integration (EAI)
© Prof. T. Kudraß, HTWK Leipzig
XML in Anwendungen
Vokabulare und Frameworks für XML-Entwicklung Electronic Business XML (ebXML)
http://wwww.ebxml.org XML initiative (OASIS) BizTalk (Microsoft)
http://www.biztalk.org cXML (Ariba) Rosetta Net
http://www.rosettanet.org XML/EDI Group
http://www.xmledi.com
© Prof. T. Kudraß, HTWK Leipzig Datenaustausch - Schlüssel zum e-Commerce
Company to Company (Supply Chain)
• EDI• Punkt-zu-Punkt Lösung• hoher Investitionsaufwand
• für Mittelstand ungeeignet
• Ablösung durch XML• Standardisierte DTDs• Können auch unilateral
erweitert werden• Standardwerkzeuge
Kunde Lieferant
Order Tracking
© Prof. T. Kudraß, HTWK Leipzig ... und integriertes Content Management
XML impliziert keine bestimmte Präsentationsform
Unterschiedliche Präsentationen von XML-Dokumenten wird durch Style-Sheets ermöglicht
Hohe Flexibilität Generischer Ansatz
Kunde Lieferant
InternetSuche
CD/DVD Print on Demand
Katalog-Management
© Prof. T. Kudraß, HTWK Leipzig
Was ist XSL ? eXtensible Stylesheet Language Stylesheet Sprache für XML, sieht aus wie XML! ausgeklügelter als CSS (aber auch CSS verwendbar) XSL noch im Entwicklungsstadium 2 Teile
– Transformation von XML in eine andere Art von XML (Transformationssprache XSLT)
– Vokabular für Formatierugsobjekte (Formatting Objects) Formatierungsobjekte
– aus Textverarbeitung bekannte Konstrukte Blöcke, Grafiken, Linien, Tabellen
– FOs formen einen Baum = “Formatierungsobjektbaum“ als XML-Dokument
– Vokabular z. Zt. noch in Entwicklung XPATH als Anfragesprache zum Zugriff auf Bestandteile
des Dokuments