Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen...

44
Markus Röder

Transcript of Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen...

Page 1: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Markus Röder

Page 2: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

XML

Page 3: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen

• strukturierten Daten sind – Kalkulationstabellen, – Adressbücher, – Konfigurationsparameter, – finanzielle Transaktionen, – technische Zeichnungen usw. zu verstehen.

• XML ist eine Menge von Regeln, Richtlinien, Konventionen

XML in 10 Punkten

Page 4: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

2. XML sieht fast aus wie HTML, ist aber kein HTML

• Wie HTML verwendet XML Tags (durch '<' und '>' geklammerte Wörter)

• Attribute (der Form name="value"), • aber HTML legt fest, was jedes Tag und Attribut bedeutet • XML nutzt Tags zur Abgrenzung von Daten • überlässt die Interpretation der Daten vollkommen der Anwendung,

die sie verarbeitet.

Mit anderen Worten: wenn Sie "<p>" in einer XML-Datei sehen, sollten Sie nicht annehmen, dass es sich um einen Absatz (englisch: paragraph) handelt. Je nach Kontext kann es ein Preis, ein Parameter, eine Person, ein(e) P.... sein

(übrigens, wer sagt denn, dass es ein Wort mit einem "p" sein muss?)

XML in 10 Punkten

Page 5: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

3. XML ist Text, aber nicht zum Lesen

• XML-Dateien sind Textdateien,• XML-Dateien sind viel strikter als für HTML. Ein vergessenes Tag oder ein

Attribut ohne Anführungszeichen macht die Datei unbrauchbar, während dies bei HTML oft explizit erlaubt oder zumindest toleriert wird.

• In der offziellen XML-Spezifikation steht: Anwendungen dürfen keine Vermutungen anstellen, was der Erzeuger einer beschädigten Datei meinte; wenn die Datei kaputt ist, muss eine Anwendung genau da anhalten und eine Fehlermeldung ausgeben.

XML in 10 Punkten

Page 6: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

4. XML ist eine Familie von Techniken

• Hier ein Ausschnitt:• Xlink (in Entwicklung seit November 1999), das eine Standardmethode

beschreibt, um Hyperlinks zu einer XML-Datei hinzuzufügen. • XPointer & XFragments (ebenfalls noch in Entwicklung) sind Syntaxen, um

auf Teile eines XML-Dokuments zu zeigen. • CSS, die Style-Sheet-Sprache• XSL (Herbst 1999) ist die weiterentwickelte Sprache zum Erstellen von Style

Sheets. Sie basiert auf XSLT • Das DOM ist eine Standardmenge von Funktionsaufrufen zur Manipulation

von XML- (und HTML-) Dateien aus einer Programmiersprache. • XML Namespaces ist eine Spezifikation• Die XML Schemas 1 und 2 unterstützen Entwickler bei der präzisen

Definition ihrer eigenen XML-basierten Formate.

XML in 10 Punkten

Page 7: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

5. XML ist ausführlich, was aber kein Problem darstellt

• XML-Dateien fast immer größer als vergleichbare binäre Formate. • Programme wie zip und gzip können Dateien sehr gut und sehr schnell

komprimieren. • Diese Programme sind für fast alle Plattformen verfügbar (und

meistens kostenlos). • Kommunikationsprotokolle wie Modemprotokolle und HTTP/1.1

können Daten automatisch komprimieren und damit ebenso effektiv Bandbreite sparen wie ein binäres Format.

XML in 10 Punkten

Page 8: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

6. XML ist neu, aber nicht so neu

• Die Entwicklung von XML begann 1996 • Seit Februar 1998 ist es ein W3C-Standard, • Vor XML gab es SGML, seit 1986 eine ISO-Norm • Vor XML gab es HTML, dessen Entwicklung 1990

begann.

XML in 10 Punkten

Page 9: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

7, 8, 9...

• Diese kenne ich selbst noch nicht.

XML in 10 Punkten

Page 10: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

10. XML ist lizenzfrei, plattformunabhängig und gut unterstützt

