1 / 92

Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML -

Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML -. Klaus Becker 2009. XML. <?xml version="1.0" encoding="ISO-8859-1"?> <Fortbildung> <Titel>Informationsdarstellung mit XML</Titel> <Inhalte> <Inhalt>Information und ihre Darstellung</Inhalt>

amelia
Download Presentation

Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML -

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML - Klaus Becker 2009

  2. XML <?xml version="1.0" encoding="ISO-8859-1"?> <Fortbildung> <Titel>Informationsdarstellung mit XML</Titel> <Inhalte> <Inhalt>Information und ihre Darstellung</Inhalt> <Inhalt>XML-Dokumente</Inhalt> <Inhalt>XML-Dokumenttypen</Inhalt> <Inhalt>Festlegung von Sprachen</Inhalt> <Inhalt>XML-basierte Sprachen</Inhalt> <Inhalt>XML-Dokumente und das Document Object Model</Inhalt> <Inhalt>Verarbeitung von Sprachen</Inhalt> <Inhalt>XML im Informatikunterricht</Inhalt> </Inhalte> </Fortbildung>

  3. Teil 1 Information und ihre Darstellung

  4. Einstieg - Telefon Bedienungsanleitung: benutzt die Alltagssprache und eine bildliche Darstellung von Information Entwurfsmodellierung: benutzt eine Diagrammsprache (Zustandsdiagramm) zur Darstellung von Information Zustandsdiagramm

  5. Einstieg - Telefon Speicherformat: benutzt eine spezielle "Daten-Sprache" zur Darstellung von Information Quelltext [Main] Anzahl der Zustände=4 Existiert Start=1 Anzahl Alphabet=4 Zeichen1=Zifferblock Zeichen2=Abheben Zeichen3=Abheben lang Zeichen4=Auflegen [Config] ... [Color] ... [Zustand1] Name=Ruhezustand Nummer=1 x-Koord=77 y-Koord=249 Typ=0 Typname=Start Kommentar1= AkENTRY1= AkDO1= ... Werkzeug Charon z. Erzeugung von Zustandsd.

  6. Einstieg - Telefon <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> <state id="1" name="q1"> <x>230.0</x> <y>-15.0</y> <label>Rufnummer eingeben</label> </state> <state id="2" name="q2"> <x>389.0</x> <y>100.0</y> <label>Einwählen</label> </state> ... Werkzeug JFlap Quelltext

  7. Fachkonzept - Datenformat Ein Datenformat ist eine Daten-Sprache, die zur computergerechten Darstellung von Information benutzt wird. [Main] Anzahl der Zustände=4 Existiert Start=1 Anzahl Alphabet=4 Zeichen1=Zifferblock Zeichen2=Abheben Zeichen3=Abheben lang Zeichen4=Auflegen [Config] ... [Color] ... [Zustand1] Name=Ruhezustand Nummer=1 x-Koord=77 y-Koord=249 Typ=0 Typname=Start Kommentar1= AkENTRY1= AkDO1= ... Datenformat

  8. Fachkonzept - Datenformat Viele Software-Entwickler erfinden eine eigene - also proprietäre - Sprache, in der die zu verwaltenden Daten beschrieben und gespeichert werden. Die Entwicklung geht heute eher dahin, Standards bei der Konzeption von Datenformaten zu nutzen. Standards erleichtern den Austausch von Daten. Auch bei der Entwicklung selbst ergeben sich oft viele Vorteile: Für Standards betreffende Aufgaben gibt es oft schon fertige Lösungen, die man direkt übernehmen kann. [Main] Anzahl der Zustände=4 Existiert Start=1 Anzahl Alphabet=4 Zeichen1=Zifferblock Zeichen2=Abheben Zeichen3=Abheben lang Zeichen4=Auflegen [Config] ... [Color] ... [Zustand1] Name=Ruhezustand Nummer=1 x-Koord=77 y-Koord=249 Typ=0 Typname=Start Kommentar1= AkENTRY1= AkDO1= ... <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... proprietäres Datenformat Standard-basiertes Datenformat

  9. Fachkonzept - XML als Standard XML steht für Extensible Markup Language und ist eine Sprache zur Festlegung von Auszeichnungssprachen (Das sind Sprachen um Information strukturiert in Form von Daten und einer Auszeichnung von Daten darzustellen. Auszeichnungen geben dabei Hinweise, wie die Daten zu verarbeiten sind.). XML ist also eine Meta-Sprache, mit deren Hilfe neue Sprachen entwickelt werden können. XML wird inzwischen so viel genutzt, dass es als Standard bei der Entwicklung neuer Datenformate angesehen werden kann. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... Daten Auszeichnung mit Tags

  10. Übungen (siehe www.inf-schule.de) Bearbeiten Sie eine Aufgabe des Abschnitt "Darstellung von Information - Übungen".

  11. Teil 2 XML-Dokumente

  12. Einstieg - The Beatles The Beatles were a rock and pop band from Liverpool, England that formed in 1960. During their career, the group primarily consisted of John Lennon (rhythm guitar, vocals), Paul McCartney (bass guitar, vocals), George Harrison (lead guitar, vocals) and Ringo Starr (drums, vocals). Although their initial musical style was rooted in 1950s rock and roll and skiffle, the group worked with different musical genres, ranging from Tin Pan Alley to psychedelic rock. Their clothes, style and statements made them trend-setters, while their growing social awareness saw their influence extend into the social and cultural revolutions of the 1960s. After the band broke up in 1970, all four members embarked upon successful solo careers. Quelle: http://en.wikipedia.org/wiki/The_Beatles

  13. Einstieg - The Beatles <?xml version="1.0" encoding="iso-8859-1"?> <band> <name>Beatles</name> <gründung>1960</gründung> <auflösung>1970</auflösung> <!--Liste der Mitglieder.--> <mitglieder> <mitglied> <name>Lennon</name> <vorname>John</vorname> <instrumente> <instrument>Gesang</instrument> <instrument>Rhytmusgitarre</instrument> <instrument>Tasteninstrumente</instrument> <instrument>Mundharmonika</instrument> </instrumente> </mitglied> <mitglied> <name>McCartney</name> <vorname>Paul</vorname> <sir/> ... </mitglied> ... </mitglieder> </band> Analysieren Sie das folgende XML-Dokument zur Beschreibung einer Band - hier der Beatles. Welche Information wird hier dargestellt? Wie ist das XML-Dokument zur Darstellung der Information aufgebaut?

  14. Exkurs - XML-Dokumente <?xml version="1.0" encoding="iso-8859-1"?> <band> <name>Beatles</name> <gründung>1960</gründung> <auflösung>1970</auflösung> <!--Liste der Mitglieder.--> <mitglieder> <mitglied> <name>Lennon</name> <vorname>John</vorname> <instrumente> <instrument>Gesang</instrument> <instrument>Rhytmusgitarre</instrument> <instrument>Tasteninstrumente</instrument> <instrument>Mundharmonika</instrument> </instrumente> </mitglied> <mitglied> <name>McCartney</name> <vorname>Paul</vorname> <sir/> ... </mitglied> ... </mitglieder> </band> XML-Dokumente werden benutzt, um Information strukturiert darzustellen. The Beatles were a rock and pop band from Liverpool, England that formed in 1960. During their career, the group primarily consisted of John Lennon (rhythm guitar, vocals), Paul McCartney (bass guitar, vocals), George Harrison (lead guitar, vocals) and Ringo Starr (drums, vocals). Although their initial musical style was rooted in 1950s rock and roll and skiffle, the group worked with different musical genres, ranging from Tin Pan Alley to psychedelic rock. Their clothes, style and statements made them trend-setters, while their growing social awareness saw their influence extend into the social and cultural revolutions of the 1960s. After the band broke up in 1970, all four members embarked upon successful solo careers. Quelle: http://en.wikipedia.org/wiki/The_Beatles

  15. Exkurs - XML-Dokumente Die Strukturierung erfolgt in Form eines Baumes. <?xml version="1.0" encoding="iso-8859-1"?> <band> <name>Beatles</name> <gründung>1960</gründung> <auflösung>1970</auflösung> <!--Liste der Mitglieder.--> <mitglieder> <mitglied> <name>Lennon</name> <vorname>John</vorname> <instrumente> <instrument>Gesang</instrument> <instrument>Rhytmusgitarre</instrument> <instrument>Tasteninstrumente</instrument> <instrument>Mundharmonika</instrument> </instrumente> </mitglied> <mitglied> <name>McCartney</name> <vorname>Paul</vorname> <sir/> ... </mitglied> ... </mitglieder> </band> Darstellung im Editor Anzeige mit einem Browser

  16. Exkurs - XML-Dokumente • Grundbausteine eines XML-Dokuments sind die XML-Elemente. • Ein (XML-) Element wird mit Hilfe von Tags (Anfangs- und Endtag) markiert. • Ein Element kann selbst wieder Elemente enthalten (Container) oder nur noch Zeichen (eigentliche Daten) oder beides (gemischter Inhalt) oder auch gar nichts (leeres Element). • Das erste Element eines XML-Dokuments ist das Wurzelelement, das alle anderen Elemente in sich einschließt. Wurzelelement Element als Container Element mit Zeicheninhalt leeres Element

  17. Exkurs - XML-Dokumente • Mit Hilfe von Tags werden die verschiedenen Elemente begrenzt. Verschiedene Tags markieren dabei unterschiedliche Elementtypen. • Tags werden (wie bei HTML) mit spitzen Klammern gebildet. Die Tag-Namen sind (fast) frei wählbar. • Anfangs- und Endtag müssen immer exakt zueinander passen. Dabei wird auf Groß- und Kleinschreibung geachtet. • Tags müssen korrekte geschachtelt werden. • Bei einem leeren Element wird i. d. Regel eine verkürzte Tag-Schreibweise benutzt. Anfangstag Endtag <sir></sir>

  18. Exkurs - XML-Dokumente • Elemente können mit Hilfe von Attributen näher beschrieben werden. Attribute können dabei zusätzliche Informationen über den Inhalt eines Elements liefern, ohne selbst Teil des Inhalts zu sein. Jedem Attribut muss ein bestimmter Wert zugewiesen werden, der in Anführungszeichen geschrieben wird. Attribut Attributwert

  19. Exkurs - XML-Dokumente • Ein XML-Dokument beginnt in der Regel mit dem Prolog <?xml ... ?>. Der Prolog kennzeichnet das Dokument als XML-Dokument. <?xml version="1.0" encoding="iso-8859-1"?> <band> <name>Beatles</name> <gründung>1960</gründung> <auflösung>1970</auflösung> <!--Liste der Mitglieder.--> <mitglieder> <mitglied> <name>Lennon</name> <vorname>John</vorname> <instrumente> <instrument>Gesang</instrument> <instrument>Rhytmusgitarre</instrument> <instrument>Tasteninstrumente</instrument> <instrument>Mundharmonika</instrument> </instrumente> </mitglied> <mitglied> <name>McCartney</name> <vorname>Paul</vorname> <sir/> ... </mitglied> ... </mitglieder> </band> • Im Prolog kann der Zeichensatz festgelegt werden, der zur Kodierung benutzt wird. Fehlt die Angabe des Zeichensatzes, so wird utf-8 als Vorgabe benutzt. Wenn deutsche Umlaute korrekt dargestellt werden sollen, sollte man den Zeichensatz iso-8859-1 verwenden. Kommentar • Kommentare erleichtern das Verständnis und werden vom Browser mit angezeigt.

  20. Übungen (siehe www.inf-schule.de) Bearbeiten Sie Aufgabe 1 und eine der Aufgaben 2, 3, 4 des Abschnitt "XML-Dokumente - Übungen".

  21. Teil 3 XML-Dokumenttypen

  22. Einstieg - Fehler im XML-Dokument <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> <state id="1" name="q1"> <x>230.0</x> <y>-15.0</y> <label>Rufnummer eingeben</label> <state> <state id="2" name="q2"> <x>389.0</x> <y>100.0</y> <label>Einwählen</label> </state> <state id="3" name="q3"> <x>235.0</x> <y>227.0</y> <label>Wählen</label> </state> <!--The list of transitions.--> ... </automaton> </structure> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... <!--The list of transitions.--> <transition> <von>2</von> <nach>0</nach> <read>Auflegen</read> </transition> <transition> <from>3</from> <to>0</to> <read>Auflegen</read> </transition> <transition> <from>0</from> ... </transition> ... </automaton> </structure>

  23. Exkurs - wohlgeformte XML-Dokumente Ein XML-Dokument, das alle syntaktischen Bedingungen von XML erfüllt, heißt wohlgeformt. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> <state id="1" name="q1"> <x>230.0</x> <y>-15.0</y> <label>Rufnummer eingeben</label> <state> <state id="2" name="q2"> <x>389.0</x> <y>100.0</y> <label>Einwählen</label> </state> <state id="3" name="q3"> ... <!--The list of transitions.--> ... </automaton> </structure> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... <!--The list of transitions.--> <transition> <von>2</von> <nach>0</nach> <read>Auflegen</read> </transition> <transition> <from>3</from> <to>0</to> <read>Auflegen</read> </transition> <transition> ... </automaton> </structure> nicht wohlgeformt wohlgeformt Anfangstag Endtag?

  24. Exkurs - gültige XML-Dokumente JFlap kann das XML-Dokument nicht verarbeiten, da es nicht die erforderliche Struktur hat. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... <!--The list of transitions.--> <transition> <von>2</von> <nach>0</nach> <read>Auflegen</read> </transition> <transition> <from>3</from> <to>0</to> <read>Auflegen</read> </transition> <transition> ... </automaton> </structure> wohlgeformt keine gültige Tag-Struktur

  25. Exkurs - gültige XML-Dokumente Eine Dokumenttypdefinition (kurz DTD) legt einen Dokumenttyp präzise fest. <!ELEMENT structure (type, automaton)> <!ELEMENT automaton (state*, transition*)> <!ELEMENT type (#PCDATA)> <!ELEMENT state (x, y, label?, initial?)> <!ATTLIST state id CDATA #REQUIRED name CDATA #REQUIRED > <!ELEMENT transition (from, to, read)> <!ELEMENT x (#PCDATA)> <!ELEMENT y (#PCDATA)> <!ELEMENT label (#PCDATA)> <!ELEMENT initial EMPTY> <!ELEMENT from (#PCDATA)> <!ELEMENT to (#PCDATA)> <!ELEMENT read (#PCDATA)> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE structure SYSTEM "automat.dtd"> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... <!--The list of transitions.--> <transition> <von>2</von> <nach>0</nach> <read>Auflegen</read> </transition> <transition> <from>3</from> <to>0</to> <read>Auflegen</read> </transition> ... </automaton> </structure> wohlgeformt keine gültige Tag-Struktur DTD in automat.dtd

  26. Exkurs - gültige XML-Dokumente Ein XML-Dokument, das alle Festlegungen einer DTD erfüllt, heißt gültig bzw. valide bzgl. dieser DTD. <!ELEMENT structure (type, automaton)> <!ELEMENT automaton (state*, transition*)> <!ELEMENT type (#PCDATA)> <!ELEMENT state (x, y, label?, initial?)> <!ATTLIST state id CDATA #REQUIRED name CDATA #REQUIRED > <!ELEMENT transition (from, to, read)> <!ELEMENT x (#PCDATA)> <!ELEMENT y (#PCDATA)> <!ELEMENT label (#PCDATA)> <!ELEMENT initial EMPTY> <!ELEMENT from (#PCDATA)> <!ELEMENT to (#PCDATA)> <!ELEMENT read (#PCDATA)> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE structure SYSTEM "automat.dtd"> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... <!--The list of transitions.--> <transition> <from>2</from> <to>0</to> <read>Auflegen</read> </transition> ... </automaton> </structure> gültig / valide DTD in automat.dtd

  27. Exkurs - gültige XML-Dokumente Man kann die Gültigkeit eines XML-Dokuments mit Hilfe spezieller Validierer überprüfen lassen. Ein XML-Validierer / XML-Parser ist ein Programm, das überprüft, ob das XML-Dokument die von der angegebenen DTD geforderte Struktur hat.

  28. Exkurs - Dokumenttypdefinitionen Eine Dokumenttypdefinition beschreibt den Aufbau eines XML-Dokuments aus Elementen sowie die Attributstruktur der Elemente. <!ELEMENT structure (type, automaton)> <!ELEMENT type (#PCDATA)> <!ELEMENT automaton (state*, transition*)> <!ELEMENT state (x, y, label?, initial?)> <!ATTLIST state id CDATA #REQUIRED name CDATA #REQUIRED > <!ELEMENT transition (from, to, read)> <!ELEMENT x (#PCDATA)> <!ELEMENT y (#PCDATA)> <!ELEMENT label (#PCDATA)> <!ELEMENT initial EMPTY> <!ELEMENT from (#PCDATA)> <!ELEMENT to (#PCDATA)> <!ELEMENT read (#PCDATA)> Das Wurzelelement hat den Namen "structure". Ein Element vom Typ "structure" besteht aus einem Element vom Typ "type" gefolgt von einem Element vom Typ "automaton". Ein Element vom Typ "type" besteht aus Zeichen (parsed character data). Ein Element vom Typ "automaton" besteht aus beliebig vielen Elementen vom Typ "state" gefolgt von beliebig vielen Elementen vom Typ "transition". Ein Element vom Typ "state" besteht aus einem Element vom Typ "x" gefolgt von einem Element vom Typ "y" gefolgt von optionalen Elementen vom Typ "label" und "initial". Ein Element vom Typ "state" hat die Attribute "id" und "name", die beide nicht weggelassen werden können und deren Werte Zeichenketten sind. Ein Element vom Typ "transition" besteht aus einem Element vom Typ "from" gefolgt von einem Element vom Typ "to" gefolgt von einem Elementen vom Typ "read". ... Ein Element vom Typ "initial" ist ein leeres Element. ... DTD in automat.dtd

  29. Exkurs - Dokumenttypdefinitionen Operator Bedeutung () Bildung von Elementgruppen , Trennzeichen innerhalb einer Sequenz von Elementen | Trennzeichen zwischen sich ausschließenden Alternativen * Element(gruppe) kann beliebig oft (auch gar nicht) vorkommen + Element(gruppe) muss mindestens einmal, kann mehrfach vorkommen ? Element(gruppe) kann einmal oder kein mal vorkommen <!ELEMENT structure (type, automaton)> <!ELEMENT type (#PCDATA)> <!ELEMENT automaton (state*, transition*)> <!ELEMENT state (x, y, label?, initial?)> <!ATTLIST state id CDATA #REQUIRED name CDATA #REQUIRED > <!ELEMENT transition (from, to, read)> <!ELEMENT x (#PCDATA)> <!ELEMENT y (#PCDATA)> <!ELEMENT label (#PCDATA)> <!ELEMENT initial EMPTY> <!ELEMENT from (#PCDATA)> <!ELEMENT to (#PCDATA)> <!ELEMENT read (#PCDATA)> <!ELEMENT Name Inhaltsmodell> Elementtyp-Deklaration

  30. Exkurs - Dokumenttypdefinitionen Inhaltsmodell Beschreibung Elementinhalt Das Element enthält ausschließlich Unterelemente. <!ELEMENT transition (from, to, read)> <transiotion><from>...</from><to>...</to><read>...</read></transition> #PCDATA Das Element enthält nur Zeichendaten. <!ELEMENT type (#PCDATA)> <type>fa</type> gemischter Inhalt Das Element kann Zeichendaten und Unterelemente enthalten <!ELEMENT anrede (#PCDATA?, vormame, name)> <anrede>Frau<vorname>Christiane</vorname><name>Meier</name></anrede> EMPTY Das Element hat keinen Inhalt. <!ELEMENT initial EMPTY> <initial/> ANY Das Element kann beliebige Inhalte haben.

  31. Exkurs - Dokumenttypdefinitionen <!ATTLIST Elementname Attributname Attributtyp Vorgabewert Attributname Attributtyp Vorgabewert Attributname Attributtyp Vorgabewert ... > <!ATTLIST state id CDATA #REQUIRED name CDATA #REQUIRED > <!ATTLIST lehrer geschlecht CDATA #REQUIRED amtsbez CDATA #IMPLIED > Attributlisten-Deklaration CDATA: nur einfache Zeichenketten erlaubt, keine Tags ... #REQUIRED: Attributwert muss in jeder Elementinstanz vorkommen #IMPLIED: Attributwert kann optional in einer Elementinstanz vorkommen ...

  32. Einbindung einer DTD • Eine Dokumenttypdefinition kann direkt in das XML-Dokument nach dem XML-Prolog eingebunden werden (interne DTD). • Eine Dokumenttypdefinition kann auch über eine Referenz auf eine Datei mit dem XML-Dokument verbunden werden (externe DTD). • Mit dem Schlüsselwort PUBLIC wird auf eine veröffentlichte DTD verwiesen. • Als Name der DTD wird der Name d. Wurzelelement benutzt. <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE structure [ ...]> <structure> ... </structure> interne DTD <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE structure SYSTEM "automat.dtd"> <structure> ... </structure> externe DTD <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> ... </html> externe DTD <!DOCTYPE Name [...]>

  33. Übungen (siehe www.inf-schule.de) Bearbeiten Sie Aufgabe 1 und eine der Aufgaben 2, 3, 4 des Abschnitt "XML-Dokumenttypen - Übungen".

  34. Miniprojekt: MyXHTML Ziel ist es, eine DTD für eine vereinfachte Version von XHTML - kurz MyXHTML - selbst zu entwickeln. Das folgende XHTML-Dokument soll dabei als gültig bzgl. dieser DTD validiert werden. Da es sich hier um eine komplexere Aufgabe handelt, sollte man schrittweise vorgehen. <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html SYSTEM "myxhtml.dtd"> <html> <head> <title>Steckbrief von Bailey</title> </head> <body> <h1>Steckbrief</h1> <p><img src="bailey1.jpg" alt="Foto von Bailey"/></p> <p>Ich heiße <em>Bailey</em>. Ich lebe in der Nähe von Kaiserslautern.</p> <p>Ich interessiere mich für Agility-Sport. Meine Lieblingsdisziplinen sind:</p> <ul> <li>Sprung durch einen Reifen</li> <li>Lauf über eine Wippe</li> <li>Slalomlauf zwischen Stangen</li> </ul> <p> Ich gehe jedes Wochenende zur <a href="www.welpenschule-kl.de/index.html">Welpenschule</a> . </p> </body> </html>

  35. Miniprojekt: MyXHTML Schritt 1: Zuerst soll nur die Grundstruktur eines XHTML-Dokuments betrachtet werden. <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html SYSTEM "myxhtml.dtd"> <html> <head> <title>Steckbrief von Bailey</title> </head> <body> <h1>Steckbrief</h1> </body> </html> <!ELEMENT html (head, body)> <!ELEMENT head (title)> <!ELEMENT title (#PCDATA)> <!ELEMENT body (h1)> <!ELEMENT h1 (#PCDATA)*>

  36. Miniprojekt: MyXHTML Schritt 2: Ein XHTML-Dokument kann mehrere Überschriften 1. Ordnung enthalten. Innerhalb einer Überschrift können bestimmte Zeichenketten auch hervorgehoben werden. <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html SYSTEM "myxhtml.dtd"> <html> <head> <title>Steckbrief von Bailey</title> </head> <body> <h1>Steckbrief</h1> </body> </html> <!ELEMENT html (head, body)> <!ELEMENT head (title)> <!ELEMENT title (#PCDATA)> <!ELEMENT body (h1)*> <!ELEMENT h1 (#PCDATA | em)*> <!ELEMENT em (#PCDATA)> Führen Sie die gezeigten Schritte durch. Wenn alles soweit geklappt hat, dann erweitern Sie Schritt für Schritt das XML-Dokument und die zugehörige DTD.

  37. Ausblick: XML-Schema Schach-Spielzustand - Version 1: Strukturbeschreibung mit einer DTD <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE Schach-Spielzustand SYSTEM "schach1.dtd"> <Schach-Spielzustand> <schwarz> <Bauer>b7</Bauer> <Bauer>e7</Bauer> <Bauer>d6</Bauer> <Bauer>b5</Bauer> <Bauer>f4</Bauer> <Springer>c6</Springer> <Läufer>e5</Läufer> <Dame>c4</Dame> <König>d7</König> </schwarz> <weiss> <Bauer>h5</Bauer> <Bauer>f2</Bauer> <Bauer>g2</Bauer> <Läufer>f5</Läufer> <Turm>f1</Turm> <Dame>f7</Dame> <König>g1</König> <amZug/> </weiss> </Schach-Spielzustand> <!ELEMENT Schach-Spielzustand (schwarz, weiss)> <!ELEMENT schwarz (Bauer*, Turm*, Springer*, Läufer*, Dame*, König, amZug?)> <!ELEMENT weiss (Bauer*, Turm*, Springer*, Läufer*, Dame*, König, amZug?)> <!ELEMENT Bauer (#PCDATA)> <!ELEMENT Turm (#PCDATA)> <!ELEMENT Springer (#PCDATA)> <!ELEMENT Läufer (#PCDATA)> <!ELEMENT Dame (#PCDATA)> <!ELEMENT König (#PCDATA)> <!ELEMENT amZug EMPTY>

  38. Ausblick: XML-Schema Nachteile von DTD: zu unflexibel Strukturbeschreibung mit einer DTD <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE Schach-Spielzustand SYSTEM "schach1.dtd"> <Schach-Spielzustand> <schwarz> <Bauer>b7</Bauer> <Bauer>e7</Bauer> <Bauer>d6</Bauer> <Bauer>b5</Bauer> <Bauer>f4</Bauer> <Springer>c6</Springer> <Läufer>e5</Läufer> <Dame>c4</Dame> <König>d7</König> </schwarz> <weiss> <Bauer>h5</Bauer> <Bauer>f2</Bauer> <Bauer>g2</Bauer> <Läufer>f5</Läufer> <Turm>f1</Turm> <Dame>f7</Dame> <König>g1</König> <amZug/> </weiss> </Schach-Spielzustand> nur bestimmte Feldbezeichner erlaubt mögliche Anzahl der Bauern: 0..8 <!ELEMENT Schach-Spielzustand (schwarz, weiss)> <!ELEMENT schwarz (Bauer*, Turm*, Springer*, Läufer*, Dame*, König, amZug?)> <!ELEMENT weiss (Bauer*, Turm*, Springer*, Läufer*, Dame*, König, amZug?)> <!ELEMENT Bauer (#PCDATA)> <!ELEMENT Turm (#PCDATA)> <!ELEMENT Springer (#PCDATA)> <!ELEMENT Läufer (#PCDATA)> <!ELEMENT Dame (#PCDATA)> <!ELEMENT König (#PCDATA)> <!ELEMENT amZug EMPTY>

  39. Ausblick: XML-Schema Schach-Spielzustand - Version 2: Strukturbeschreibung mit einem XML-Schema <?xml version="1.0" encoding="iso-8859-1"?> <Schach-Spielzustand xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schach.xsd"> <schwarz> <Bauer>b7</Bauer> <Bauer>e7</Bauer> <Bauer>d6</Bauer> <Bauer>b5</Bauer> <Bauer>f4</Bauer> <Springer>c6</Springer> <Läufer>e5</Läufer> <Dame>c4</Dame> <König>d7</König> </schwarz> <weiss> <Bauer>h5</Bauer> <Bauer>f2</Bauer> <Bauer>g2</Bauer> <Turm>f1</Turm> <Läufer>f5</Läufer> <Dame>f7</Dame> <König>g1</König> <amZug/> </weiss> </Schach-Spielzustand> xsi: XML-schema-instance

  40. Ausblick: XML-Schema Schach-Spielzustand - Version 2: Schema-Definition mit e. XML-basierten Sprache <?xml version="1.0" encoding="iso-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="Schach-Spielzustand"> <xs:annotation> <xs:documentation>Spielbrett während eines Schachspiels</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="schwarz" minOccurs="1" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="Bauer"minOccurs="0" maxOccurs="8"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-h][1-8]"></xs:pattern> </xs:restriction> </xs:simpleType> </xs:element> ... </xs:sequence> </xs:complexType> </xs:element> <xs:element name="weiss" minOccurs="1" maxOccurs="1">...</xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

  41. Ausblick: XML-Schema Validierung: z. B. mit http://www.xmlvalidation.com/

  42. Ausblick: XML-Schema "XML Schema ist eine Empfehlung des W3C zum Definieren von XML-Dokumentstrukturen. Anders als bei den klassischen XML-DTDs wird die Struktur in Form eines XML-Dokuments beschrieben. Darüber hinaus wird eine große Anzahl von Datentypen unterstützt. XML Schema ist eine komplexe Schemasprache zur Beschreibung eines XML-Typsystems. Dieses XML-Typsystem umfasst die Spezifikation neuer XML-Elemente, deren Attribute, sowie deren Kindelemente. Im Gegensatz zu DTDs kann bei Verwendung von XML Schema zwischen dem Namen des XML-Typs und dem in der Instanz verwendeten XML-Tagnamen unterschieden werden. Vermutlich werden DTDs irgendwann vollständig von XML-Schemata abgelöst. Allerdings sind XML-Schemata durch ihre erweiterten Möglichkeiten wesentlich komplexer und nicht so einfach ohne Hilfsmittel auszuwerten. ... Ein konkretes XML-Schema wird auch als eine XSD (XML-Schema-Definition) bezeichnet und hat üblicherweise die Dateiendung ".xsd"." Quelle: http://de.wikipedia.org/wiki/XML_Schema

  43. Teil 4 Festlegung von Sprachen

  44. Einstieg - Probleme mit der Bedeutung <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE kr [ <!ELEMENT kr (mi, ra)> <!ELEMENT mi (x, y)> <!ELEMENT x (#PCDATA)> <!ELEMENT y (#PCDATA)> <!ELEMENT ra (#PCDATA)> ]> <kr> <mi> <x>267</x> <y>214</y> </mi> <ra>44</ra> </kr> Was beschreiben XML-Dokumente, die gültig bzgl. der DTD kr sind? <!ELEMENT hundeschule (windhund*, dackel*, bernhardiner*)> <!ELEMENT windhund (#PCDATA)> <!ELEMENT dackel (#PCDATA)> <!ELEMENT bernhardiner (#PCDATA)> Was beschreiben XML-Dokumente, die gültig bzgl. der DTD hundeschule sind?

  45. Einstieg - Probleme mit der Bedeutung <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html SYSTEM "myxhtml.dtd"> <html> <head> <title>Steckbrief von Bailey</title> </head> <body> <h1>Steckbrief</h1> <p><img src="bailey1.jpg" alt="Foto von Bailey"/></p> <p>Ich heiße <em>Bailey</em>. Ich ...</p> ... </body> </html> Was beschreiben XML-Dokumente, die gültig bzgl. der DTD html in "myxhtml.dtd" sind? <!ELEMENT html (head, body)> <!ELEMENT head (title)> <!ELEMENT title (#PCDATA)> <!ELEMENT body (h1 | p | ul)+> <!ELEMENT h1 (#PCDATA | a | em)*> <!ELEMENT ul (li)*> <!ELEMENT p (#PCDATA | img | a | em)*> <!ELEMENT img EMPTY> <!ATTLIST img src CDATA #REQUIRED alt CDATA #REQUIRED> <!ELEMENT a (#PCDATA)> <!ATTLIST a href CDATA #REQUIRED > <!ELEMENT li (#PCDATA | img | a | em | ul)*> <!ELEMENT em (#PCDATA)>

  46. Fachkonzept - Sprache Die Lexik einer Sprache beschreibt den Wortschatz einer Sprache, d.h. die Gesamtheit der Wörter der Sprache, die als Grundbausteine zur Verfügung stehen. Die Syntax einer Sprache beschreibt den Satzbau einer Sprache, d.h. wie aus Wörtern Sätze gebildet werden können. Üblicherweise wird sie durch eine Grammatik festgelegt. Die Semantik einer Sprache beschreibt die Beziehung zwischen Sprachelementen und ihrer Bedeutung. Pia fährt Rad. Paul hört Musik. Pia fährt Rad Paul hört Musik Pia Musik Paul. hört Paul fährt. Pia fährt Musik. Rad hört Paul.

  47. Fachkonzept - Sprache Lexik <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE kr [ <!ELEMENT kr (mi, ra)> <!ELEMENT mi (x, y)> <!ELEMENT x (#PCDATA)> <!ELEMENT y (#PCDATA)> <!ELEMENT ra (#PCDATA)> ]> <kr> <mi> <x>267</x> <y>214</y> </mi> <ra>44</ra> </kr> XML-Elemente: <kr>...</kr>, <mi>...</mi>, ... gültige XML-Dokumente bzgl. DTD, z.B.: <?xml version="1.0" encoding="iso-8859-1"?> <kr> <mi> <x>267</x> <y>214</y> </mi> <ra>44</ra> </kr> Syntax Semantik? XML erlaubt es, neue Sprachen für bestimmte Problembereiche zu entwickeln. Eine XML-Dokumenttypdefinition legt die Lexik und Syntax einer Sprache fest. Die Sprache zu eine Dokumenttypdefinition besteht aus allen XML-Dokumenten, die gültig bzgl. der Dokumenttypdefinition sind.

  48. Fachkonzept - Sprache <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html SYSTEM "myxhtml.dtd"> <html> <head> <title>Steckbrief von Bailey</title> </head> <body> <h1>Steckbrief</h1> <p><img src="bailey1.jpg" alt="Foto von Bailey"/></p> <p>Ich heiße <em>Bailey</em>. Ich ...</p> ... </body> </html> Die Elemente der Sprache MyXHTML heißen zwar genau so wie die der Sprache XHTML, die Bedeutung überträgt sich damit aber nicht automatisch. Für den Browser handelt es sich also nicht um ein interpretierbares XHTML-Dokument (das als Webseite dargestellt wird), sondern um ein XML-Dokument ohne spezielle Bedeutung. Eine XML-Dokumenttypdefinition legt also nicht die Semantik der Sprache fest. Diese muss zusätzlich festgelegt werden, z.B. durch ein Anwendungsprogramm.

  49. Teil 5 XML-basierte Sprachen

  50. Einstieg - SVG Pixelgrafik Vektorgrafik P3 130 160 255 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 ... <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > <svg xmlns="http://www.w3.org/2000/svg" width="130" height="160"> <rect x="0" y="0" width="130" height="160" fill="yellow"></rect> <polygon points="100 0 0 60 30 90 20 110 60 100 70 130 60 140 110 160 130 120 110 70 90 80 90 70 110 50" fill="orange"> </polygon> <circle cx="80" cy="50" r="5" fill="red"></circle> <circle cx="35" cy="100" r="5" fill="red"></circle> <circle cx="80" cy="110" r="5" fill="red"></circle> <circle cx="105" cy="80" r="5" fill="red"></circle> <text x="2" y="10" font-size="10px" fill="blue">Informatikstudium in RLP</text> <text x="2" y="158" font-size="10px" fill="blue">KL - KO - MZ - TR</text> </svg> PPM SVG

More Related