Kein Folientitel

Werbung
Markus Röder
XML
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
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
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
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
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
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
7, 8, 9...
• Diese kenne ich selbst noch nicht.
XML in 10 Punkten
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
•
•
Miss at your own RISK
XML in 10 Punkten
Von SGML zu XML
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 0
MATCHCODE
Knebelschalter u.P.
BEGINN_TEXT
KURZTEXT
Knebelschalter u.P.
ENDE_TEXT
KURZTEXT
PREISTYP 0
PREISPER 1
BRUTTOPREIS
14,20
Warengruppe Elektrozubeh”r
Produktgruppe
Schalter und Taster
–
<td><b>Microsoft Corp.<b></td><td>MSFT</td><td><b>92,23</b></td>
Probleme konkret – 2
Was sind die Daten?
 Die Abgrenzung von Bedeutungseinheiten ist schwer:
PeterMustermannIsestr. 5323494Hamburg
 Wo sind die Daten?
Die Ermittlung der Positionen von Bedeutungseinheiten
ist schwer:
PeterMustermannIsestr. 5323494Hamburg
Index: 0
Index: 1
Index: 2
Index: 3
Nachteile proprietärer Datenformate
• 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
Das XML-Lösungsangebot – 1
Das sind die Daten!
 Bedeutungseinheiten werden von Tags eingeschlossen.
 Bedeutungseinheiten können geschachtelt werden.
<Name><Vor>Peter</Vor><Nach>Mustermann</Nach></Name>
 Dort sind die Daten!
Bedeutungseinheiten können über Namen identifiziert werden.
<Name><Vor>Peter</Vor><Nach>Mustermann</Nach></Name>
„Vor“
„Nach“
„Name“
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
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
Vom Text zum Objektmodell: XML DOM
MSXML XML-Parser
Adressen
<Adressen>
Adresse
<Adresse>
<Name> Mustermann </Name>
<PLZ> 22087 </PLZ>
</Adresse>
<Adresse
</Adresse>
</Adressen>
Name
Mustermann
PLZ
id="1234" >
22087
id
Adresse
1234
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
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
XML-Landschaft – 1
Anwendung
XQL
XML DOM
XML Schema
XSL
XML
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
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
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
XML ist keine exotische Technologie, sondern
eine (zukünftige) Selbstverständlichkeit wie
Datenbanken, SQL, das Internet oder
Skriptsprachen.
Fragen?
Uff...
Ressourcen
•
Microsoft XML Workshop
–
•
W3C
–
•
http://msdn.microsoft.com/xml/general/msxmlconform.asp
BizTalk
–
•
http://msdn.microsoft.com/xml/articles/generat.asp
Diskussion des MSXML-Test auf www.xml.com
–
•
http://www.pault.com/Xmltube/dtdgen.html
XML Code Generator
–
•
http://www.xmlsoftware.com
DTD-Generator
–
•
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.w3c.org/xml
XML Informationen/Leitseiten
–
–
–
–
–
•
http://msdn.microsoft.com/xml
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
Praktische Anwendungen XML
•
•
•
•
•
WML
XHTML
MathML
CML
SVG
3 Gebote von XML
• Du sollst Deine Elemente immer schließen.
• Du sollst Attributwerte immer in doppelte
Anführungszeichen setzen.
• Schachtelte Deine Elemente immer
hierarchisch
Übung XML
• Erstellen Sie eine xml Datei, die Datensätze
zu Personen enthält
• 3 Personen mit Name, Vorname, Adresse,
und möglichen Kontaktdaten, wie
Datum, Grund des Kontaktes
• Es soll pro Person möglich sein mehrere
Kontaktinformationen zu speichern
Ü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
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
Teile einer XML Datei
• CDATA
<![CDATA[hier kann alles <p> stehen]]>
• Zeichen-Referenzen : z.B: &#64 &#xA3
• Entitäts-Referenzen : > < &
•
Kurzeinführung in DTD
• Document Type Definition
• z.B :
<!ELEMENT person (name,child*)>
<!ELEMENT child (name)>
<!ELEMENT name (#PCDATA)>
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
Übung 2 - DTD
• Erzeugen Sie eine DTD für Ihre
Personendatei
• Definieren Sie
– <!ELEMENT name (#PCDATA)>
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>
Gültig oder Wohlgeformt ?
• Wohlgeformt
– Syntax von XML wird eingehalten
– Wurzelelement existiert
– Korrekte Verschachtelung
• Gültig
– Wohlgeformt
– Entspricht DT Definitionen
Validieren
• Nicht - Validierende Parser überprüfen
Wohlgeformtheit
• Validierende Parser überprüfen Gültigkeit
DTD Spezialitäten
• ENTITY
<!ENTITY mac „<name>Röder</name>
<vorname>mac</vorname>“>
Benutzung mit &mac;
Attribute
•
•
•
•
Zeichenkettenattribute
Aufzählungsattribute
Notationsattribute
Tokenattribute
– ID
– IDREF
Attribute definieren
<!ELEMENT email (#PCDATA)>
<!ATTLIST email
id ID #REQUIRED
priority (high | low |medium) #REQUIRED
type CDATA #IMPLIED
>
Übung 2 - DTD Attribute
• Erweitern Sie Ihre DTD mit den
Attributwerten mittels
– <!ATTLIST .......
• Binden Sie Ihre DTD in Ihre xml Datei
mittels
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>
Herunterladen