Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung...

29
Grundlagen von XML

Transcript of Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung...

Page 1: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

Grundlagen von XML

Page 2: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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

Page 3: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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)

Page 4: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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)

Page 5: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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>

Page 6: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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“?>

Page 7: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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

Page 8: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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 &#32; &#x0020;) Predefined Entity (referenziert durch &lt; &gt; &qout;

&amp; &apos;) 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

Page 9: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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

Page 10: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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)

Page 11: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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:

&lt; > less than

&gt; > greater than

&amp; & ampersand

&apos; ' apostrophe

&quot; " quotation mark

Page 12: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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>]]>

Page 13: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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)>

Page 14: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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)

Page 15: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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>

Page 16: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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">

Page 17: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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>

Page 18: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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>

Page 19: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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-->

Page 20: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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”>

]>

Page 21: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© Prof. T. Kudraß, HTWK Leipzig

XML-Parser

/

<tag>

data

attr

data

<tag>

<tag>

XML-ParserXML-Dokument

Page 22: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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

Page 23: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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>

Page 24: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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) ...

Page 25: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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)

Page 26: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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

Page 27: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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

Page 28: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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

Page 29: Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.

© 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