You are on page 1of 18

XML Grundaufbau

DMD12D Jens Käsbauer (www.jenskaesbauer.de)

Eine Auszeichnungssprache dient zur Beschreibung des Inhalts eines Dokuments. Ursprünglich dienten die Auszeichnungen im Text als Anweisungen für die Setzer im Drucksatz. XML www.jenskaesbauer.XML Grundaufbau Auszeichnungssprache Die Buchstabenfolge XML ist ein Akronym der Worte Extensible Markup Language. als erweiterbare Auszeichnungssprache.de . was ins Deutsche übersetzt nichts anderes heist.

Später wurde versucht mit XHTML eine Zusammenführung von HTML und XML für ein barrierefreieres Internet zu erreichen. Dies hat sich jedoch nie richtig durchgesetzt. .de SVG X3D OSM SMIL AutomationML XML Encryption .XML Grundaufbau Herkunft SGML HTML Standard Generalized Markup Language XML XHTML XML wurde 1989 als Vereinfachung von SGML zum ersten mal als eigenständige Spezifikation veröffentlicht.. Aufgrund der Flexibilität von XML bildete sich schnell eine Vielzahl an Derivaten..jenskaesbauer. XML www.

jenskaesbauer.Darstellung hierarchisch strukturierter Daten.Plattform. .Nur ein Datenbestand.XML Grundaufbau Aufgaben / Grundgedanke / Vorteil Hauptaufgaben .und Softwareunabhängig.und implementationsunabhängigen Austausches von Daten. viele Präsentationsmöglichkeiten. . .Daten sollen strikt losgelöst von deren Präsentation gespeichert werden.de . .Flexibilität für nahezu jedes Einsatzgebiet.Ermöglichen des plattform. XML www. Grundgedanke Vorteile .

23.jenskaesbauer. 08156. Normal. Japan .Baumstruktur I Adressdaten Theo. Wenn man das Prinzip dahinter einmal verstanden hat. Toyo..XML Grundaufbau XML . Da sich die Art der einzelnen Daten in jedem Datensatz jedoch wiederholt kann man sich eine einfache Baumstruktur bauen: Adressdaten | → Kunde | | | → → → Vorname Name Adresse | → | → | → | → | → Straße Hausnummer Postleitzahl Ort Land XML www.de Immer wiederkehrende Datensätze bilden die Basis für unsere Baumstruktur. Gotthard. Schweiz Otto. 04711. dann ist es auch ein Leichtes daraus eine XML Datei zu erstellen.. 23. Gottesacker. . Loge. St. liegen oftmals in wenig strukturierter Form vor. Rudolf-Diesel-Weg.

Baumstruktur II Adressdaten | → Kunde | | | <Adressdaten> <Kunde> → → → Vorname Name Adresse | → | → | → | → | → <Vorname>Theo</Vorname> <Name>Loge</Name> <Adresse> Straße Hausnummer Postleitzahl Ort Land <Straße>Gottesacker</Straße> <Hausnummer>23</Hausnummer> <Postleitzahl>08156</Postleitzahl> <Ort>St.de .XML Grundaufbau XML .</Adressdaten> mal in eine Baumstruktur gebracht hat. ist es bis zur fertigen XML Struktur nicht mehr weit.jenskaesbauer. XML www. Gotthard</Ort> <Land>Schweiz</Land> </Adresse> Die Baumstruktur und die Struktur eines XML Dokuments äh</Kunde> neln sich stark. Wenn man die einem vorliegenden Daten ein.

zb. weshalb eine Mehrfachnennung eines Attributs nicht zulässig ist.jenskaesbauer. wenn es • wohlgeformt ist. dass der End-Tag des innersten Elements vor dem des darüberliegenden Elternelements liegen muss. vgl.de .Tag in XHTML • Alle Elemente müssen durch ein Beginn.XML Grundaufbau Wohlgeformtheit und Validität Um ein wohlgeformtes XML-Dokument zu bekommen. Das bedeutet. <html> .und End-Tag definiert sein. Ein Attribut definiert ein Element näher. Ein XML-Dokument ist laut der Spezifikation des W3C dann gültig (valide). • Ein Element darf nicht mehrere Attribute mit dem gleichen Namen enthalten. • einen Verweis auf eine DTD oder XML Schema hat • UND sich an die Anweisungen der DTD hält! XML www. Dies gilt bis zum schließen des Root-Elements. <vorname>Vorname1</vorname> • Die Elemente müssen von innen nach außen geschlossen werden. muss man bestimmte Regeln einhalten: • Das Dokument besitzt genau ein Wurzelelement.

