Zeichen Encoding XML Jens Reinhardt HTW Berlin Studiengang
Zeichen, Encoding, XML Jens Reinhardt HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt
Fahrplan ✦ Encoding, XML, Webstandards (XHTML&CSS) ✦ Zeichensätze (ASCII, Unicode) vs. Glyphen ✦ Encoding (ISO-8859, UTF-8, . . . ) ✦ e. Xtensible Markup Language – XML ✦ ✦ Validierung und Wohlgeformtheit ✦ DTDs und XML Schema XML-Anwendungen HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 2 /15
Zeichensätze – Encoding – Glyphen HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt
Zeichen und Zeichensatz Wie werden (Schrift)zeichen im Rechner gespeichert? ✦ Arten von Zeichen ✦ ✦ Zeichensatz ✦ ✦ Vorrat an adressierbaren Zeichenkodierung ✦ ✦ Schriftzeichen, Zahlen, Symbole, Steuerzeichen eindeutige Zuordnung von Zeichen zu einem (Binär)code Glyph ✦ a graphische Darstellung eines Zeichens oder Buchstabenteils HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 4 /15
Zeichensätze – ASCII ✦ American Standard Code for Information Interchange ✦ 1963, entwickelt für die Telegrafie, aktuelle Fassung von 1968 ✦ 7 -bit Code (128 Zeichen) ✦ Lateinisches Alphabet, Zahlen, Satz- & Sonderzeichen (95 Zeichen) ✦ Steuerzeichen für Fernschreiber (33 Zeichen) ✦ Grundlage für heutige „moderne“ Zeichensätze ✦ keine diakritischen Zeichen ✦ keine Internationalisierung ✦ Internationalisierung durch Encoding mittels Code. Pages auf 8 -Bit, länderspezifisch ✦ extended ASCII codes: erweitern ASCII auf 8 bit und stellen somit 128 weitere Zeichen zur Verfügung (siehe: http: //www. asciicode. com/) HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 5 /15
Zeichensätze – EBCDIC ✦ Extended Binary Coded Decimals Interchange Code von der IBM für Mainframe-Rechner entwickelter Zeichensatz, 8 -bit ✦ aus dem 4 -bit-Code für Dezimalzahlen (BCD) entstanden ✦ nicht einheitlich, verschiedene Varianten ✦ ✦ Internationalisierung durch Encoding mittels Code. Pages auf 8 -Bit, länderspezifisch ✦ EBCDIC 273 und EBCDIC 1141, Variante für deutsche Sprache, 1141 enthält Euro-Symbol (€) HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 6 /15
Zeichensätze – Unicode ✦ internationaler Standard ✦ ISO 10646, dort UCS (Universal Character Set) genannt ✦ Ziel: jedes Schriftzeichen / -element aller bekannten Schriftkulturen und -systeme soll codiert werden können ✦ ursprünglich 16 -Bit 1991: Version 1. 0. 0 mit 7. 161 Zeichen ✦ 1996: Version 2. 0 mit 38. 950 Zeichen ✦. . . ✦ 2010: Version 6. 0 mit 109. 242 Zeichen ✦ ✦ maximal ✦ mögliche Zeichen: 1. 114. 112 in 17 Bereichen (zu je 65536 Zeichen – 16 bit) HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 7 /15
Zeichenkodierung – ISO-8859 -1 (Latin-1) ✦ ISO-Standard von 1998 ✦ erweitert ASCII um 8. bit ✦ codiert 96 weitere Zeichen (hex A 0 bis FF) ✦ erfasst möglichst viele Sonderzeichen westeuropäischer Sprachen ✦ daneben existieren Windows 1252 (Westeuropäisch) ✦ und weitere. . . ✦ HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 8 /15
Zeichenkodierung – UTF (UCS Transformation Format) ✦ bildet Unicode-Zeichensatz auf Folgen von Bytes ab ✦ UTF-8 8 -bit Variante, 1 -4 Bytes lang, variabel ✦ bit 8 (und weitere), bedeutet Fortsetzung im nächsten Byte ✦ ASCII-kompatibel, sehr speichereffizient für lateinische Buchstaben ✦ weit verbreitet ✦ ✦ UTF-16 älteste Version ✦ hex FEFF ist Byte Order Mark (little vs. big Endian) ✦ ✦ UTF-32, UTF-7, UTF-EBCDIC HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 9 /15
Unterschied zwischen Zeichensatz und Zeichenkodierung ✦ englisch: ✦ Zeichensatz: character set ✦ Zeichenkodierung: encoding ✦ Ein Zeichensatz ist eine fest definierte Menge von Zeichen ✦ Eine Zeichenkodierung ist ein System, das die Darstellung aller Zeichen eines Zeichensatzes ergmöglicht ✦ Jede Kodierung hat eine bestimmte Menge an Zeichensätze zugeordnet Müllerstraße ✦ Es gibt verschiedene Möglichkeiten, einen Zeichensatz zu kodieren ✦ Beispiel: Unicode ist ein Zeichensatz, UTF-8, UTF-16, UTF-32 sind Zeichenkodierungen ✦ Es ist nicht möglich zu wissen, welches Zeichen gemeint ist, ohne die Zeichenkodierung zu kennen! ✦ Angabe der Zeichenkodierung ist essentiell HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 10/15
Unterschied zwischen Zeichensatz und Zeichenkodierung HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 11/15
XML DTD, Schema HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt
XML – Einführung ✦ XML steht für “e. Xtensible Markup Language“ erweiterbare Auszeichnungssprache zur Beschreibung von hierarchisch strukturierten Daten ✦ W 3 C-Standard, offen, kostenlos ✦ ✦ beschreibt die logischen Bestandteile und den strukturellen Aufbau eines Dokuments in einer Baumhierarchie ✦ XML ist eine Metasprache für Auszeichnungssprachen ✦ erweiterbar: Art, Anzahl und Aufbau der Elemente nicht beschränkt HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 13/15
✦ XML bietet eine Methode zum Einführen strukturierter Daten in eine Textdatei ✦ XML ähnelt HTML ein wenig ✦ XML wird von Maschinen gelesen, ist aber für den Menschen verständlich ✦ XML umfasst eine ganze Familie von Technologien ✦ XML ist wortreich ✦ XML ist relativ neu, hat aber bedeutende Wurzeln ✦ XML ist lizenzfrei, plattformübergreifend und [gekürzte Übersetzung aus W 3 C_10 P HTW Berlin - Studiengang Informatik - Ei. MM - 2015 wird Angewandte breit unterstützt 14/15 Jens Reinhardt
XML – Geschichte I ✦ geht zurück auf Standard Generalized Markup Language (SGML) ✦ Standardisierungsaktivitäten seit 1996 ✦ derzeit gültig Version 1. 0 vom Februar 1998 basiert auf Unicode 2. 0 ! ✦ zwingende Unterstützung von UTF-8 für Parser ✦ ✦ W 3 C Empfehlung, 16. August 2006 , XML 1. 1 macht XML unabhängig von einer bestimmten Unicode. Version ✦ wird kaum unterstützt ✦ HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 15/15
XML – Geschichte II ✦ HTML als SGML-Anwendung ✦ Problem: Vermischung von Layout und Struktur ✦ Problem: Beschränkter Satz von Elementen ✦ Problem: wenig Strukturierungsmöglichkeiten ✦ XML zum plattformunabhängigen Austausch ✦ Trennung von Layout und Inhalts-Strukturierung ✦ Vereinfachung von SGML ✦ Menschenlesbarkeit, selbstbeschreibend ✦ Kontextinformationen durch Strukturelemente ✦ einfache Maschinenlesbarkeit – Parser ✦ bessere Verlinkungssprache (X-Link) ✦ generische Formatierungssprache (XSL) HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 16/15
Aufbau eines XML Dokuments (II) ✦ Element ✦ und Inhalt Ein XML-Dokument besteht aus mindestens einem Element (tag) und dem zugehörigen Inhalt <person>Walter Moers</person> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 18/15
Aufbau eines XML Dokuments (III) ✦ Wurzel-Element (root element) ✦ Ein XML-Dokument muss mindestens ein Element (tag) enthalten & kann mehrere Elemente beinhalten <person> Whitespace besteht. Moers</name> aus den Zeichen: <name>Walter Leerzeichen | Carriage Return | Newline | <title>Die Stadt der Träumenden Tabulator Bücher</title> </person> ✦ wird durch Start- und End-Tags beschrieben ✦ besteht aus genau einem Wurzelelement (root element) ✦ Tags bilden die hierarchische Struktur ab ✦ Tags unterscheiden zwischen Groß- und Kleinschreibung „case-sensitive“ ✦ leere Tags (kein Inhalt): <person /> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 19/15
Aufbau eines XML Dokuments (IV) ✦ Wiederholung ✦ untergeordneter Elemente Ein XML-Dokument kann untergeordnete Elemente wiederholt enthalten <person> <name>Walter Moers</name> <title>Die Stadt der Träumenden Bücher</title> <title>Ensel und Krete</title> <title>Rumo und die Wunder im Dunkeln</title> </person> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 20/15
Aufbau eines XML Dokuments (V) ✦ Schachtelung ✦ untergeordneter Elemente Ein XML-Dokument kann ineinander verschaltete untergeordnete Elemente enthalten <person> <name>Walter Moers</name> <books> <title>Die Stadt der Träumenden Bücher</title> <title>Ensel und Krete</title> <title>Rumo und die Wunder im Dunkeln</title> </books> </person> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 21/15
Aufbau eines XML Dokuments (VI) ✦ Attribute von Elementen ✦ Ein XML-Dokument kann Elemente mit Attributen enthalten ✦ Attribute geben genauere Informationen zu einem element ✦ Attribute werden im Start-Tag aufgeführt ✦ Attribute werden in einfachen oder doppelten Anführungszeichen eingeschlossen ✦ Ein Element kann 0. . . n Attribute enthalten ✦ Jedes Attribut darf nur einmal pro Element genannt werden ✦ mehrere Attribute werden durch Whitespace voneinander getrennt <person> <name>Walter Moers</name> <born date="24. 05. 1957" /> </person> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 22/15
Aufbau eines XML Dokuments (VII) <person> <name>Walter Moers</name> <born date="24. 05. 1957" /> </person> vs. <person> <name>Walter Moers</name> <born> <day>24</day> <month>05</month> <year>1957</year> </born> </person> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 23/15
Aufbau eines XML Dokuments (VIII) ✦ Inhalt mit reservierten Zeichen ✦ » < « und » & « nicht erlaubt ✦ » > « erlaubt, aber nicht zu empfehlen ✦ stattdessen: Ersetzen der Zeichen mit bestimmter Bedeutung durch Entities <example> < > & ' " </example> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt < < kleiner als > > größer als & & und ' ' Apostroph " Anführungsstrich e " 25/15
Aufbau eines XML Dokuments (IX) ✦ Zulässige ✦ Namen für Bezeichnet und Attribute Namen für Bezieher und Attribute können relativ frei gewählt werden ✦ Name eines Elements und Attributes darf Buchstaben, Ziffern, Binde- oder Unterstriche oder Punkte enthalten ✦ Ein Doppelpunkt darf nur benutzt werden, in dem er den Elementnamen von seinem Namensraum ( namespace) trennt ✦ Elementnamen, die mit „xml“ (egal ob in Groß- oder Kleinschreibung, oder Kombination aus Groß- und Kleinbuchstaben) anfangen, sind vom XML-Standard reserviert und dürfen nicht verwendet werden ✦ Alle anderen Sonderzeichen wie Leerzeichen, “ “, Fragezeichen “? “, usw. sind nicht zulässig HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 26/15
Aufbau eines XML Dokuments (X) ✦ Deklaration, Verarbeitungsanweisungen und Kommentare ✦ Ein vollständiges XML-Dokument kann - muss aber nicht - folgende weitere Bestandteile enthalten: ✦ XML Deklaration (XML declaration) ✦ Processing Instructions (PI) ✦ Kommentare HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 27/15
Aufbau eines XML Dokuments (XI) ✦ Ein ✦ XML-Dokument beginnt mit Deklaration Anweisung an den XML-Parser, darf nur Text enthalten <? xml version="1. 0" encoding="UTF-8"? > ✦ Ein XML-Dokument kann Kommentare enthalten die Zeichenkette “--“ darf in Kommentaren nicht vorkommen ✦ können im gesamten Dokument, außer in einem Bezeichner (Markup, tag) vorkommen ✦ <!--. . . beliebiger Text. . . --> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 28/15
Aufbau eines XML Dokuments (XII) <? xml version=“ 1. 0“ encoding=“ISO-8859 -1“ standalone=“yes“ Deklaration ? > <!-- This is data about Walter Moers. --> Kommentar <person> <name>Walter Moers</name> <books> <title>Die Stadt der Träumenden Bücher</title> <title>Ensel und Krete</title> <title>Rumo und die Wunder im Dunkeln</title> </books> </person> <? php echo “Current date: …. “ ? > HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt Processing Instruction 29/15
Aufbau eines XML Dokuments (XIII) ✦ Es können Entitäten (Entities) deklariert werden ✦ Definition: literal oder weitere Entity (rekursiv) <!ENTITY name “Entsprechung“> ✦ Aufruf ✦ eines Entities ersetzt Entity durch Literal &name; ✦ vordefinierte Entities ✦ < < > > & & HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt ' ‘ " “ 30/15
Beispiele für fehlerhafte XML-Dokumente I <books> <title>Die Stadt der Träumenden Bücher</Title> <Title>Ensel und Krete</title> </books> <title>Die Stadt der Träumenden Bücher</title> <title>Ensel und Krete</title> </books> ✦ Name im Start- und Endbezeichnet sind nicht gleich (XML ist case-sensitive !!!) HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 31/15
Beispiele für fehlerhafte XML-Dokumente II <person> <name>Walter Moers <title>Die Stadt der Träumenden Bücher</title> <person> </person> <name>Walter Moers</name> <title>Die Stadt der Träumenden Bücher</title> </person> ✦ Wenn sich der Start-Bezeichener im Inhalt eines anderen Elementes , muss sich der Ende-Bezeicher im gleichen Element befinden HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 32/15
Beispiele für fehlerhafte XML-Dokumente II <person> <name> </person> <name /> </person> ✦ Wenn sich der Start-Bezeichener im Inhalt eines anderen Elementes , muss sich der Ende-Bezeicher im gleichen Element befinden HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 33/15
XML – Wohlgeformtheit I ✦ Das Dokument ist wohlgeformt, wenn es alle Regeln einhält ✦ Form ✦ ✦ ✦ wie unter „Aufbau“ beschrieben (1) Es gibt nur ein Wurzelelement (root) (2) Elemente (elements) können ineinander verschachtelt sein (nested) (3) dürfen sich jedoch nicht überlappen (non-overlapping) (4) Elemente müssen paarweise verschachtelt sein (5) jedes geöffnete Element muss auch geschlossen werden (6) XML-Tags Groß- und Kleinschreibung beachten (case sensitive) (7) XML-Attribute in einzelnen oder doppelten Anführungsstrichen (8) Ein Element darf nicht zwei Attribute mit dem selben Namen haben (9) Kommentare (comments) und Verarbeitungsanweisungen (processing instructions, PI) dürfen nicht innerhalb von Elementen auftreten (10) Die Zeichen » < « oder » & « müssen in ihrer Darstellung als Entität » < « bzw. » & « (11) Die Namen von Elementen und Attributen dürfen keine Sonderzeichen enthalten und nicht mit » xml « beginnen HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 34/15
http: //www. w 3 schools. com/xml_validator. asp XML – Wohlgeformtheit II ✦ Sind die folgenden XML-Dokumente wohl geformt oder nicht? Falls nicht, gegen welche Regel(n) für wohlgeformte XML-Dokumente wird verstoßen? Dies ist ein XML Dokument! <text>Dies ist ein XML Dokument!</text/> <text>Dies ist ein XML Dokument!</text> <Text>Dies ist ein XML Dokument!</text> <Über>Walter Moers ist ein Autor</Über> <Über den Schriftsteller>Walter Moers ist ein Autor</Über den Schriftsteller> <xml. Format>Walter Moers</xml. Format> <born date="25. 5. 1957" /> <born date='25. 5. 1957' /> <born date="Große Straße' /> <? xml version="1. 0" encoding="ISO-8859 -1" standalone="yes" ? > <!-- This is data about Walter Moers -- a famous author. --> <person>Walter Moers</person> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 35/15
XML – Beispiel Zeile 1: XML-Deklaration: definiert die XML-Version (1. 0) und die Zeichenkodierung UTF-8 1 <? xml version="1. 0" encoding="UTF-8" ? > 2 <rezept> 3 <name>Russischer Zupfkuchen</name> Zeile 2: <rezept> ist Wurzel ist des Baums (root element): 4 <art>Nachtisch</art> » Das ist ein Rezept « 5 <zutaten personen="10"> 6 <zutat menge="175" einheit="Gramm">Margarine</zutat> 7 <zutat menge="200" einheit="Gramm">Zucker</zutat> 8 <zutat menge="50" einheit="Gramm">Kakaopulver</zutat> 9 <zutat menge="1" einheit="Stück">Ei</zutat> Kinderelemente: <name>, <art>, 10 <zutat menge="1" einheit="Päckchen">Backpulver</zutat> Kinderelement mit Attribut: <zutaten 11 <zutat menge="1" einheit="Päckchen">Backpulver</zutat> personen="10">. . . 12 </zutaten> 13 <anleitung> 14 <schritt>Zunächst aus den oberen Zutaten einen Teig herstellen. 15 <beschreibung> 16 Die Hälfte des Teiges für den Boden verwenden. 17 Dazu die Hälfte vom Teig in eine gefettete Springform geben. Von der anderen Hälfte einen Teil für den Rand benutzen. Den rest zur Seite legen. 18 </beschreibung> 19 </schritt> 20 [. . . ] 21 </rezept> Zeile 21: </rezept> ist das Ende des Dokuments HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 36/15
XML – Namensräume (Namespaces) Problem: Ein und dasselbe Wort hat eine unterschiedliche Bedeutung in verschiedenen Kontexten Leiter <? xml version="1. 0" encoding="UTF-8" ? > <bank> <standort>Rudower Chaussee 23</standort> <name>Berliner Sparkasse</name> <fillialnummer>123</fillialnummer> <BLZ>10050000</BLZ> <Öffnungszeiten>Mo-Fr 9 -12 Uhr</Öffnungszeiten> </bank> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt Bank <? xml version="1. 0" encoding="UTF-8" ? > <bank> <standort>unter der großen Ulme</standort> <material>Holz</material> <farbe>grün</farbe> <wartung>letzter Anstrich: 1. 4. 2009</wartung> </bank> 37/15
XML – Namensräume: Definition ✦ Definieren das Vokabular eines XML-Dokumentes eindeutig ✦ erlaubt das Mischen verschiedener Vokabulare in • Präfixe erlauben das einem XML-Dokument <? xml version="1. 0" encoding="UTF-8" ? > Mischen von <banken xmlns: fin=“http: //meinedomain. de/bankensprache“ xmlns: park=“http: //parkverwaltung. de/parks“ > <? xml version="1. 0" encoding="UTF-8" ? > 1999 entwickelt, ✦ vom W 3 C aktuell Version 3 Namensräumen <fin: bank> <bank xmlns=“http: //parkverwaltung. de/parks“> <bank xmlns=“http: //meinedomain. de/bankensprache“> <fin: standort>Rudower Chaussee 23</fin: standort> <standort>unter der großen Ulme</standort> <standort>Rudower Chaussee 23</standort> ✦ werden durch URIs repräsentiert <fin: name>Berliner Sparkasse</fin: name> <material>Holz</material> <name>Berliner Sparkasse</name> • Definition ✦ kann beliebig gewählt werden • beliebige Zeichenkette <fillialnummer>123</fillialnummer> <BLZ>10050000</BLZ> <Öffnungszeiten>Mo-Fr 9 -12 Uhr</Öffnungszeiten> </bank> <fin: fillialnummer>123</fin: fillialnummer> <farbe>grün</farbe> <fin: BLZ>10050000</fin: BLZ> <wartung>letzter Anstrich: 1. 4. 2009</wartung> <fin: Öffnungszeiten>Mo-Fr 9 -12 Uhr</fin: Öffnungszeiten> </bank> </fin: bank> <park: standort>unter der großen Ulme</park: standort> <park: material>Holz</park: material> <park: farbe>grün</park: farbe> <park: wartung>letzter Anstrich: 1. 4. 2009</park: wartung> </park: bank> </banken> Groß- und (Name)✦gefolgt von Kleinschreibung wird unterschieden Doppelpunkt ✦ URL-Kodierung ✦ zumeist valide Adresse mit DTD oder Schema • reservierter Namensraum ✦ Angabe als Attribut im Element • „xml“ HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 38/15
XML – Validität ✦ Bedingungen ✦ XML muss wohlgeformt sein ✦ XML muss den Einschränkungen einer Dokumentendefinition entsprechen ✦ (Document Type Definition) DTD ✦ XML Schema HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 39/15
Document Type Definition – DTD I ✦ deklariert Dokument bestimmten Typs durch einen Satz von Regeln schränkt Anzahl, Reihenfolge und Art der erlaubten Elemente und Attribute ein ✦ definiert die Struktur von Dokumenten ✦ ✦ Nachteile von DTDs sind selbst kein XML --> eigene Sprache, extra Parser ✦ nicht flexibel genug ✦ können „Inhalt“ von Elementen oder Attributen nicht einschränken ✦ HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 40/15
Document Type Definition – DTD II ✦ Elementtyp-Deklarationen ✦ EMPTY ✦ ANY für keinen Inhalt für beliebigen Inhalt ✦, für Reihenfolgen ✦| für Alternativen (im Sinne „entweder…oder“) ✦ () zum Gruppieren ✦* für beliebig oft ✦+ für mindestens einmal ✦? für keinmal oder genau einmal <!ELEMENT html (head, body)> <!ELEMENT hr EMPTY> <!ELEMENT div (#PCDATA | p | ul | ol | dl | table | pre | hr | h 1|h 2|h 3|h 4|h 5|h 6 | blockquote | address | fieldset)*> <!ELEMENT dl (dt|dd)+> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 41/15
Document Type Definition – DTD III ✦ Attributlisten-Deklarationen ✦ Liste enthält durch Whitespace getrennt: Name, Typ, Vorgabe der Attribute ✦ Typ ✦ Vorgabe ✦ CDATA ✦ ID ✦ #REQUIRED ✦ IDREF und IDREFS ✦ #IMPLIED ✦ NMTOKEN und NMTOKENS ✦ "wert" --> Standardwert ✦ ENTITY und ENTITIES ✦ #FIXED "wert" ✦ NOTATION und NOTATIONS <!ATTLIST zutat menge CDATA #REQUIRED einheit CDATA #IMPLIED > HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 42/15
Document Type Definition – DTD IV ✦ Deklaration ✦ intern ✦ ✦ ✦ vor Wurzelelement <!DOCTYPE banken [. . . ]> extern ✦ <!DOCTYPE banken SYSTEM "datei. dtd" [. . . ]> ✦ <!DOCTYPE banken PUBLIC "Public Identifier" "datei. dtd" [. . . ]> standardisierte DTDs haben einen Public Identifier ✦ kann anstatt des Dateipfades angegeben werden ✦ muss dem Parser bekannt sein "-//W 3 C//DTD XHTML 1. 0 Strict//EN" HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 43/15
Document Type Definition – DTD V ✦ Für jedes Element wird ein Eintrag der folgenden allgemeinen Form verwendet: <!ELEMENT bezeichner ( Inhaltsmodell )> ✦ Einfachster Fall, Element besteht nur aus Inhalt, wie für das element „given_name“ <!ELEMENT given_name ( #PCDATA )> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 44/15
Document Type Definition – DTD VI ✦ Ein Element mit untergeordneten Elementen enthält diese in einer durch Komma getrennten Liste <!ELEMENT bezeichner ( unter-element-1, unter-element-2. . . ) > <!ELEMENT bezeichner ( unter-element-1*, unter-element-2? , unter-element 3+ ) > ✦ Beispiel: das Element „child“ kann beliebig häufig (oder auch gar nicht) als Unterelement für „children“ auftreten: <!ELEMENT children ( child* ) > HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 45/15
Document Type Definition – DTD VII ✦ Ein neuer Dokumenttyp „person“ soll den folgenden Aufbau haben <person> <first_name>Vorname</first_name> <given_name>Nachname</given_name> <born>Geburtsdatum</born> <profession>Beruf</profession> <children> <child_first_name>Name des 1. Kindes</child_first_name> <child_born>Geburtsdatum des 1. Kindes</child_born> </children> </person> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 46/15
Document Type Definition – DTD VIII ✦ zugehöriges mögliches XML-Dokument <? xml version="1. 0"? > <person> ✦ Elementtyp-Deklarationen <first_name>Michael</first_name> <given_name>Mustermann</given_name> ✦ EMPTY für keinen Inhalt <born>5. Oktober 1970</born> ✦ ANY für beliebigen Inhalt <profession>Architekt</profession> ✦ , für Reihenfolgen <children> <child> ✦ | für Alternativen (im Sinne <child_first_name>Sarah</child_first_nam „entweder…oder“) e> ✦ () zum Gruppieren <child_born>26. April 2000</child_born> </child> ✦ * für beliebig oft <child> ✦ + für mindestens einmal <child_first_name>Lucy</child_first_name ✦ ? für keinmal oder genau > einmal <child_born>18. Februar 2002</child_born> </children> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 47/15 </person> Jens Reinhardt
Document Type Definition – DTD IX ✦ Definieren einer DTD <!DOCTYPE person [ <!ELEMENT person ( first_name, given_name, born, profession, childs ) > <!ELEMENT first_name ( #PCDATA ) > <!ELEMENT given_name ( #PCDATA ) > <!ELEMENT profession ( #PCDATA ) > <!ELEMENT born ( #PCDATA ) > <!ELEMENT childs ( child* ) > <!ELEMENT child ( child_first_name, child_born ) > <!ELEMENT child_born ( #PCDATA ) > <!ELEMENT child_first_name ( #PCDATA ) > ]> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 48/15
Document Type Definition – DTD XI ✦ Aufgabe: Erweitern sie die gegebene DTD für mehrere Personen. Ermöglichen Sie, dass eine Person mehrere Berufe (oder keinen) besitzt und mehrere mittlere Namen (oder keinen) besitzt. ✦ Elementtyp-Deklarationen <!DOCTYPE person [ <!ELEMENT person ( first_name, given_name, born, profession, childs) > <!ELEMENT first_name ( #PCDATA ) > <!ELEMENT given_name ( #PCDATA ) > <!ELEMENT profession ( #PCDATA ) > <!ELEMENT born ( #PCDATA ) > <!ELEMENT childs ( child* ) > <!ELEMENT child ( child_first_name, child_born ) > <!ELEMENT child_born ( #PCDATA ) > <!ELEMENT child_first_name ( #PCDATA ) > ]> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt ✦ EMPTY ✦ ANY ✦, für keinen Inhalt für beliebigen Inhalt für Reihenfolgen ✦| für Alternativen (im Sinne „entweder…oder“) ✦ () zum Gruppieren ✦* für beliebig oft ✦+ für mindestens einmal ✦? für keinmal oder genau einmal 49/15
Document Type Definition – DTD XI ✦ Lösung <!DOCTYPE persons [ <!ELEMENT persons (person* ) > <!ELEMENT person ( first_name, middle_name*, given_name, born, professions, children ) > <!ELEMENT first_name ( #PCDATA ) > <!ELEMENT middle_name ( #PCDATA ) > <!ELEMENT given_name ( #PCDATA ) > <!ELEMENT professions ( profession* ) > <!ELEMENT profession ( #PCDATA ) > <!ELEMENT born ( #PCDATA ) > <!ELEMENT children ( child* ) > <!ELEMENT child ( child_first_name, child_middle_name*, child_born ) > <!ELEMENT child_born ( #PCDATA ) > <!ELEMENT child_first_name ( #PCDATA ) > <!ELEMENT child_middle_name ( #PCDATA ) > ]> HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 50/15
XML Schema Beispiel ✦ Empfehlung des W 3 C ✦<xs: simple. Type beschreibt die Struktur eines XML-Dokumentes name="einheiten"> mittels XML base="xs: string"> <xs: restriction <xs: enumeration value="Gramm"/> ✦ kennt Datentypen, Definition eigener Datentypen <xs: enumeration value="ml"/> möglich <xs: enumeration value="Prise"/> <!-- und so weiter … --> ✦ komplexe Beschreibungsmöglichkeiten </xs: restriction> </xs: simple. Type> ausführliche Beschreibung siehe xs: string xs: decimal xs: integer xs: float xs: boolean xs: date xs: time ✦ Weitere Sprachen http: //www. edition-w 3. de/TR/2001/REC-xmlschema-0✦ Document Structure Description, RELAX NG, 20010502/ Schematron HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 51/15
XML-Parser / APIs ✦ DOM ✦ repräsentiert XML als Baumstruktur ✦ ermöglicht wahlfreien Zugriff ✦ erlaubt Neuordnung des Baumes ✦ Nachteile: Dokument muss erst komplett eingelesen und dann im Speicher verwaltet werden --> speicherintensiv ✦ SAX ✦ repräsentiert XML als sequentiellen Datenstrom ✦ springt Callback-Funktionen an bei definierten Aktionen ✦ ✦ Bsp: öffnender Element Tag, Beginn Attribut, schliessender Tag, . . . geeignet für große Datenmengen HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 52/15
Bekannte XML-Anwendungen (Dialekte) ✦ RDF ✦ Resource Description Framework ✦ XHTML ✦ XML-Version von HTML ✦ SVG ✦ Scalable Vector Graphics ✦ VRML ✦ Virtual Reality Modeling Language ✦ XLink, XPath ✦ SOAP ✦ WSDL - Web. Service Description Language ✦ XML Schema (XSD) HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt 53/15
Vielen Dank für die Aufmerksamkeit! HTW Berlin - Studiengang Angewandte Informatik - Ei. MM - 2015 Jens Reinhardt
- Slides: 52