Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XML Grundlagen But if I bought a radio and found that it accessed only certain stations and not others, I'd be upset. I suppose I could have a half dozen.

Ähnliche Präsentationen


Präsentation zum Thema: "XML Grundlagen But if I bought a radio and found that it accessed only certain stations and not others, I'd be upset. I suppose I could have a half dozen."—  Präsentation transkript:

1 XML Grundlagen But if I bought a radio and found that it accessed only certain stations and not others, I'd be upset. I suppose I could have a half dozen radios, one for each set of stations. It makes no more sense to have a half dozen computers or different operating systems or browsers for Web access. Sir Timothy J. Berners-Lee (Begründer des WWW)

2 SGML Entwicklung: 1967 generic coding 1968 “editorial structure tags”
1986 SGML als ISO-Standard 8879 Funktion: Formale Typisierung von Dokumenten (Buch: Kapitel, Abschnitte, Unterabschnitte, …) Charakterisiert Dokumenttyp anhand „Document Type Definitionen“ (DTD) Metasprache zum beschreiben von Markup Languages. (kann eigene Tags definieren und deren strukturelle Beziehung zueinander festlegen) Reibungsloser Ablauf erforderte hohen Initialaufwand (Programme, Schulungen)

3 SGML Beispiel: Für das folgende Beispiel soll der Dokumenttyp "Notiz" dienen. Eine Notiz soll einen Titel haben, aus mindestens einem Absatz bestehen und im Text sollen wichtige Stellen markierbar sein: <! Element Min Inhalt > <!ELEMENT notiz (titel, absatz+) > <!ELEMENT titel (#PCDATA) > <!ELEMENT absatz - - (#PCDATA | wichtig)* > <!ELEMENT wichtig - - (#PCDATA) > Angenommen diese DTD ist als Datei /usr/home/sm/dtd/notiz.dtd abgespeichert. Eine Instanz des Dokumenttyps würde so aussehen: <!DOCTYPE notiz SYSTEM "/usr/home/sm/dtd/notiz.dtd" []> <notiz> <titel>Termine</titel> <absatz> Dienstag, 9 Uhr: <wichtig>Zahnarzttermin</wichtig> </absatz> ... </notiz>

4 Was ist XML ? Entwicklung:
Am wurde XML 1.0 als Empfehlung des W3C veröffentlicht Am folgte die 2.Edition von XML 1.0 Am folgte die 3.Edition von XML 1.0 AM folgte die 4.Edition von XML 1.0 Funktion: reduzierte Version von SGML Standard zur Modellierung von Daten in Form einer Baumstruktur Klartext verständlich für Mensch & Maschine definiert Regeln für den Aufbau von Dokumenten Standard zur Definition von beliebigen in ihrer Grundstruktur jedoch stark verwandten Auszeichnungssprachen Metasprache Sieht ähnlich wie HTML aus, ist jedoch nicht als Nachfolger gedacht.

5 Was ist XML ? Aufbau: Ein XML-Dokument besteht aus einem Prolog und den eigentlichen XML- Daten. Prolog: <?xml version="1.0" encoding="UTF-8" standalone=“no" ?> <?xml-stylesheet href="...\styles\muster.xsl" type="text/xsl" ?> <!DOCTYPE xmldoc SYSTEM "dokumenttypdefinition.dtd"> XML-Daten: <gruss>Hallo Welt!</gruss>

6 Warum XML ? technisch völlig plattformunabhängig
Liefert Zusatzinformationen über Daten, die direkt weiterverarbeitet werden können. umfangreiche Formatierungen mit HTML nicht möglich HTML erlaubt keine Definition eigener DTDs SGML ist nicht gut geeignet um Dokumente über das Internet anzubieten. Spezifikationsumfang von XML geringer als SGML, da Teilmenge. Pareto Verteilung XML enthält mehr Restriktionen (Entwicklung von Browsern leichter) CSS und JavaScript/DOM sind 100% zu XML kompatible. Kann verwendet werden, wenn keine Datenbank zur verfügung steht.

7 Korrektheit XML hat 2 verschiedene Vorstellungen von "korrekt".
Wohlgeformtheit: Dokument mit verständlichem Markup wird als wohlgeformtes Dokument bezeichnet. Gültigkeit: Der Standard definiert ein XML-Dokument als gültig, wenn es wohlgeformt ist, den Verweis auf eine DTD enthält und das durch die DTD beschriebene Format einhält. Wird ein XML-Dokument als nicht gültig erkannt, ist seine Verarbeitung gemäß W3C-Vorgabe abzubrechen.

8 Korrektheit Ein wohlgeformtes Dokument sollte u.a. folgende Bedingungen erfüllen: die XML-Version sollte deklariert sein es gibt genau 1 Wurzelelement innerhalb des Wurzelelementes sind alle Elemente eindeutig ineinander verschachtelt alle nicht-leeren Elemente sind mit Start-Tag und End-Tag markiert jeder Start-Tag beginnt mit < und schließt ab mit > und jeder End-Tag beginnt mit </ und schließt ab mit > leere Elemente sind entweder mit Start- und End-Tag markiert oder beginnen mit < und schließen ab mit /> Ein Kommentar wird begrenzt von <!-- und --> eingeschlossen ein Attribut darf nicht zweimal im gleichen Tag vorkommen verwendete Entitäten müssen vor ihrer Referenzierung deklariert worden sein

9 Korrektheit Beispiel für ein wohlgeformtes XML-Dokument:
wohlgeformt.xml: <?xml version="1.0" ?> <vater> <kind> <!– Ich bin ein Kommentar --> Ich bin wohlgeformt. </kind> <leererTag/> <auchLeer></auchLeer> </vater>

10 Dokument Type Definition
Die DTD ist das Regelwerk des XML-Dokuments und definiert Elemente, Entities und Attribute. In HTML gibt es eine fest vorgeschriebene HTML-DTD. Bei XML kann man sich diese DTD selber definieren (lassen). Vorteile: Mehr Handlungsspielraum, da die Syntax auf die Bedürfnisse angepasst werden kann. Jeder Elementtyp kann in der gewünschten Häufigkeit angegeben werden. Ein XML-Editor kann einen Autor davon abhalten, die Gültigkeit eines XML-Dokuments zu zerstören. Eine DTD bildet die Grundlage für eine mögliche homogene, dezentrale Weiterverarbeitung der XML-Daten.

11 Dokument Type Definition
Beispiel dokumenttypdefinition.dtd <!ENTITY auml CDATA "ä"> <!ENTITY Auml CDATA "Ä"> <!ENTITY ouml CDATA "ö"> <!ENTITY Ouml CDATA "Ö"> <!ENTITY uuml CDATA "ü"> <!ENTITY Uuml CDATA"Ü"> <!ENTITY szlig CDATA "ß"> <!ELEMENT persverz (person)+> <!ELEMENT person (name, adresse+, geburtsdatum?, sonstiges*)> <!ELEMENT name (vorname, nachname)> <!ELEMENT vorname (#PCDATA)> <!ELEMENT nachname (#PCDATA)> <!ELEMENT adresse (#PCDATA)> <!ELEMENT geburtsdatum (#PCDATA)> <!ELEMENT sonstiges (#PCDATA)>

12 Dokument Type Definition
Beispiel für daraus resulierendes XML-Dokument xmldoc.xml <?xml version="1.0" encoding="ISO " standalone="no"?> <?xml:stylesheet type="text/xsl" href="layoutdatei.xsl"?> <!DOCTYPE xmldoc SYSTEM "dokumenttypdefinition.dtd"> <persverz> <person> <name> <vorname>Hans</vorname> <nachname>Wurst</nachname> </name> <adresse>Musterstr.1, Musterstadt </adresse> <geburtsdatum> </geburtsdatum> <sonstiges>verheiratet</sonstiges> <sonstiges>2 Kinder</sonstiges> </person> </persverz>

13 Präfix(Namensraum):lokaler Teil(Element oder Attribut)
Namensräume In der Praxis kann es vorkommen, dass beim Konsolidieren zweier XML-Dokumente, Elementtypen mit gleicher Bezeichnung verwendet werden. Mögliche Folge wäre keine eindeutige Zuweisung des Elementtyps zu einer der vorhandenen DTDs.→ XSLT hätte Probleme die XML-Daten richtig aufzubereiten Man bedient sich in diesem Fall der Namensräume. Ein qualifizierender Name Qname besteht aus: Präfix(Namensraum):lokaler Teil(Element oder Attribut) <person xmlns:vater="http://homepage-vom-vater.de" xmlns:kind="http://www.homepage-vom-kind.de"> <vater:vorname>Hans</vater:vorname> <kind:vorname>Hänschen</kind:vorname> </person> Die URI soll nur eine eindeutige Bezeichnung für den Namensraum sein. Es wird nicht auf die Datei zugegriffen.

14 XML-Schema Ein XML-Schema (auch XML-Schema-Definition kurz:XSD) bietet eine umfangreichere Alternative zur Strukturbeschreibung als eine DTD. Das Schema wird in XML verfasst.

15 XML-Schema Die Vorteile der XSD bestehen vorrangig in der Komplexität und den möglichen Einstellungen, die vorgenommen werden können. Das XSD kann sich selber validieren und ist somit als Bestandteil des XML-Dokuments korrekt. Das XSD wird in XML verfasst und es bedarf keiner neuen, XML-fremden Sprache. In Schema lassen sich komplexe Datentypen definieren und sogar im Wertebereich eingrenzen.

16 XML-Schema Elementdefinitionen: Simple:
<xsd:element name=“geburtstag“ type=“xsd:date“/> <xsd:element name=“homepage“ type=“xsd:anyURI“/> Complex: <xsd:complexType name=“Familie“> <xsd:mitglieder> <xsd:element name="Vater“ type="xsd:string"/> <xsd:element name="Mutter" type="xsd:string"/> </xsd:mitglieder> </xsd:complexType>

17 XLink Mit einem XLink lassen sich zwei Typen von Links erstellen:
simple: vergleichbar mit dem aus HTML bekannten Link auf Ressource oder Internetauftritt. extended: bildet komplexes Linksystem, mit dem man mehrere Ressourcen/Internetseiten gleichzeitig ansprechen kann. Außerdem lassen sich Verhaltensmuster für Linkgruppen definieren.

18 XPointer Der XPointer macht es möglich neben Element(teilen) auch auf einzelne Punkte oder Bereiche zu referenzieren. Vorgabe dabei ist allerdings, dass die angesprochenen Dokumente XML-konform sind. Es gibt 2 Zeigertypen. #xpointer():sucht Element mit entsprechender ID oder Alternative #xpointer(id("zielid1")) xpointer(id("zielid2")) #element():verfolgt den Strukturbaum bis zum gewünschten Element #element(1/2/3) oder #element(element1/2/3)

19 Document Object Model DOM ist eine Programmierschnittstelle (API) für den Zugriff auf HTML- oder XML-Dokumente. Sie wird vom World Wide Web Consortium definiert erlaubt Computerprogrammen dynamisch den Inhalt, die Struktur und das Layout eines Dokuments zu verändern. Programmschnittstelle ist Plattform und Sprachneutral geeignet für Script-Sprachen aber z.B. auch für HTML-Editoren Verarbeitung eines Dokuments Im ersten Schritt wird ein Dokument eingelesen und ein Dokument-Objekt erzeugt. Anhand dieses Objekts kann mittels der Methoden des API auf die Inhalte, Struktur und Darstellung zugegriffen werden. DOM erlaubt: die Navigation zwischen den einzelnen Knoten eines Dokuments, das Erzeugen, Verschieben und Löschen von Knoten sowie das Auslesen, Ändern und Löschen von Textinhalten. Am Ende der Verarbeitung kann aus dem Dokument-Objekt durch Serialisierung ein neues XML- oder HTML-Dokument generiert werden.

20 Document Object Model Beispiel: Beispiel_xmldoc.xml
<?xml version="1.0" encoding="ISO " standalone="no"?> <?xml:stylesheet type="text/xsl" href="layoutdatei.xsl"?> <!DOCTYPE xmldoc SYSTEM "dokumenttypdefinition.dtd"> <persverz> <person> <name> <vorname>Hans</vorname> <nachname>Wurst</nachname> </name> <adresse>Musterstr.1, Musterstadt</adresse> <geburtsdatum> </geburtsdatum> <sonstiges>verheiratet</sonstiges> </person> </persverz>

21 Document Object Model DOM-Baum zu Beispiel_xmldoc.xml:
Fast alle XML-Parser bieten inzwischen ein DOM-Modul an, mit dem sich ein DOM aus einer XML-Datei erstellen läßt. Der DOM-Baum, der vom Parser erstellt wird, muß immer vollständig im Hauptspeicher gehalten werden. (bedenke Performance)

22 Transformation von XML-Dokumenten
XSL Transformations (XSLT) ist ein Sprachbestandteil der eXtensible Stylesheet Language XSL. XSLT bietet die Möglichkeit beliebige XML-Dokumente in andere Formate zu transformieren. Es ist es möglich die Daten in XML zu speichern, aber in einem anderen bzw. nützlicheren Format darzustellen oder kompakter zu gestalten als das Original. (ohne überflüssige Informationen) mögliche Ausgabeformate sind XML, HTML, XHTML, SVG, VRML und PDF Die Transformation geschieht mithilfe von XSL-Stylesheets Parsen durch Transformations-Engine (z.b. Saxon) Existiert zu einer Auszeichnung eine Regel im Stylesheet, ein sogenanntes Template, wird diese angewandt und der Ergebnis-Code wird erzeugt

23 Transformation von XML-Dokumenten
Beispiel: adressbuch.xml –-–-Saxon–-–-> adressbuch.html Die Transformation eines Adressbuchs adressbuch.xml in eine HTML-Datei adressbuch.html soll hier mit der XSLT-Engine Saxon beispielhaft gezeigt werden. Die Quelldatei adressbuch.xml: <?xml version="1.0"?> <!DOCTYPE adressbuch SYSTEM "adressbuch.dtd"> <Adressbuch> <Person> <Vorname>Hans</Vorname> <Nachname>Wurst</Nachname> <Ort plz=„06701">Bockstadt</Ort> <Alter>50</Alter> </Person> </Adressbuch>

24 Transformation von XML-Dokumenten
Das Transformations-Stylesheet adressbuch.xsl: <?xml version="1.0"?> <xsl:stylesheet version="1.0“ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head> <title> Transformiertes Adressbuch </title> </head> <body> <xsl:apply-templates /> </body> </html> </xsl:template>

25 Transformation von XML-Dokumenten
<xsl:template match="Vorname"> <td> <xsl:value-of select="." /> </td> </xsl:template> <xsl:template match="Nachname"> <xsl:template match="Alter"> <xsl:template match="Ort"> </xsl:stylesheet>

26 Transformation von XML-Dokumenten
Aufruf: saxon -o adressbuch.html adressbuch.xml adressbuch.xsl Quelldatei: adressbuch.xml Stylesheet: adressbuch.xsl Ergebnis: adressbuch.html

27 Transformation von XML-Dokumenten
Ergebnis adressbuch.html: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title> Transformiertes Adressbuch </title> </head> <body> <table border="2"> <tr> <td>Hans</td> <td>Wurst</td> <td>Bockstadt</td> <td>50</td> </tr> </table> </body> </html> Das Ergebnis dieser Transformation ist also eine reine HTML-Datei, die über die Angaben im Stylesheet beliebig gestaltet werden darf

28 Transformation von XML-Dokumenten
Beispiel: XML - Gästebuch easyboard.php (Die Index-Seite des Gästebuches) easyboard_entries.xml (Enthällt die Einträge im XML-Format)

29 Quellen Bücher: SGML für die Praxis – Ansatz und Einsatz von ISO 8879, Wolfgang Rieger, Springer-Verlag Berlin Heidelberg, 1995 XML für Dummies, 3. überarbeitete Auflage, Lucinda Dykes , Ed Tittel; Wiley- Vch, 2006 XML, Grundlagen der Sprache und Anwendungen in der Praxis; Dirk Ammelburger, Carl Hanser Verlag, 2004 Internet:


Herunterladen ppt "XML Grundlagen But if I bought a radio and found that it accessed only certain stations and not others, I'd be upset. I suppose I could have a half dozen."

Ähnliche Präsentationen


Google-Anzeigen