• Wachsenden Ansammlung von Werkzeugen (eines davon macht vielleicht schon das, was Sie brauchen!)

• und zu einer Menge versierter Fachleute. Sich für XML zu entscheiden, ist fast so wie SQL für Datenbanken zu wählen:

• XML als eine W3C-Entwicklung ist lizenzfrei, • XML ist nicht immer die beste Lösung, aber es lohnt sich immer, XML in

Erwägung zu ziehen

XML in 10 Punkten

Miss at your own RISK

Page 11: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Von SGML zu XML

Page 12: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Probleme konkret – 1

• Was bedeuten diese Daten?– 000000072394|00001|Modell|Handy S 200||

000000072394|00002|Spannung V/Hz|230/50||000000072394|00003|Einstellbereich Elektrode A|10-140||000000072394|00004|Einstellbereich WIG A|10-150||

– 0100021324554652 20X0.3MLVOLTAREN OPHTHA SINE EDP ATR0000261106...0100036404554770 200MLPREWASH GALL SEIFE 000003100000...0100003504556438 30X0.4MLPOLYRINSE LINSEN KLAERER 000008690000...

– AENDERN ARTNR 4901 000 155 0MATCHCODE Knebelschalter u.P.BEGINN_TEXT KURZTEXTKnebelschalter u.P.ENDE_TEXT KURZTEXTPREISTYP 0PREISPER 1BRUTTOPREIS 14,20Warengruppe Elektrozubeh”rProduktgruppe Schalter und Taster

– <td><b>Microsoft Corp.<b></td><td>MSFT</td><td><b>92,23</b></td>

Page 13: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Was sind die Daten?Die Abgrenzung von Bedeutungseinheiten ist schwer:

Probleme konkret – 2

Index: 0 Index: 1 Index: 2 Index: 3

PeterMustermannIsestr. 5323494Hamburg

PeterMustermannIsestr. 5323494Hamburg

Wo sind die Daten?Die Ermittlung der Positionen von Bedeutungseinheiten ist schwer:

Page 14: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

• Keine einheitliche Grundstruktur– Wechselnde Delimiter, nicht immer zeilenorientiert usw.

• Nicht plattformunabhängig– Binärrepräsentation bestimmter Datentypen nicht portabel

• Schwer lesbar– Nicht textbasiert– Keine Metainformationen

• Unflexibel– Keine hierarchischen oder unstrukturierten Daten

• Nicht erweiterbar– Grundstruktur und Semantik proprietär

Nachteile proprietärer Datenformate

Page 15: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Das sind die Daten! Bedeutungseinheiten werden von Tags eingeschlossen. Bedeutungseinheiten können geschachtelt werden.

Das XML-Lösungsangebot – 1

„Vor“ „Nach“

„Name“

<Name><Vor>Peter</Vor><Nach>Mustermann</Nach></Name>

<Name><Vor>Peter</Vor><Nach>Mustermann</Nach></Name>

Dort sind die Daten!Bedeutungseinheiten können über Namen identifiziert werden.

Page 16: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Das XML-Lösungsangebot – 2

• Standardisiertes Regelwerk– Wohlgeformtheitsregeln– Standardisiertes Import-Werkzeug: XML-Parser– Standardisierte In-memory-Repräsentation: XML DOM

• Textbasiertes Format– Plattformunabhängig– Lesbar & einfach zu erzeugen

• Hierarchische Struktur– Kann flache, hierarchische und unstrukturierte Daten transportieren

• Beliebig »erweiterbar«– Eigene XML-Formate werden nach den Wohlgeformtheitsregeln entworfen– Optionale Validation / »semantische« Prüfung

• DTD bzw. XML Schema

Page 17: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Wohlgeformtheit

• Eine Auswahl von Regeln:– Elemente: Daten zwischen öffnende und schließende Tags

• Aufbau von Tags ist festgelegt• Schließendes Tag kann entfallen, wenn keine Daten umschlossen

werden sollen

