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
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)
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)
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>
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“?>
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
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
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
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@machine.com
<eag:email>
Default Namespaces
– <element xmlns="namespace">
Attributwert "namespace" sollte URI sein
Zweck: weltweit eindeutige Zeichenkette (selbst wenn dort nicht vorhanden)
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
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>
]]>
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)>
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)
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>
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">
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)
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>
DTD Notation
Definition von z.B. Grafikformaten
Entity
<!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-->
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”>
]>
XML-Parser
/
<tag>
data attr
data
<tag>
<tag>
XML-Parser XML-Dokument
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
Spezifische Markup-Sprachen
Entwicklung 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 Elements Beispiel:
<apply> <power/>
<apply> <plus/> <ci>x</ci> <ci>y</ci> </apply>
<cn>2</cn>
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)
...
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)
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
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
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
Internet Suche
CD/DVD Print on Demand
Katalog- Management
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