.XML Grundaufbau Syntax I Prolog: <?xml version=“1. ]> oder <!DOCTYPE test SYSTEM “test. testB.css“ type=“text/css“?> Interne DTD oder Verweis auf die externe DTD: <!DOCTYPE test [ <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT .de .0“ encoding=“UTF-8“ standalone=”no” ?> Definition des Stylesheets: <?xml-stylesheet href=“beispiel.jenskaesbauer. testC)> (#PCDATA)> (#PCDATA)> (#PCDATA)> XML www.dtd“> test1 testA testB testC (testA..

was es natürlichermaßen unheimlich flexibel und für viele Bereiche Interessant macht. Dafür ist die Erstellung der DTD umso komplexer und aufwändiger.de .XML Grundaufbau Syntax II Wurzelelement öffnen: <test1> Unterelemente: <testA>Inhalt</testA> <testB></testB> <testC /> Wurzelelement schließen: </test1> (Element mit Inhalt) (Leeres Element Version 1) (Leeres Element Version 2) XML hat eine sehr einfache Syntax. XML www.jenskaesbauer.

an der in der XML . ]> test1 testA testB testC ((testA+). Diese kann. testB. Auf die erste Zeile der externen DTD wird dann allerdings verzichtet.. oder ausgelagert in einer zweiten Datei angegeben werden.de .0“ encoding=“UTF-8“?> <!DOCTYPE test [ <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT . wie vorne im Text bereits beschrieben. Sie wird an der Stelle eingefügt. XML www.XML Grundaufbau Document Type Definition I – Grundlagen Um ein XML-Dokument validieren zu können bedarf es einer DTD. Es fehlen lediglich die tatsächlichen XML-Daten: <?xml version=“1.Datei der Verweis auf die externe DTD stehen würde. entweder im Text. also zwischen Prolog und dem Wurzelelement der XML-Baumstruktur. testC)> (#PCDATA)> (#PCDATA)> (#PCDATA)> Eine interne DTD sieht genauso aus. Eine externe DTD wird im Endeffekt wie eine XML-Datei beschrieben.jenskaesbauer..

“ durch einen „| “ aus. • Für jedes Element gilt. wie in der DTD. sofern nicht weiteres angegeben wird. • Der Name eines Elements kann frei gewählt werden. • Fügt man ein ? an den Unterelement-Namen an. wie auch für die Hauptelemente. so muss dieses Unterelement mindestens einmal im übergeordneten Element eingebunden werden. Will man die Wahl haben. Will man dies variieren kann man dies mit den Zeichen „?“. <!ELEMENT test1 (a.jenskaesbauer.de . “ als Trennzeichen gibt dann an.b.(sub_test2|sub_test3)*)> XML www.B. welches Element angegeben werden soll. • Soll ein Element weitere Unterelemente enthalten. • Fügt man ein * an den Unterelement-Namen an. oder Leerzeichen enthalten. so schreibt man die erlaubten Tags in runde Klammern nach dem Namen des Hauptelements. • Fügt man ein + an. Er muss in den XML-Daten aber genauso geschrieben werden. • Für diese Unterelemente gelten die gleichen Regeln. das jedes der Unterelemente angegeben werden muss.c)> • Das „ . „+“ und „*“. Ausnahme: Elemente dürfen nicht mit „xml“ oder Zahlen beginnen. so kann dieses Unterelement beliebig oft angegeben werden. • Die Zusatzzeichen können auch innerhalb eines Elements.XML Grundaufbau Document Type Definition II – Regeln Wichtige Regeln für die Erstellung einer DTD • Schlüsselwörter (z. welches weitere Unterelemente enthalten soll kombiniert werden: <!ELEMENT test1 (sub_test1?. ELEMENT) müssen groß geschrieben werden. dass es mindestens einmal im XML-Dokument vorkommen muss. so tauscht man das „ . so wird dieses Unterelement optional.

oder als Attributslisten.jenskaesbauer.de . angegeben werden: • Attribut eines Elements: <!ELEMENT test1 #PCDATA ‘defaultwert’> • Attributsliste: <!ATTLIST element_name attribut_name typ default_wert> XML www. <!ELEMENT test2 ANY> Attribute Attribute können entweder direkt als Attribut eines Elements. <!ELEMENT test1 EMPTY> • Elemente mit beliebigem Inhalte werden mit dem Schlüsselwort ANY gekennzeichnet.XML Grundaufbau Document Type Definition III – Regeln und Attribute Wichtige Regeln für die Erstellung einer DTD • Leere Elemente werden mit dem Schlüsselwort EMPTY gekennzeichnet. ähnlich einer Auswahlliste.

Underscore..jenskaesbauer. XML www. Unterstrich oder Doppelpunkt beginnen) • IDREF = Ein Bezug auf eine im Dokument vorkommende ID (darf öfter vorkommen) • IDREFS = Mehrere durch Leerschritte getrente IDREF-Bezeichner • ENTITY = Name einer in der DTD definierten unparsed Entity • ENTITIES = Mehrere.de . Mittelpunkt • NMTOKENS = Mehrere durch Leerschritte getrennte NMTOKEN (enumeration) = Durch |-Symbole getrennte NMTOKEN. Diese Notationen werden benutzt. Doppelpunkt.9. durch Leerschritte getrennte. in runde Klammern gesetzt • NOTATION = Durch |-Symbole getrennte Aufzählung von in der DTD deklarierten Notations-Namen.XML Grundaufbau Document Type Definition IV – Attributtypen Attributtypen Der Vollständigkeit halber sind hier die möglichen Attributtypen und deren Bedeutung aufgeführt: • CDATA = Beliebiger Text • ID = Ein eindeutiger XML Bezeichner (muss mit Buchstabe. Erlaubte Zeichen: A. a. um den Inhalt des Elements zu interpretieren. 0. Punkt.. Unparsed Entity Namen • NMTOKEN = Ein Namens-Token.Z.z.. Bindestrich.

oder leer gelassen. XML www. Damit kann man sich die spätere Arbeit im XML-Dokument erleichtern. Folgende mögliche Defaultwerte gibt es in XML: • ‘defaultwert’ = Hier wird innerhalb der Hochkommas einfach der gewünschte Wert eingegeben. Fehlt es in der XML Datei wird es entweder von der Anwendung definiert. wenn es fehlt. Dies kann man zum Beispiel machen.jenskaesbauer. ist das Dokument nicht mehr valide! • #IMPLIED = Dieses Attribut ist optional und wird von der Anwendung definiert. Wird im Tag ein anderer Wert eingegeben ist das Dokument nicht mehr valide. • #FIXED ‘defaultwert’ = Es darf nur der in Hochkommas angegebene Wert auich später im Tag angegeben werden.XML Grundaufbau Document Type Definition V – Defaultwerte Defaultwerte von Elementen Bei XML kann man Elemente bereits mit Werten vorbelegen. Fehlt dieses Attribut wird der defaultwert verwendet. wenn man weis.de . das ein bestimmtes Element im Regelfall immer den selben Wert hat und nur in Ausnahmefällen mal einen anderen. Fehlt das Attribut später innerhalb des Tags wird einfach der Standart-Wert angenommen und vom Parser verwendet. • #REQUIRED = Dieses Attribut muss auf jeden Fall angegeben werden.

ORT)> <!ELEMENT STRASSE #PCDATA> <!ELEMENT HAUSNUMMER #PCDATA> <!ELEMENT PLZ #PCDATA> <!ELEMENT ORT #PCDATA> ]> XML www. PLZ.dtd“ <?xml version=“1.0“ encoding=“UTF-8“?> <!DOCTYPE PersListe [ <!ELEMENT PersListe (PERSON)+> <!ELEMENT PERSON ((VORNAME+). NACHNAME.XML Grundaufbau Document Type Definition VI – Beispiel „Personenliste“ Ein komplettes Beispiel Am besten versteht man die Verwendung einer DTD wohl mit einem Beispiel.de . ADRESSE)> <!ATTLIST PERSON geschlecht („m“|“w“) #REQUIRED> <!ELEMENT VORNAME #PCDATA> <!ELEMENT NACHNAME #PCDATA> <!ELEMENT ADRESSE (STRASSE.jenskaesbauer. HAUSNUMMER. welches die trockene Theorie gleich mit einer praktischen Anwendung verbinden kann: Die externe DTD mit dem Namen „person.

de .jenskaesbauer.XML Grundaufbau Document Type Definition VII – Beispiel „Personenliste“ Die XML-Datei mit dem Namen „personenliste.dtd‘> <PersListe> <PERSON geschlecht=“m“> <VORNAME>Hans</VORNAME> <VORNAME>Peter</VORNAME> <VORNAME>Egon</VORNAME> <NACHNAME>Mustermann</NACHNAME> <ADRESSE> <STRASSE>Mustergasse</STRASSE> <HAUSNUMMER>1</HAUSNUMMER> <PLZ>0815</PLZ> <ORT>Musterstadt</ORT> </ADRESSE> </PERSON> <PERSON geschlecht=“w“> <VORNAME>Erika</VORNAME> <NACHNAME>Mustermann</NACHNAME> <ADRESSE> <STRASSE>Mustergasse</STRASSE> <HAUSNUMMER>1</HAUSNUMMER> <PLZ>0815</PLZ> <ORT>Musterstadt</ORT> </ADRESSE> </PERSON> </PersListe> XML www.0‘ encoding=‘UTF-8‘?> <!DOCTYPE PersListe SYSTEM ‚person.xml“ <?xml version=‘1.

xml.selfxml.de .de/ (de) http://www. auf denen wir uns viel Wissen rund um dieses Thema zusammengesammelt haben.XML Grundaufbau weiterführende Informationen Weitere Informationen rund um das Thema XML findet ihr auf den folgenden Websiten.org/xml/ (de) http://www.w3.org/XML/ (en) http://www.wikipedia. Diese Zusammenstellung erhebt keinen Anspruch auf vollständigkeit und soll bestenfalls Ausgangspunkte für die weitere Recherche liefern.jenskaesbauer. http://de.com/ (en) XML www.selfhtml.org/wiki/Extensible_Markup_Language (de) http://de.

XML Grundaufbau Vielen Dank Vielen Dank für Eure Aufmerksamkeit! XML www.jenskaesbauer.de .