– Genau 1 Dokumentenelement– Elemente können geschachtelt werden

• Keine Überlappung!

– Attribute: Name "=" Wert• Nur im öffnenden Tag erlaubt

Page 18: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Vom Text zum Objektmodell: XML DOM

<Adressen>

</Adressen>

<Adresse>

</Adresse>

Mustermann<Name> </Name>22087<PLZ> </PLZ>

<Adresse >

</Adresse>

id="1234"

MSXML XML-ParserAdressen

Adresse

Adresse

Name

PLZ

Mustermann

22087

id

1234

Page 19: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

XML abstrakt

• Datenserialisierung/-persistenz– In-Memory-Datenstrukturen (XML DOM oder

proprietär) werden auf einen Text abgebildet• Text kann übertragen oder gespeichert werden

• Kommunikation ...– zwischen Anwendungen– zwischen Rechnern– zwischen Plattformen– in der Zeit

• Dieselbe Anwendung arbeitet mit Daten zu verschiedenen Zeitpunkten

Page 20: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

XML-Einsatzgebiete

• XML-Auslöser– Web-Client

• Trennung von Daten und Darstellung– Web-Server

• Verallgemeinerungen– Applikationskommunikation

• Vgl. COM vs. CORBA• Lose Kopplung

– Plattformunabhängig persistente Daten• Datenaustausch• Archivierung

Page 21: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

XML-Landschaft – 1

XML

Anwendung

XML Schema

XQL

XML DOM

XSL

Page 22: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

XML-Landschaft – 2• XML DOM

– Generisches Objektmodell für hierarchische Daten• XSL(T) & CSS

– XML transformieren nach ...• XML• HTML• andere Datenformate

• XQL/XPath– Abfragen auf XML-Daten

• XML Schema– Validierung von XML-Daten– Datentypen

• Namespaces– Daten aus verschiedenen Schemata mischen

Page 23: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

What´s hot in XML?• XML2HTML

– Trennung von Daten und Darstellung• XSLT, CSS• SQL XML

• Datenaustausch– XML2COM

• B2B– XML EDI– BizTalk

• Web Services– SQL XML

• Applikationskommunikation– SOAP– Objektpersistenz

Page 24: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Die Grenzen von XML

• Read-Mostly– Veränderungen an XML-Daten (in Dateien) sind

aufwendig• Kein Ersatz für Datenbanken

– Zugriff nicht sehr performant, solange (große) Datenbestände in Dateien liegen

• Overhead durch Tags– Metadaten vergrößern Datenumfang

• Binärdaten müssen selbst kodiert werden

Page 25: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

XML ist keine exotische Technologie, sondern eine (zukünftige) Selbstverständlichkeit wie Datenbanken, SQL, das Internet oder Skriptsprachen.

Page 26: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Fragen?

Uff...Uff...

Page 27: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Ressourcen

• Microsoft XML Workshop– http://msdn.microsoft.com/xml

• W3C– http://www.w3c.org/xml

• XML Informationen/Leitseiten– http://www.xml.com– http://www.xml.org– http://www.ozemail.com.au/~sakthi/Common/xml.html – http://www.xmlinfo.com – http://www.vbxml.com

• Welche XML-Software gibt es?– http://www.xmlsoftware.com

• DTD-Generator– http://www.pault.com/Xmltube/dtdgen.html

• XML Code Generator– http://msdn.microsoft.com/xml/articles/generat.asp

• Diskussion des MSXML-Test auf www.xml.com– http://msdn.microsoft.com/xml/general/msxmlconform.asp

• BizTalk– http://www.biztalk.org

• Bücher / Dokumentation– »XML in Action«, William J. Pardi, MSPress– »XML IE5 Programmer´s Reference«, Alex Homer, Wrox– »Die neue Web-Sprache«, Norbert Hranitzky, http://www.hranitzky.purespace.de/docs/introxml.pdf

Page 28: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Praktische Anwendungen XML

• WML• XHTML• MathML• CML• SVG

Page 29: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

• Du sollst Deine Elemente immer schließen.

• Du sollst Attributwerte immer in doppelte Anführungszeichen setzen.

• Schachtelte Deine Elemente immer hierarchisch

3 Gebote von XML

Page 30: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Übung XML

• Erstellen Sie eine xml Datei, die Datensätze zu Personen enthält

• 3 Personen mit Name, Vorname, Adresse, und möglichen Kontaktdaten, wieDatum, Grund des Kontaktes

• Es soll pro Person möglich sein mehrere Kontaktinformationen zu speichern

Page 31: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Übung - Attribute

• Erweitern Sie Ihre XML Datei, indem Sie den Personen noch ein Attribut Alter und ein Attribut id hinzufügen

• Den Kontaktdatensätzen fügen Sie bitte noch das Attribut typ hinzu, das die Werte tel, fax, brief, persoenlich enthalten kann

Page 32: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Teile einer XML Struktur

• <?xml version=„1.0“ encoding=„...“ ?>• Elemente <Adresse></Adresse>

– Leere Elemente <Alter age=„10“/>• Attribute <Adresse id=„001“> ...• Kommentare <!-- Kommentar -->• PI <? use-processor „p1“ ?>• CDATA ... weiter nächste Seite

Page 33: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Teile einer XML Datei

• CDATA<![CDATA[hier kann alles <p> stehen]]>

• Zeichen-Referenzen : z.B: &#64 &#xA3• Entitäts-Referenzen : &gt; &lt; &amp;•

Page 34: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Kurzeinführung in DTD

• Document Type Definition

• z.B : <!ELEMENT person (name,child*)><!ELEMENT child (name)><!ELEMENT name (#PCDATA)>

Page 35: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Komplexe Strukturen

<!ELEMENT person (name)muss genau einmal erscheinen<!ELEMENT personen (*person)0 .... n mal <!ELEMENT kontakt (+datum)1 ... n mal<!ELEMENT person (?ehemann) 0 ... 1 mal

Page 36: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Übung 2 - DTD

• Erzeugen Sie eine DTD für Ihre Personendatei

• Definieren Sie– <!ELEMENT name (#PCDATA)>

Page 37: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Einbinden in XML

<? xml version=„1.0“ ?><!DOCTYPE person SYSTEM „person.dtd“><person>

<name>Markus</name><child><name>Susu</name></child><child><name>Mimi</name></child>

</person>

Page 38: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Gültig oder Wohlgeformt ?

• Wohlgeformt– Syntax von XML wird eingehalten– Wurzelelement existiert– Korrekte Verschachtelung

• Gültig– Wohlgeformt– Entspricht DT Definitionen

Page 39: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Validieren

• Nicht - Validierende Parser überprüfen Wohlgeformtheit

• Validierende Parser überprüfen Gültigkeit

Page 40: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

DTD Spezialitäten

• ENTITY<!ENTITY mac „<name>Röder</name>

<vorname>mac</vorname>“>

Benutzung mit &mac;

Page 41: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Attribute

• Zeichenkettenattribute• Aufzählungsattribute• Notationsattribute• Tokenattribute

– ID– IDREF

Page 42: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Attribute definieren

<!ELEMENT email (#PCDATA)><!ATTLIST email

id ID #REQUIRED priority (high | low |medium) #REQUIRED

type CDATA #IMPLIED>

Page 43: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Übung 2 - DTD Attribute

• Erweitern Sie Ihre DTD mit den Attributwerten mittels – <!ATTLIST .......

• Binden Sie Ihre DTD in Ihre xml Datei mittels

Page 44: Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,

Namespace

Namespaces sind eine Erweiterung des Elementnamen oder des Attributnamens um eine URI

Mehrere Namespaces können in einer XML Datei benutzt werden.

xmlns:mr =„www.erex.de/definition/mr“xmlns:hans =„www.hans.de/wasweissich/namen“

<mr:Adresse><hans:Adresse> .... </hans:Adresse>

....</mr:Adresse>