Informationsdarstellung mit XML

  • Upload
    felcia

  • View
    24

  • Download
    1

Embed Size (px)

DESCRIPTION

Informationsdarstellung mit XML. Klaus Becker 2008. Ziele und Inhalte. Informationsdarstellung mit XML XML - ein Thema für den Informatikunterricht Einblick in XML - PowerPoint PPT Presentation

Citation preview

  • Informationsdarstellung mit XMLKlaus Becker 2008

  • Ziele und Inhalte

    Informationsdarstellung mit XML XML - ein Thema fr den Informatikunterricht Einblick in XML Schach dem Knig Datenformate - Ein Blick hinter die Kulissen Grundlagen von XML Dokumenttypen und ihre Validierung XML-Vokabulare Exkurs: Namensrume, Formatierung, ... Verarbeitung von XML-Dokumenten XML im Informatikunterricht

  • Teil 1Schach dem Knig

  • Schach-SpielzustndeOktober 1999: "Garri Kasparow setzt die Welt matt.""Die Welt ist doch noch matt gegangen. Nach 62 Zgen hat sich der beste Schachspieler des Planeten, Garri Kasparow, im Internet gegen mehr als 3,5 Millionen Gegner durchgesetzt. ... "siehe: http://www.rochadekuppenheim.de/meko/diewelt.htmlNach 29 Zgen ist auf dem Schachbrett folgender Spielzustand entstanden.Kasparow (wei) ist jetzt am Zug.

  • Schach-SpielzustndeMglichkeiten zur Fortsetzung der Partie sollen mit verschiedenen Schachprogrammen durchgespielt werden. Der gewnschte Spielzustand wird hierzu rekonstruiert und abgespeichert.

  • Schach-SpielzustndeWill man den gespeicherten Spielzustand mit anderen Schachprogrammen verwenden, so ergeben sich Schwierigkeiten.

  • Schach-SpielzustndeEin Blick hinter die Kulissen soll klren, wodurch die Schwierigkeiten zustande kommen.

  • Schach-SpielzustndeDie Programme benutzen unterschiedliche Speicherformate..........p.kpQ....np.....p..b.BP..q..p...............PP......RK.W00008/1p1kpQ2/2np4/1p2b1BP/2q2p2/8/5PP1/5RK1 w -- - 1 30

  • Schach-Spielzustnde.........p.kpQ....np.....p..b.BP..q..p...............PP......RK.W0000schwarze Figuren:Bauer: (p)awnTurm: (r)ookSpringer: k(n)ightLufer: (b)ishopDame: (q)ueenKnig: (k)ing

    weie Figuren:Bauer: (P)awnTurm: (R)ookSpringer: k(N)ightLufer: (B)ishopDame: (Q)ueenKnig: (K)ing

  • Schach-Spielzustndeschwarze Figuren:Bauer: (p)awnTurm: (r)ookSpringer: k(n)ightLufer: (b)ishopDame: (q)ueenKnig: (k)ing

    weie Figuren:Bauer: (P)awnTurm: (R)ookSpringer: k(N)ightLufer: (B)ishopDame: (Q)ueenKnig: (K)ing 8/1p1kpQ2/2np4/1p2b1BP/2q2p2/8/5PP1/5RK1 w -- - 1 30

  • Schach-SpielzustndeDie Forsyth-Edwards-Notation (FEN) oder in der erweiterten Form (X-FEN) ist eine Kurznotation, mit der jede beliebige Brettstellung im Schach niedergeschrieben werden kann.siehe: http://de.wikipedia.org/wiki/Forsyth-Edwards-Notationrnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1Die FEN ist in 6 Gruppen aufgeteilt, die durch Leerzeichen getrennt sind (in EBNF):

    FEN := Position " " Spieler " " Rochade " " en-passant " " Halbzge " " Zugnummer

    Beispiel: Die Grundstellung des Schachbrettes in FEN:

  • Schach-Spielzustnde"Wei ist am Zug. ..."rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1InformationDatenReprsentieren DarstellenZur Darstellung der Information (Brettstellungen im Schach) wird eine formale Sprache (FEN) benutzt.Die Wrter dieser Sprache mssen nach bestimmten Regeln gebildet werden. Diese Regeln legen die Syntax der Sprache fest.

  • Schach-Spielzustnde"Wei ist am Zug. ..."rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1InformationDatenInterpretieren DeutenZur Darstellung der Information (Brettstellungen im Schach) wird eine formale Sprache (FEN) benutzt.Schachexperten (und manche Schachprogramme) verstehen diese Sprache. Sie knnen zu den Wrtern der Sprache die entsprechenden Brettstellungen erzeugen und somit die Bedeutung / Semantik der Wrter erschlieen.

  • Schach-SpielzustndeNeben der FEN gibt es andere Sprachen zur Beschreibung von Brettstellungen im Schach. Wnschenswert ist eine Standardisierung der Sprachen, um eine babylonische Sprachverwirrung zu vermeiden..........p.kpQ....np.....p..b.BP..q..p...............PP......RK.W0000rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1http://de.wikipedia.org/wiki/Bild:Meister_der_Weltenchronik_001.jpghttp://de.wikipedia.org/wiki/Bild:Brueghel-tower-of-babel.jpg

  • AufgabeNeben speziellen Spielzustnden ermglichen Schachprogramme es auch, den Spielverlauf zu speichern. Schauen Sie auch hier hinter die Kulissen und erkunden Sie die Sprache PGN (Portable Game Notation).

  • Teil 2Datenformate - Ein Blick hinter die Kulissen

  • Darstellung von Schachspielen[Event "F/S Return Match"] [Site "Belgrade, Serbia JUG"] [Date "1992.11.04"] [Round "29"] [White "Fischer, Robert J."][Black "Spassky, Boris V."] [Result "1/2-1/2"]

    1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8. c3O-O 9. h3 Nb8 10. d4 Nbd7 11. c4 c6 12. cxb5 axb5 13. Nc3 Bb7 14. Bg5 b4 15.Nb1 h6 16. Bh4 c5 17. dxe5 Nxe4 18. Bxe7 Qxe7 19. exd6 Qf6 20. Nbd2 Nxd6 21.Nc4 Nxc4 22. Bxc4 Nb6 23. Ne5 Rae8 24. Bxf7+ Rxf7 25. Nxf7 Rxe1+ 26. Qxe1 Kxf727. Qe3 Qg5 28. Qxg5 hxg5 29. b3 Ke6 30. a3 Kd6 31. axb4 cxb4 32. Ra5 Nd5 33.f3 Bc8 34. Kf2 Bf5 35. Ra7 g6 36. Ra6+ Kc5 37. Ke1 Nf4 38. g3 Nxh3 39. Kd2 Kb540. Rd6 Kc5 41. Ra6 Nf2 42. g4 Bd3 43. Re6 1/2-1/2Quelle: WikipediaUnten finden Sie verschiedene Formate zur Darstellung von Schachspielen. Welche Vor- und Nachteile haben diese Darstellungen? PGNChessGML

  • Datenformate fr SchachspieleChessGML: The Why and WhereforeAndreas SarembaChapter 1. Brave new chess worldComputers and the Internet have revolutionized the way how chess games are communicated to the public. ...Besides the two reasons everyone knows and acknowledges, the triumph of the Internet and the enormous development of chess database programs, there was one factor that was equally important for this development: A common language for the encoding of chess games. It is Stephen J. Edward's merit that such a language exists; he not only perceived the need for a lingua franca of the chess world but defined and implemented it in a strict and concise way. In short time PGN (Portable Game Notation) has become indispensable, and no chess software can afford not to be able to read and write this format.So why would anybody be foolish enough to propose something different?Chapter 2. On closer inspection, however ...The joy about the undeniable progress the chess world has made has blurred the view for some aspects of the situation that are a bit less obvious. Let us look at a few examples:- While you can get an ocean of uncommented games on the Internet, there is a remarkable lack of commented ones. I this due to mystery mongery, is it indolence or are there other reasons?- ...- There is a remarkable lack of quality and consistency in the published PGN files. For example, more often than not you will find several spellings of a player's name in one file, making it impossible to perform simple automatic processing like building a tournament table or gathering of statistical data.It is my conviction that the primary reason for these and other insufficiencies is the lack of an interchange format for chess that is not only open but also powerful. ...(Quelle: http://www.saremba.de/chessgml/why.htm)

  • Datenformate fr SchachspieleSubject: XMl for chessDate: 2004-08-29 16:09:25From: KymFarnikAs a Chess player of many years and an IT Professional the idea of a new (XML) text game format is not a good idea.Why you ask?PGN is both human and machine readable. It is *very* easy for a human to read and that is the reason it is so successful and no one has 'updated' the spec since '96.PGN uses SAN. SAN is the official way players record their moves in a tourney. PGN adds some headers and a terminator (*, 1-0, 0-1 1/2-1/2). PGN allows the insertion of comments {} and nested variations ().As a Chess player what more do you need?The problem with any XML format is the tagging and the fact that Chess players need a readable text format.The fact that the de-facto PGN standards has lived without change for so long is a huge indication of stability and usefulness.I have a database of 3.4million games (using the Scid product) and have loaded all collected games from PGN!PGN is good for Email Chess as it is easily paresed by tools and readable by the players at the same time.*If aint broken - dont 'fix' it*Regards, kymQuelle: http://www.xml.com/cs/user/view/cs_msg/2194

  • TextverarbeitungMit OpenOffice wurde ein Text ber den Klner Dom erstellt und anschlieend in verschiedenen Ausgabeformaten abgespeichert ...Der digitale DomDer Klner Dom ist so etwas wie ein Star. Ein Meisterwerk, sagen Architekten. Eine Perle, sagen Historiker. Ein Glcksfall, sagen Archologen. Das berhmteste Bauwerk seiner Epoche, der Gotik, und das Markenzeichen seiner Stadt. Kaum eine andere Kirche ist im Lauf der Zeit fotografisch so ausfhrlich dokumentiert worden wie der Klner Dom. All diese Bilddokumente sollen demnchst per Mausklick abrufbar sein fr eine virtuelle Entdeckungsreise. Mehrere tausend Fotos lagern dann in der eigens eingerichteten Bilddatenbank. Gescannt, im Computer digitalisiert- also in Nullen und Einsen verwandelt und als grere oder kleinere Datenpakete abgelegt. Auch der berhmte mittelalterliche Bauplan kommt dann per Klick auf den Bildschirm: Die Ansicht der Westfassade, der so genannte "Riss F". Der Originalbauplan ist eine Kostbarkeit und lagert lichtgeschtzt im Inneren des Doms. 750 Jahre hat es berdauert: Tinte auf Pergament, die Vision des Baumeister im 13. Jahrhundert. Lesbar ist es auch heute noch. Denn der originale Bauplan wurde nicht codiert oder in Nullen und Einsen zerlegt. Nur deshalb konnte der Klner Dom so erbaut werden, wie wir ihn heute kennen.

  • Darstellung des Textes... als MS-Word-Datei im doc-Format (siehe "dom_koeln.doc"). Mit einem Text-Editor geffnet sieht diese Datei so aus:

  • Darstellung des Textes... als OpenOffice-Datei (siehe "dom_koeln.odt"). Mit einem Text-Editor geffnet sieht diese Datei noch unverstndlicher aus.

  • Darstellung des TextesWenn man die von OpenOffice erzeugte Datei "dom_koeln.odt" entpackt, klrt sich einiges (siehe "content.xml").

  • Darstellung des Textes... als DocBook-Datei (siehe "dom_koeln.xml"). Hier kann man deutlich die Struktur des Textes ablesen.

  • Formate zur InformationsdarstellungReprsentierenInterpretierenReprsentierenInterpretierendoc: proprietres FormatODF: standardisiertes Format

  • Standardisierte FormateMacht ber die DokumenteODF ist ein lizenzfreier Standard und seit 2006 als internationale Norm ISO/IEC 26300 verffentlicht. Zu diesen De-Facto-Standards zhlt beispielsweise das Doc- oder Xls-Format von Microsoft. Software-Programme drfen diese Formate nur laden, wenn der Hersteller fr die Programme auch eine Lizenz von Microsoft kauft. Das Doc-Format konkurriert mit dem Open Document Format for Office Applications (ODF), einem Dokumentformat fr den Austausch von Daten zwischen Broanwendungen. ODF ist, im Gegensatz zu den Microsoft-Formaten, ein lizenzfreier Standard, der vielfltig interoperabel ist. Produkte, die den Standard verwenden sind unter anderem die Bro-Software-Pakete Openoffice, Staroffice, Neooffice und Koffice. Hinzu kommt die Online-Text- und Tabellenverarbeitung von Google. ber externe Plug-Ins wird auch der ODF-Import und -Export in Microsoft-Office-Anwendungen wie Word oder Excel untersttzt.Streit um AnerkennungFr Unternehmen und Behrden liegt damit der wirtschaftliche Nutzen von ODF auf der Hand. Anders als bei Microsoft fallen nmlich keine Lizenzgebhren an. In den letzten Jahren stiegen viele Organisationen aus Kostengrnden sowie aus Grnden der Interoperabilitt auf quelloffene Software-Produkte sowie auf den ODF-Standard fr Daten- und Dateiaustausch um. Das wiederum konnte Microsoft nicht gefallen. Im Zuge der Einfhrung von Office 2007 beschloss der Computer-Konzern aus Redmond, das bisherige Doc- und Xls-Format durch das OOXML-Dateiformat (Open Office Extended Markup Language) abzulsen. Gleichzeitig wollte der Software-Konzern das neue Format als ISO-Standard anerkennen lassen, ohne jedoch etwaige Patentrechte daran aufzugeben.http://www.cio.de/knowledgecenter/open_source/852833/index3.html

  • StandardisierungEs war wie ein verrcktes Fussballspiel. Die eine Mannschaft gehrt einem reichen Konzern, die andere bestand aus brillanten, unabhngigen, aber mittellosen Spielern. Als die reiche Mannschaft zu verlieren drohte, schickte der Konzern mehr Spieler aufs Feld - und es gab keine Regel, die ihn daran hindern konnte. Am Ende standen einem freien Spieler fast vier Konzernspieler gegenber. Der Kampf schien am Dienstag gelaufen. Hans Rudolf Thomann sagte gegenber der WOZ: Wir haben entschieden: Die Schweiz empfiehlt, Open XML von Microsoft als internationalen Standard anzuerkennen. Thomann sagte noch, das drfe nicht vor Donnerstag kommuniziert werden, es sei eine heisse Sache.Thomann ist ein wichtiger Mann: Er leitet das offizielle Schweizer ExpertInnenkomitee, das ber die Microsoft-Frage zu befinden hat. ...Es geht um die Frage, wie ein Computerdokument verpackt sein soll, damit es spter auch mit Programmen geffnet werden kann, mit denen es nicht erstellt wurde. Firmen, aber auch Behrden, die ihre Dokumente elektronisch ablegen wollen, verursacht dieses Problem Kopfzerbrechen. Ein elektronisches Archiv ist nur brauchbar, wenn sich die archivierten Texte auch nach Jahren noch ffnen lassen, sonst sind sie fr immer verloren.Um das zu vermeiden, braucht es einen Standard, der festlegt, wie die Datenstruktur eines Textes oder einer Tabelle aussehen muss. Der Standard muss einfach und fr alle offen zugnglich sein, sonst kann er ja nicht in jede neue Software eingebaut werden. Ein solcher Computerstandard existiert bereits, er heisst Open Document Format (ODF), wurde von unabhngigen Softwareleuten entwickelt und im Mai 2006 von der internationalen Zertifizierungsbehrde ISO anerkannt.http://www.woz.ch/artikel/2007/nr35/schweiz/15329.html

  • StandardisierungDie Geschichte des Klner Doms beginnt im Jahre 1248 mit der Grundsteinlegung fr den Chor, der gigantisch war fr mittelalterliche Mastbe. Es folgten der Abriss des alten Langhauses, die Arbeit an den Westtrmen - auch deren Ausmae sprengten die damals blichen Dimensionen. Allein diese Bauarbeiten dauern drei ganze Jahrhunderte, whrend derer man sich konsequent an die alten Bauplne hielt. Digital verschlsselte Daten auf nicht bestndigen Datentrgern wren zu dem Zeitpunkt lngst unlesbar gewesen.Doch im 16. Jahrhundert kommen die Bauarbeiten am Groprojekt Dom zum Erliegen. Die genaue Ursache ist bis heute unbekannt. Der Dom bleibt unvollendet, eine Bauruine, und zwar ganze 300 Jahre lang. Erst zu Beginn des 19. Jahrhunderts kommt pltzlich wieder Bewegung in das Projekt "Dom". Und noch immer existiert der mittelalterliche Bauplan. 600 Jahre ist er mittlerweile alt. Das Pergament brchig, die Tinte vergilbt und - uncodiert. Und damit ohne jegliche Software oder Hardware lesbar. Wre er digital gespeichert gewesen, wohl niemand htte nach sechs Jahrhunderten geschafft, ihn zu lesen.Doch mit einem Plan aus Tinte und Pergament war es kein Problem, den Dom bis zum Ende des 19. Jahrhunderts genau so zu vollenden, wie es sich sein visionrer mittelalterlicher Baumeister einst ausgedacht hat. http://www.wdr.de/tv/q21/1058.0.phtml

  • StandardisierungUsers tend to think about software in terms of functionality and usability; they use to under-estimate the importance of data formats. How should they know better it is the very purpose of good software to provide a wealth of functions while hiding the (necessary) complexity of the underlying data from the innocent user. After all, nobody cares for the bits and bytes that are scribbled on the disk.In fact, everybody should care. Not for the details of the bits and bytes, of course, but for their data. They are, after all, for what all the effort is made. You may not have noticed so far that data in a proprietary (i.e. vendor-specific) format is less valuable than data in an open and standardized format. But you will notice this once you try to switch to a different software, only to learn that you have to say Goodbye to most of your data because they cannot be read by the new program. A comparable, although less dramatic situation will occur when you try to send your data to somebody else who does not happen to use the same software as you do.The usual justification offered by software vendors says they have to use their own format because it's highly optimized for the particular needs of their program and that it saves both processing time and (main memory as well as disk) space. This would be more convincing if they wouldn't, at the same time, try to keep their formats secret by not documenting them or by even encrypting the data. http://www.saremba.de/chessgml/why.htm

  • Informationsdarstellung mit XMLInformation kann auf ganz unterschiedliche Weise dargestellt und auch strukturiert werden. XML (eXtensible Markup Language) bietet eine Art Standard zur strukturierten Darstellung von Information, den inzwischen sehr viele Werkzeuge nutzen. ReprsentierenInterpretierenReprsentierenInterpretieren

    ...

  • AufgabeMit Hilfe von verschiedenen Struktogramm-Editoren wurde der Algorithmus zur Berechnung des ggT in Struktogrammform dargestellt. Vergleichen Sie die benutzten Datenformate. ffnen Sie hierzu die Dateien mit einem Editor.StruktEditNSCEdit

  • Datenformate fr StruktogrammeStruktEdit-Datei betrachtet mit einem Hex-EditorNSCEdit-Datei betrachtet mit einem Text-Editor

  • AufgabeDas Simulationsprogramm JFlap wurde in den letzten Jahren mehrfach berarbeitet und weiterentwickelt. Insbesondere wurde auch das Speicherformat verndert. Vergleichen Sie das von JFlap40b8 und JFlap40b14 benutzte Format.

  • Datenformate fr Automatenerstellt mit JFlap40b14erstellt mit JFlap40b8

  • AufgabeErstellen Sie mit GeoGebra eine Zeichnung und speichern Sie diese unter einem geeigneten Dateinamen (z. B. "ableitung.ggb") ab. Entpacken Sie anschlieend diese Datei und schauen Sie sich die entpackte Datei mit einem Editor an.

  • Datenformat fr geometrische Konstr.hinter den Kulissen von GeoGebra... ... ... ...

  • AufgabeDas folgende XML-Dokument soll den aktuellen Schach-Spielzustand darstellen. Welche Vor- und Nachteile hat diese Darstellung?

    b7 e7 d6 b5 f4 c6 e5 c4 d7 h5 f2 g2 f5 f1 f7 g1

    8/1p1kpQ2/2np4/1p2b1BP/2q2p2/8/5PP1/5RK1 w -- - 1 30

  • AufgabeIst XML ein guter Standard? Lesen Sie die folgenden Textauszge.Als "beste Erfindung seit der Kreide" feierte ein Kommentator einmal XML, und dieser Vergleich trifft nicht schlecht: Beide Schreibwerkzeuge sind technisch unkompliziert, praktisch umsonst nutzbar, und beide helfen gerade dort, wo mehrere Parteien Information teilen wollen. Besonders dort, wo groe Datenmengen aus verschiedenen Quellen zusammenflieen, etwa in Schnittbereichen mehrerer wissenschaftlicher Disziplinen oder in der Logistik zwischen Unternehmen und ihren Zulieferern, hat XML sich als mchtiges Werkzeug erwiesen. Inzwischen speichern auch viele Text- und Datenbankprogramme fr Heimcomputer ihre Dateien in XML.Trotz des "Language" im Namen ist XML keine Sprache, sondern ein Sprachgerst, hnlich der Grammatik natrlicher Sprachen: Die Regeln von XML legen fest, welche Struktur ein sinnvoller Ausdruck haben muss. Der Wortschatz dagegen bleibt bewusst offen. Er kann fr jede Anwendung angepasst werden. Inzwischen sind XML-Dialekte fr alle erdenklichen Gebiete entwickelt, vom Versicherungswesen ber die biologische Bildgebung bis hin zu Schach.http://www.heise.de/tr/Beste-Erfindung-seit-der-Kreide--/artikel/56485

  • Gute StandardsWas ist ein guter Standard? Ein Essay ber die Designprinzipien des W3CAutor: Bert Bos Deutsche bersetzung: Michael Jendryschik

    Binr- oder TextformatDie meisten W3C-Spezifikationen definieren eine formale Sprache zur Beschreibung einer Art von Ressource: HTML beschreibt einfache Text-Dokumente, SVG beschreibt Vektorgrafiken, PNG beschreibt Rastergrafiken, HTTP beschreibt den Dialog zwischen einem Client und einem Server und URLs beschreiben den Pfad zu einer bestimmten Ressource. Es gibt Ausnahmen wie die verschiedenen WAI-Richtlinien, die Meta-Regeln beschreiben, wie Programme und Spezifikationen entworfen werden sollten (ein wenig wie dieser Essay, allerdings prziser...). Aber die meisten Menschen, die an W3C-Spezifikationen arbeiten, stehen am Anfang vor der Frage: Sollen wir ein Binr- oder ein Textformat entwerfen?

    In den meisten Fllen wird die Antwort Textformat lauten, denn Textformate sind einfacher zu laden, und Fehler lassen sich leichter finden und beseitigen: man kann Dateien mit einem Texteditor erzeugen, sodass der Entwurf eines geeigneten Editors oder Konverters auf einen spteren Zeitpunkt verschoben werden kann; man kann eine Datei berprfen, um zu sehen, was passiert ist, wenn ein Programm nicht das macht, was man erwartet hat; und nicht zuletzt: wenn die Spezifikation in etwa 50 Jahren versehentlich verloren gegangen ist, gibt es eine Chance, allein durch das Analysieren einiger Dateien ausreichend viel von der Spezifikation zu rekonstruieren, um die essentiellen Informationen zurckzugewinnen. (Das wird manchmal, wohl eher optimistisch, selbstbeschreibend genannt. Das Format wrde nur dann wirklich selbstbeschreibend sein, wenn jede Datei den Text der Spezifikation mit einbnde...)http://jendryschik.de/wsdev/trans/designguide/

  • Gute StandardsWas ist ein guter Standard? Ein Essay ber die Designprinzipien des W3CAutor: Bert Bos Deutsche bersetzung: Michael Jendryschik

    LesbarkeitEine Notation kann zu kurz sein. Wenn der Name einer selten verwendeten Funktion nur aus einem Buchstaben besteht (t), dann muss man sie womglich die wenigen Male, die man sie sieht, nachschlagen, wenn man alle Buchstaben nicht auswendig komplett berblickt. Ein komplettes Wort (translate) ist da die bessere Lsung.Eine Notation kann auch zu lang sein. Wenn ein Schlsselwort, das man sehr oft verwendet, 20 Zeichen lang ist (shapeoutlinedata), dann sollte es womglich besser abgekrzt werden (d). Diese Beispiele habe ich aus SVG (das die richtigen Bezeichnungen gewhlt hat) entnommen, aber man kann hnliche Flle in den meisten Sprachen finden.Bedauerlicherweise stellen sich die besten Vermutungen als falsch heraus. Die Designer von XML dachten, es wre hilfreich, ein Element mit dem vollen Elementnamen zu ffnen und zu schlieen (...), und fr die Verwendung, die sie voraussahen, war das in der Tat vollkommen angemessen: in langen Texten mit wenig Markup ist die geringe Menge an Redundanz, die hinzukommt, gegenber der Mglichkeit, zu sehen, welches Element geschlossen wird, zu vernachlssigen [XMLgoals]. Sie dachten, eine krzere Form (etwa oder ) zu erlauben, wrde die Komplexitt der Sprache erhhen. Heute wird XML allerdings hufiger fr Daten benutzt, deren Markup den eingeschlossene Inhalt bersteigt, und die vielen Start-Tags, die direkt End-Tags des gleichen Elementtyps folgen, verstecken die wesentliche Information durch ihre Redundanz. XML ist dadurch nicht kaputt, aber im Nachhinein betrachtet, htte es so gestaltet werden knnen, dass dessen Verwendung nicht mit solchen Problemen verbunden ist.http://jendryschik.de/wsdev/trans/designguide/

  • AufgabeVerschaffen Sie sich einen ersten berblick ber XML. Lesen Sie sich hierzu die Seite "XML in 10 Punkten" durch. 1. XML steht fr strukturierte Daten 2. XML sieht ein wenig wie HTML aus 3. XML ist Text, aber nicht zum Lesen 4. XML ist vom Design her ausfhrlich 5. XML ist eine Familie von Techniken 6. XML ist neu, aber nicht so neu 7. XML berfhrt HTML in XHTML 8. XML ist modular 9. XML ist die Basis fr RDF und das Semantic Web 10. XML ist lizenzfrei, plattformunabhngig und gut untersttztsiehe: http://www.w3c.de/Misc/XML-in-10-Punkten.html

  • Teil 3Grundlagen von XML

  • Strukturierte Darstellung v. InformationXML-Dokumente werden benutzt, um Information strukturiert darzustellen.

    b7 e7 d6 b5 f4 c6 e5 c4 d7 h5 f2 g2 f5 f1 f7 g1

  • Hierarchische Baumstruktur

    b7e7d6b5f4c6e5c4d7

    h5f2g2f5f1f7g1

    Die Strukturierung erfolgt in Form eines Baumes.Anzeige mit einem BrowserDarstellung im Editor

  • Der Baum der Elemente 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. Das erste Element eines XML-Dokuments ist das Wurzelelement, das alle anderen Elemente in sich einschliet.Ein XML-Dokument vermischt Inhalte mit Informationen ber diese Inhalte (Meta-Information).WurzelelementElement mit ZeicheninhaltElement als Container

  • Tags 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 whlbar. Anfangs- und Endtag mssen immer exakt zueinander passen. Dabei wird auf Gro- und Kleinschreibung geachtet. Tags mssen korrekte geschachtelt werden. Bei einem leeren Element wird i. d. Regel eine verkrzte Tag-Schreibweise benutzt.AnfangstagEndtagleeres Element

  • Attribute Elemente knnen mit Hilfe von Attributen nher beschrieben werden. Attribute knnen dabei zustzliche Informationen ber den Inhalt eines Elements liefern, ohne selbst Teil des Inhalts zu sein. Jedem Attribut muss ein bestimmter Wert zugewiesen werden, der in Anfhrungszeichen geschrieben wird.AttributAttributwert

  • Kommentare Kommentare erleichtern das Verstndnis und werden vom Browser mit angezeigt.

    Kommentar

  • Prolog Ein XML-Dokument beginnt in der Regel mit dem Prolog . Der Prolog sollte hier stehen, um das Dokument als XML-Dokument zu kennzeichnen. 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.

  • WohlgeformtheitEin XML-Dokument, das alle syntaktischen Bedingungen erfllt, heit wohlgeformt.wohlgeformte XML-Dokumentebeachte: Nur wohlgeformte XML-Dokumente werden vom Browser in Baumform angezeigt.

  • AufgabeVersuchen Sie, nicht-wohlgeformte XML-Dokumente mit dem Browser anzuzeigen. Testen Sie verschiedene Flle:- die Tag-Namen stimmen nicht exakt berein- die Klammerung ist nicht korrekt- der Attributwert fehlt / ist nicht in Anfhrungszeichen geschrieben...

  • AufgabeIn beiden XML-Dokumenten stimmt etwas nicht. Was? Worin unterscheiden sich die Fehler?

    b7 e7 d6 b5 f4 c6 e5 c4 d7 h5 f2 g2 f5 f1 f7 g1

    b7 e7 d6 b5 f4 c6 e5 c4 d7 h5 f2 g2 f5 f1 f7 g1

  • AufgabeWas geschieht, wenn man die Elementstruktur verndert. Lassen Sie gezielt Tags weg bzw. verndern Sie gezielt die Baumstruktur, ohne gegen die Syntaxregeln von XML zu verstoen.

    Eingabe: x, y SOLANGE y > 0 h := x mod y ... ...

    weglassenTesten Sie auch, wie die Anwendung reagiert, wenn man zustzliche Elemente einfhrt.

  • AufgabeEine Bank mchte berweisungen mit Hilfe von XML strukturiert darstellen. Entwerfen Sie ein passendes XML-Dokument.

  • AufgabeEntwickeln Sie ein XML-Dokument, mit dem man Informationen ber eine Schulklasse / ein Lehrerkollegium erfassen kann.

  • AufgabeGraphen treten in sehr vielen Anwendungen auf. Entwickeln Sie ein XML-Dokument, mit dem man die Information eines Graphen strukturiert darstellen kann.

  • Teil 4Dokumenttypen und ihre Validierung

  • Ungltige DokumentenstrukturWenn man das Element zur Darstellung der Struktogramm-berschrift weglsst, so wird das Dokument weiterhin vom Browser angezeigt. Das Dokument wird aber nicht mehr vom Struktogrammeditor akzeptiert, da es nicht mehr den geforderten Dokumenttyp hat.

    Eingabe: x, y SOLANGE y > 0 h := x mod y ... Ausgabe: x GGT

    Zielsetzung:Im Folgenden sollen Verfahren vorgestellt werden, mit denen der Dokumenttyp przise beschrieben werden kann.

  • DokumenttypWir betrachten XML-Dokumente zur (vereinfachten) Beschreibung eines Schach-Spielzustands. Ein Schach-Spielzustand wird durch die schwarzen und weien Figuren festgelegt und die Angabe, ob schwarz oder wei am Zug ist.Folgende schwarze Figuren knnen auf dem Brett stehen: mehrere Bauern, mehrere Springer, ... , mehrere Damen und genau ein Knig. Folgende weie Figuren knnen auf dem Brett stehen: mehrere Bauern, mehrere Springer, ... , mehrere Damen und genau ein Knig.Beschreibung des Kontextes

    b7 e7 d6 b5 f4 c6 e5 c4 d7 h5 f2 g2 f5 f1 f7 g1

  • Dokumenttypinformelle Beschreibung des Dokumenttyps

    b7 e7 d6 b5 f4 c6 e5 c4 d7 h5 f2 g2 f5 f1 f7 g1

    Das Wurzelelement hat den Namen "Schach-Spielzustand".Ein Element vom Typ "Schach-Spielzustand" besteht aus einem Element vom Typ "schwarz" und einem Element vom Typ "weiss".Ein Element vom Typ "schwarz" (analog "weiss") besteht aus - beliebig vielen Elementen vom Typ "Bauer", - beliebig vielen Elementen vom Typ "Turm", - ..., - genau einem Element v. Typ "Knig", - optional einem Element v. Typ "amZug".Ein Element vom Typ "Bauer" besteht aus Zeichen. ...

  • Dokumenttypdefinition

    Das Wurzelelement hat den Namen "Schach-Spielzustand".Ein Element vom Typ "Schach-Spielzustand" besteht aus einem Element vom Typ "schwarz" und einem Element vom Typ "weiss".Ein Element vom Typ "schwarz" (analog "weiss") besteht aus - beliebig vielen Elementen vom Typ "Bauer", - beliebig vielen Elementen vom Typ "Turm", - ..., - genau einem Element v. Typ "Knig", - optional einem Element v. Typ "amZug".Ein Element vom Typ "Bauer" besteht aus Zeichen. ...informelle Beschreibung des Dokumenttyps

    b7 e7 ...

    h5 ... f7 g1

    formale Beschreibung des Dokumenttyps

  • DokumenttypdefinitionDokumenttypdefinitionEine Dokumenttypdefinition (DTD) legt eine Klasse von Dokumenten fest, die alle vom gleichen Typ sind.Eine Dokumenttypdefinition beschreibt die Struktur eines Dokuments mit Hilfe einer Grammatik. Eine DTD legt somit eine neue Sprache zur Informationsbeschreibung fest.

    b7 e7 ...

    h5 ... f7 g1

  • Einbindung einer DTDinterne 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 Schlsselwort PUBLIC wird auf eine verffentlichte DTD verwiesen. Als Name der DTD wird der Name d. Wurzelelement benutzt.

    ...

    ...

    ...

    externe DTDexterne DTD

  • Deklaration von Elementen

    Elementtyp-DeklarationOperatorBedeutung()Bildung von Elementgruppen,Trennzeichen innerhalb einer Sequenz von Elementen|Trennzeichen zwischen sich ausschlieenden 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

  • Inhaltsmodelle

    InhaltsmodellBeschreibungElementinhaltDas Element enthlt ausschlielich Unterelemente.

    #PCDATADas Element enthlt nur Zeichendaten.

    gemischter InhaltDas Element kann Zeichendaten und Unterelemente enthalten

    EMPTYDas Element hat keinen Inhalt.FrauChristianeMeier......e4

    ANYDas Element kann beliebige Inhalte haben.

  • Deklaration von Attributlisten

    ...

  • Deklaration von Attributlisten

    Attributlisten-DeklarationCDATA: nur einfache Zeichenketten erlaubt, keine Tags...#REQUIRED: Attributwert muss in jeder Elementinstanz vorkommen#IMPLIED: Attributwert kann optional in einer Elementinstanz vorkommen...

  • GltigkeitEin XML-Dokument, das alle Bedingungen einer DTD erfllt, heit gltig bzw. valide bzgl dieser DTD. Ein gltiges XML-Dokument muss auch wohlgeformt sein. Gltigkeit bezieht sich immer auf eine spezielle Strukturbeschreibung (hier in Form einer DTD). Ein gltiges XML-Dokument ist somit ein Wort aus der mit der DTD neu festgelegten Sprache.

    b7 e7 ...

    h5 ... f7 g1

  • Validierunghttp://www.validome.org/xml/validate/Die Gltigkeit eines XML-Dokuments kann mit einem sog. XML-Parser berprft werden. Ein XML-Parser ist ein Programm, das berprft, ob das XML-Dokument die von der angegebenen DTD geforderte Struktur hat bzw. ein Wort zu der durch die DTD festgelegten Sprache ist.

  • ValidierungViele XML-Editoren haben XML-Parser integriert. Open XML Editor

  • AufgabeEntwickeln Sie eine DTD zur Beschreibung von Lehrerkollegien. Validieren Sie das gezeigte XML-Dokument. Testen Sie insbesondere interne und auch externe DTD.

    Meier Christiane mei Deutsch Erdkunde [email protected] [email protected] Schmitt Thomas sch Latein Musik Philosophie Mller Katharina mue Mathematik Informatik [email protected]

  • AufgabeWir betrachten XML-Dokumente zur Beschreibung von Graphen. Entwickeln Sie jeweils passende DTD.

    TR KL ... TR KL 116 KL TR 116 ...

    116 128

  • AufgabeEntwickeln Sie eine DTD fr Automatenbeschreibungen. Die von JFlap erzeugten XML-Beschreibungen sollen dabei als gltig erkannt werden.

  • AufgabeEntwickeln Sie eine DTD fr Struktogramme. Die von NSCEdit erzeugten XML-Beschreibungen sollen dabei als gltig erkannt werden.

  • Miniprojekt: MyXHTMLEntwickeln Sie eine DTD fr vereinfachte HTML-Dokumente. Dabei sollen HTML-Dokumente wie das folgende als gltig erkannt werden. Gehen Sie schrittweise vor. Beginnen Sie mit sehr einfachen Dokumenten wie in "MyXHML0.xml".

    IFB

    Weiterbildung am IFBDie Arbeit findet normalerweise in einem der Rechnerrume des IFB statt.

    Untergebracht wird man in dem schnen neuen S-Bau.

    Zurck

  • Teil 5XML-Vokabulare

  • XML-Vokabulare ] >Regeln zur Festlegung der Lexik und Syntax von MyHTMLXML ermglicht es, mit Hilfe von DTD neue Sprachen formal festzulegen. Solche Sprachen werden auch XML-Vokabulare genannt. Die DTD ist die Grammatik des zugehrigen XML-Vokabulars, dargestellt in SGML unter Verwendung der erweiterten Backus-Naur-Form."Die Erweiterte Backus-Naur-Form, kurz EBNF, ist eine Erweiterung der Backus-Naur-Form (BNF), die ursprnglich von Niklaus Wirth zur Darstellung der Syntax der Programmiersprache Pascal eingefhrt wurde. Sie ist eine formale Metasyntax (Metasprache), die benutzt wird, um kontextfreie Grammatiken darzustellen." (wikipedia)

  • XHTML Weiterbildungskurse am IFB Weiterbildung am IFB Die Arbeit findet normalerweise in einem der Rechnerrume des IFB statt. ... Zurck DTD zur Festlegung der Lexik und Syntax von XHTMLBrowser als Interpreter: Semantik von XHTMLXHTML ist die XML-konforme Neufassung von HTML.

  • AufgabenAufgabe 1 Laden Sie sich die DTD von XHTML herunter und werfen Sie einen Blick in die sehr umfangreiche DTD. Alles klar? Sie finden die DTD unter der angegebenen URL. Aufgabe 2 Informieren Sie sich ber den sog. DOCTYPE-switch. Sie knnen auch nach dem Stichwort "Quirks-Modus" suchen.

  • SVG

    SVG-DokumentDarstellung im Browser"Scalable Vector Graphics (SVG, deutsch Skalierbare Vektorgrafiken) ist ein Standard zur Beschreibung zweidimensionaler Vektorgrafiken in der XML-Syntax." (wikipedia)

  • AufgabenAufgabe 1 Testen Sie zunchst, ob ihr Browser SVG-Dateien anzeigt. Benutzen Sie eine der mitgelieferten svg-Dateien.Aufgabe 2 Unter der URL "http://de.wikipedia.org/wiki/Scalable_Vector_Graphics" finden Sie einige Hinweise zur Erstellung von SVG-Dokumenten. Testen Sie einige der dort angegebenen Elemente und erstellen Sie eine Grafik nach eigenen Vorstellungen.

  • MathML c = a 2 + b 2 "Die Mathematical Markup Language (MathML) ist im Computer-Datenverkehr ein Dokumentenformat zur Darstellung mathematischer Formeln und komplexer Ausdrcke. Der Standard MathML 2.0 wird durch eine Spezifikation des World Wide Web Consortium von 2001 festgelegt. Wie in allen XML-Sprachen (z. B. XHTML) werden in MathML die Inhalte eines Dokumentes in einer logischen Struktur unabhngig von ihrer graphischen Gestaltung abgelegt." (wikipedia)

  • AufgabenAufgabe 1 Testen Sie zunchst, ob ihr Browser MATHML-Dateien anzeigt. Wenn Sie Firefox benutzen, mssen Sie evtl. weitere Zeichenstze installieren. Aufgabe 2 Versuchen Sie, einfache Formeln mit MATHML zu erstellen.Aufgabe 3 Das Dokument in "test3.xml" zeigt, wie man MATHML in XHTML einbettet. Wie wird es gemacht?

  • WML"Wireless Markup Language (WML) ist eine XML-basierte Seitenbeschreibungssprache, die eine stark reduzierte Fassung von XHTML darstellt. Sie ist Teil des Wireless Application Protocol (WAP) und zur Darstellung vernderlicher Inhalte auf Mobiltelefonen entwickelt worden." (wikipedia) Hausaufgaben in Mathematik Deutsch Englisch ... ... http://www.winwap.com/products_2_3.php

  • AufgabenAufgabe 1 Installieren Sie den Handy-Emulator. Konfigurieren Sie ihn so, dass WML-Dokumente von einem lokalen Server abgerufen werden knnen.Informieren Sie sich in der mitgelieferten WML-Kurzeinfhrung, wie WML-Dokumente aufgebaut werden. Erstellen Sie auch eine einfache WML-Datei.

  • AufgabenAufgabe 2 Sie knnen Firefox dazu bringen, WML-Dateien anzuzeigen. Hierzu mssen Sie nur ein zustzliches Add-on installieren. Sie finden es hier:"https://addons.mozilla.org/en-US/firefox/addon/62"Zustzlich mssen Sie folgende Einstellung vornehmen: "Lokale Dateien mit Endung ".wml" als WML laden"

  • AufgabenAuf der Seite http://web.mit.edu/mecheng/pml/standards.htmfinden Sie eine bersicht ber standardisierte XML-Vokabulare. Werfen Sie einen Blick auf diese Seite, um zu erahnen, wo weitere Anwendungsgebiete von XML liegen.

  • Teil 6Exkurs: Namensrume, Formatierung, Strukturbeschreibung

  • ProblemeWie kann man mehrere XML-Dokumente zusammenfhren, ohne Namenskonflikte zu erhalten?Wie kann man XML-Dokumente formatieren?Wie kann man die Struktur von XML-Dokumenten noch adquater beschreiben?...

  • Exkurs: NamensrumeBeispiel 1:

    Test

    berschriftAbsatz

    Test

    berschriftAbsatz

    Namensraum: Ansammlung von Namen fr Elemente und Attribute

  • Exkurs: NamensrumeBeispiel 2:

    berschriftAbsatz

    Test

    berschriftAbsatz

    NamensraumdeklarationURI als weltweit eindeutiger BezeichnerPrfix als Kurzorm

  • Exkurs: Namensrume

    Satz des Pythagoras In einem rechtwinkligen Dreieck mit den Katheten a und b sowie der Hypothenuse c gilt:

    a 2 ...

    Die folgende Zeichnung verdeutlicht diesen Zusammenhang.

    mehrere NamensrumeBeispiel 3:

  • Exkurs: Namensrume"In Dokumenten, die unterschiedliches Markup-Vokabular enthalten, knnen Probleme mit der Erkennung und Kollisionen auftreten. Software-Module mssen die Tags und Attribute erkennen, fr deren Verarbeitung sie geschaffen wurden, auch im Fall einer Kollision, wenn Markup, das fr eine andere Software geschrieben wurde, die gleichen Elementtypen und Attributnamen verwendet.Diese berlegungen erfordern, dass Dokumentkonstrukte, deren Geltungsbereich ber den des beinhaltenden Dokuments hinausgeht, einzigartige Namen haben sollten. Diese Spezifikation beschreibt einen Mechanismus, XML-Namensrume, der diese Anforderungen erfllt. Ein XML-Namensraum ist eine Zusammenstellung von Namen, identifiziert durch einen URI-Verweis, die in XML-Dokumenten als Elementtypen und Attributnamen verwendet werden."aus: Namensrume in XML. http://www.schumacher-netz.de/TR/1999/REC-xml-names-19990114-de.html

  • Exkurs: FormatierungBeispiel 1:

    XMLXML steht fr Extensible Markup Language und wird benutzt, um Daten strukturiert darzustellen.

    keine Formatierungsangabe

  • Exkurs: FormatierungBeispiel 2:

    XMLXML steht fr Extensible Markup Language und wird benutzt, um Daten strukturiert darzustellen.

    Formatierung mit CSSueberschrift{ color: blue; font-weight: bold;}

    definition{ color: green;}style.css

  • Exkurs: FormatierungBeispiel 3:

    XMLXML steht fr Extensible Markup Language und wird benutzt, um Daten strukturiert darzustellen.

    XML

    Formatierung mit XSLTstyle.xsl

  • Exkurs: Formatierung

    XML

    XSLT steht fr Extensible Stylesheet Language Transformations. XSLT ist eine Sprache zur Transformation von XML-Dokumenten in andere XML-Dokumente, z. B. XHTML-Dokumente.Fr weitere Informationen und Beispiele siehe z. B.: http://de.selfhtml.org/xml/darstellung/index.htm

  • Exkurs: XML-Schema

    b7 e7 d6 b5 f4 c6 e5 c4 d7 h5 f2 g2 f5 f1 f7 g1

    Schach-Spielzustand - Version 1:

    Strukturbeschreibung mit einer DTD

  • Exkurs: XML-Schema

    b7 e7 d6 b5 f4 c6 e5 c4 d7 h5 f2 g2 f5 f1 f7 g1

    Nachteile von DTD: zu unflexibelStrukturbeschreibung mit einer DTDnur bestimmte Feldbezeichner erlaubtmgliche Anzahl der Bauern: 0..8

  • Exkurs: XML-Schema

    b7 e7 d6 b5 f4 c6 e5 c4 d7 h5 f2 g2 f1 f5 f7 g1

    Schach-Spielzustand - Version 2:Strukturbeschreibung mit einem XML-Schemaxsi: XML-schema-instance

  • Exkurs: XML-Schema

    Spielbrett whrend eines Schachspiels ... ...

    Schach-Spielzustand - Version 2:Schema-Definition mit e. XML-basierten Sprache

  • Exkurs: XML-SchemaValidierung: z. B. mithttp://www.xmlvalidation.com/

  • Exkurs: 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. Darber hinaus wird eine groe Anzahl von Datentypen untersttzt.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 vollstndig von XML-Schemata abgelst. Allerdings sind XML-Schemata durch ihre erweiterten Mglichkeiten 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"."siehe: http://de.wikipedia.org/wiki/XML_Schema

  • Teil 7Verarbeitung von XML-Dokumenten

  • Verarbeitung von XML-DokumentenDie Verarbeitung von XML-Daten erfolgt in zwei Stufen, mit einem so genannten Parser und einer Anwendung. Die Aufgabe des Parsers ist es, das vorhandene Dokument auf Wohlgeformtheit und Gltigkeit zu berprfen und die Daten geeignet aufzubereiten (d. h. in einer bestimmten Weise intern darzustellen).Eine Anwendung kann dann ber eine geeignete Schnittstelle auf diese interne Darstellung zugreifen und das Dokument in einer bestimmten Weise verarbeiten (z. B.: erzeugt ein Browser eine grafische Seitendarstellung). Die Verarbeitung legt demnach erst die Bedeutung (Semantik) des Dokuments fest.

  • Beispiel: Browser

    Test Weiterbildung am IFB ... Grafische Aufbereitung (Festlegung der Semantik)Syntax- AnalyseOK!ParserAnwendung

  • Beispiel: Automatensimulator fa 60.0 59.0 ... 2 3 c ... SimulationSyntax- AnalyseOK!ParserAnwendungEingabewort: [email protected]: ok!

  • Realisierung: VerweissucherDie Verarbeitung von XML-Dokumenten soll hier zunchst mit einer einfachen Anwendung verdeutlicht werden.Ein Verweissucher soll in einer XHTML-Seite smtliche Verweise suchen und in Form einer Liste als Ergebnis zurckgeben.Verweissucherhttp://burg-kl.de/neuigkeiten.htmlhttp://burg-kl.de/neuigkeiten/archiv.htmlhttp://burg-kl.de/neuigkeiten/elternbrief.html... BurgGymnasium | Home ... BurgGymnasiumKaiserslautern ...

  • Realisierung: VerweissucherVerweissucherhttp://burg-kl.de/neuigkeiten.htmlhttp://burg-kl.de/neuigkeiten/archiv.htmlhttp://burg-kl.de/neuigkeiten/elternbrief.html... BurgGymnasium | Home ... BurgGymnasiumKaiserslautern ...# verweissucher1.pyfrom xml.dom.minidom import *dokument = parse("BurgGymnasiumHome.htm")def verweissuche(): verweisknoten = dokument.getElementsByTagName("a") verweisliste = [] for knoten in verweisknoten: verweisliste = verweisliste + [knoten.getAttribute("href")] return verweisliste# Testfor verweis in verweissuche(): print verweisDer folgende Quelltext zeigt eine Implementierung in Python.

  • Realisierung: AutomatensimulatorUm einen Einblick in die Verarbeitung von XML-Dokumenten zu gewinnen, soll hier ein eigener Automatensimulator entwickelt werden, der XML-Automatenbeschreibungen verarbeiten kann. [email protected]! fa 60.0 59.0 147.0 59.0 ... 2 3 c ...

  • VorgehensweiseSchritt 1: Strukturbaum erzeugenSchritt 2: Auf die Knoten des Strukturbaums zugreifen fa 60.0 59.0 ...

  • Erzeugung des Strukturbaums fa 60.0 59.0 ...Zunchst wird der XML-Quelltext mit Hilfe eines Parsers verarbeitet. Dabei wird ein sog. DOM-Objekt erzeugt, das den gesamten Strukturbaum verwaltet. >>> from xml.dom.minidom import *>>> dokument = parse(".../EmailDA1.jff")>>> dokument

    PythonDOM: Document Object Model (W3C-Standard)

  • Zugriff auf den WurzelknotenDokument-knoten>>> from xml.dom.minidom import *>>> dokument = parse(".../EmailDA1.jff")>>> dokument

    >>> wurzel = dokument.documentElement>>> wurzel

    WurzelknotenWurzel-knoten

  • Aufgabe>>> from xml.dom.minidom import *>>> dokument = parse(".../EmailDA1.jff")>>> dokument

    >>> wurzel = dokument.documentElement>>> wurzel

    >>> wurzel.nodeNameu'structure'Testen Sie die Erzeugung des DOM-Objekts. Achten Sie darauf, den Pfad zur XML-Datei richtig einzugeben.

  • Navigation im StrukturbaumAttribut- knotenstatex#text: 60.0type#text: fa#comment: #documenty#text: 59.0initial#comment:structurestatePreviousSiblingLastChildParentNodeNextSiblingOperationen:Grafik aus: Introducing the Document Object Model using OpenXML (Part 1) by Craig Murphy Text- knotenDokument-knotenElement-knotenId: 0Id: 1FirstChild

  • Navigation im DOM-BaumAchtung: Zeilenumbrche und Leerzeichen zwischen Tags werden mit zustzlichen Text-Knoten erfasst.>>> wurzel.firstChild

    >>> wurzel.firstChild.nextSibling

    >>> wurzel.firstChild.nextSibling.nextSibling

    >>> wurzel.firstChild.nextSibling.nextSibling.nextSibling

  • Aufgabe>>> wurzel.firstChild

    >>> wurzel.firstChild.nextSibling

    >>> wurzel.firstChild.nextSibling.nextSibling

    >>> wurzel.firstChild.nextSibling.nextSibling.nextSibling

    Navigieren Sie sich durch den Baum bis zum ersten "state"-Knoten.

  • Navigation im DOM-Baum>>> wurzel.childNodes[, , , , ]>>> wurzel.childNodes[2]

    >>> wurzel.childNodes[3]

    >>> wurzel.childNodes[5]

    >>> wurzel.childNodes[5].firstChild

    >>>

  • Aufgabe>>> wurzel.childNodes[, , , , ]>>> wurzel.childNodes[2]

    >>> wurzel.childNodes[3]

    >>> wurzel.childNodes[5]

    >>> wurzel.childNodes[5].firstChild

    >>> Navigieren Sie sich durch den Baum bis zum "initial"-Knoten.

  • Zugriff auf die Knotendaten>>> wurzel.childNodes[5]

    >>> wurzel.childNodes[5].childNodes[1]

    >>> wurzel.childNodes[5].childNodes[1].firstChild

    >>> wurzel.childNodes[5].childNodes[1].firstChild.nodeValueu'60.0'>>> wurzel.childNodes[5].nodeNameu'state'>>> wurzel.childNodes[5].nodeValue>>> Operationen:nodeName: Name des KnotensnodeValue: Wert des Knotens

  • Aufgabe>>> wurzel.childNodes[5]

    >>> wurzel.childNodes[5].childNodes[1]

    >>> wurzel.childNodes[5].childNodes[1].firstChild

    >>> wurzel.childNodes[5].childNodes[1].firstChild.nodeValueu'60.0'>>> wurzel.childNodes[5].nodeNameu'state'>>> wurzel.childNodes[5].nodeValue>>> Wie erhlt man den neuen Zustand, wenn im Zustand "2" die Eingabe "c" erfolgt. Bestimmen Sie diesen neuen Zustand mit geeigneten Navigations- und Zugriffsoperationen.

  • Zugriff auf die Attributwerte>>> wurzel.childNodes[5]

    >>> wurzel.childNodes[5].attributes

    >>> wurzel.childNodes[5].attributes.item(0)

    >>> wurzel.childNodes[5].attributes.item(0).nodeValueu'0'>>> wurzel.childNodes[5].attributes.item(0).nodeNameu'id'Operationen:attributes: Attributobjekteitem(...): Zugriff auf den ...-ten Knoten

  • Aufgabe>>> wurzel.childNodes[5]

    >>> wurzel.childNodes[5].attributes

    >>> wurzel.childNodes[5].attributes.item(0)

    >>> wurzel.childNodes[5].attributes.item(0).nodeValueu'0'>>> wurzel.childNodes[5].attributes.item(0).nodeNameu'id'Wie erhlt man den Attributwert des zweiten Zustands?

  • Bestimmung des Anfangszustandsfrom xml.dom.minidom import *

    dokument = parse("...")

    def anfangszustand(): wurzel = dokument.documentElement for knoten1 in wurzel.childNodes: if knoten1.nodeName == "state": for knoten2 in knoten1.childNodes: if knoten2.nodeName == "initial": return knoten1.attributes.item(0).nodeValue

    print anfangszustand()Pfad / Dateiname ergnzen!

  • Aufgabedef naechsterZustand(zustand, eingabe): ...

    # liefert den Folgezustand, wenn bei dem gegebenem Zustand die # Eingabe verarbeitet wird.

    def endzustand(zustand): ...

    # liefert den Wert True / False, wenn der eingegebene Zustand # ein / kein Endzustand istErgnzen Sie die Funktionsdefinitionen.

  • Lsungsvorschlgedef naechsterZustand(zustand, eingabe): wurzel = dokument.documentElement for knoten1 in wurzel.childNodes: if knoten1.nodeName == "transition": for knoten2 in knoten1.childNodes: if knoten2.nodeName == "from": hfrom = knoten2.firstChild.nodeValue if knoten2.nodeName == "to": hto = knoten2.firstChild.nodeValue if knoten2.nodeName == "read": hread = knoten2.firstChild.nodeValue if (hfrom == zustand) and (hread == eingabe): return hto return "?"def endzustand(zustand): wurzel = dokument.documentElement for knoten1 in wurzel.childNodes: if knoten1.nodeName == "state": if knoten1.attributes.item(0).nodeValue == zustand: for knoten2 in knoten1.childNodes: if knoten2.nodeName == "final": return True return False

  • Simulator# automatensimulator2.pyfrom xml.dom.minidom import *dokument = parse("D:/Python/XML/EmailDA1.jff")

    def anfangszustand(): ...def naechsterZustand(zustand, eingabe): ...def endzustand(zustand): ...

    def verarbeiten(zeichenkette): zustand = anfangszustand() for zeichen in zeichenkette: zustand = naechsterZustand(zustand, zeichen) if endzustand(zustand): return True else: return False

    # Testprint "[email protected]", verarbeiten("[email protected]")print "acb@bca", verarbeiten("acb@bca")

  • DOM-Schnittstelle"Das Document Object Model (DOM) ist eine Programmierschnittstelle (API) fr den Zugriff auf HTML- oder XML-Dokumente. Sie wird vom World Wide Web Consortium definiert.Im Sinne der objektorientierten Programmierung besteht das DOM aus einem Satz von Klassen zusammen mit deren Methoden und Attributen. Es erlaubt Computerprogrammen, dynamisch den Inhalt, die Struktur und das Layout eines Dokuments zu verndern."Siehe: http://de.wikipedia.org/wiki/Document_Object_ModelDOM-Knotenbaum

  • DOM-SchnittstelleAttribute der Klasse "Node":childNodes Returns a NodeList of child nodes for a nodefirstChild Returns the first child of a nodelastChild Returns the last child of a nodenextSibling Returns the node immediately following a nodenodeName Returns the name of a node, depending on its typenodeType Returns the type of a nodenodeValue Sets or returns the value of a node, depending on its typeparentNode Returns the parent node of a nodepreviousSibling Returns the node immediately before a node... (siehe: http://www.w3schools.com/dom/dom_node.asp)

  • Delphi-ImplementierungOpen XML is a collection of XML and Unicode tools and components for the Delphi/Kylix programming language. All packages are freely available including source code.Siehe: http://www.philo.de/xml/index.shtml

  • Delphi-AnwendungEine Delphi-basierte Implementierung eines Automatensimulators unter Verwendung von OpenXML finden Sie in den Materialien zum Weiterbildungslehrgang X:http://informatik.bildung-rp.de/weiterbildungsmaterial/lehrgang-x-2005-2008/kurs-4.htmlWeitere Hinweise zur Benutzung von OpenXML finden Sie hier:http://www.hsg-kl.de/faecher/inf/theorie/formal/xml/openxml/index.phpMit anderen gngigen Programmiersprachen kann man natrlich auch auf den DOM-Baum zugreifen. Wie das mit JavaScript geht wird hier gezeigt:http://www.w3schools.com/dom/dom_parser.asp

  • Teil 8XML im Informatikunterricht

  • Muss man das alles wissen?POPSQLOOARSAFTPGPLPBMRFCQbECRCXMLPostOfficeProtocolStructuredQueryLanguageObjektOrientierteAnalyseRivestShamirAdlemanFileTranferProtocolGeneralPublicLicensePortableBitMapRequestForCommentQueryByExampleCyclicRedundancyCheckeXtensibleMarkupLanguageL/S

  • Lehrplan fr das Grundfach Informatikfundamentale IdeeXMLunterrichtliche Umsetzung

  • Fundamentale Ideenfachliche BedeutungDarstellung mit formalen SprachenVermittelbarkeitEine fundamentale Idee bzgl. einer Gegenstandsbereichs ist ein Denk-, Handlungs-, Beschreibungs- oder Erklrungsschema, das in verschiedenen Gebieten des Bereichs vielfltig anwendbar oder erkennbar ist. (Horizontalkriterium) auf jedem intellektuellen Niveau aufgezeigt und vermittelt werden kann. (Vertikalkriterium) in der Entwicklung des Bereichs deutlich wahrnehmbar ist und lngerfristig relevant bleibt. (Zeitkriterium) einen Bezug zu Sprache und Denken des Alltags und der Lebenswelt besitzt. (Sinnkriterium)Vermittelbarkeitfachliche BedeutungVgl.: Schubert / Schwill: Didaktik der Informatik, S. 86 ffNach: J. S. Bruner: The Process of Education. 1960.

  • Fachgegenstand LerngegenstandFormale SprachenKlasse 1: Anwendung auch auerhalb der Informatik (Bsp.: Problemlsestrategie)Klasse 2: Charakteristisch fr alle Informatiksysteme (Bsp.: Komplexitt)Klasse 3: Relevant fr eine Klasse von Informatiksystemen (Bsp.: Datenstruktur)Klasse 4: Relevant fr ein spezielles System (Bsp.: Syntax einer Programmiersprache)Je weiter oben / unten ein Fachgegenstand in der Klassifikation eingeordnet werden kann, desto eher / weniger eignet er sich als Lerngegenstand.Nach P. Hubwieser: Didaktik der Informatik, S. 83 ffValidiererXMLODFInhaltliche Ausrichtung des Unterrichts an fundamentalen Fachkonzepten der Informatik

  • Problemorientierter UnterrichtGestaltung problemorientierter Lernumgebungen Situiert und anhand authentischer Probleme lernen: Lernen an aktuelle Probleme, authentische Flle oder persnliche Erfahrungen anknpfen. In multiplen Kontexten lernen: Gelerntes in unterschiedlichen Anwendungssituationen erproben. Unter multiplen Perspektiven lernen: Gelerntes unter verschiedenen Sichtweisen betrachten. In einem sozialen Kontext lernen: Probleme gemeinsam mit einem Partner oder in einer Gruppe bearbeiten. ...Siehe: Hense, Mandl, Grsel: Problemorientiertes Lernen. In. CuU 44/2001, S. 6ff.Orientierung an konkreten Problemstellungen bei der Gestaltung des Unterrichts.

  • Kompetenzorientierter UnterrichtKompetenz: erlernbare, kognitive Fhigkeit, bestimmte Probleme zu lsen bzw. die Bereitschaft, diese Fhigkeit in variablen Situationen verantwortungsvoll und erfolgreich zu nutzenEin Schler besitzt also dann Kompetenz, wenn er seine Fhigkeiten nutzen kann, auf vorhandenes Wissen zurckgreifen und sich auch neues Wissen beschaffen kann, zentrale Zusammenhnge des jeweiligen Faches versteht, angemessene Handlungsentscheidungen treffen kann, bei der Durchfhrung der Handlung auf verfgbare Fhigkeiten zurckgreift, diese Gelegenheiten zum Sammeln von Erfahrungen nutzt und aufgrund handlungsbegleitender Kognitionen gengend Motivation zu angemessenem Handeln hat.Siehe: Hense, Mandl, Grsel: Problemorientiertes Lernen. In. CuU 44/2001, S. 6ff.Kompetenzentwicklung erfordert handlungsorientierte Auseinandersetzung mit Fachkonzepten in geeigneten (speziellen) KontextenInformation zur Weiterverarbeitung in Informatiksystemen aufbereiten ... (Grundfach-LP)

  • ThesenXML ist heute schon Standard bei der strukturierten Darstellung von Information und sollte daher im IU thematisiert werden.XML ist die Basis von XHTML (DOCTYPE ...). Eine kurze Behandlung trgt zum vertieften Verstndnis von XHTML bei.XML ist ein guter Ausgangspunkt zur Behandlung des Themas "formale Sprachen" (Grammatik, Parser, ...).XML kann (im LK) als Ausgangspunkt zur Behandlung des Themas "Bume" genutzt werden.Mit XML knnen fundamentale Ideen der Informatik mit sehr aktuellen Unterrichtsbeispielen (WML, ...) behandelt werden ("IU am Puls der Zeit").

  • LiteraturhinweiseFolgende Materialien wurden hier benutzt:J.-C. Hanke: XML leicht & verstndlich. KnowWare.H. Vonhoegen: Einstieg in XML. Galileo Computing 2005.G. Born: XML. Markt+Technik 2005.M. Nf: Einfhrung in XML. http://www.swisseduc.ch/informatik/programmiersprachen/xml_einfuehrung/index.htmlM. Jeckle: Vorlesung XML. http://www.jeckle.de/vorlesung/xml/script.htmlXML in 10 Punkten: http://www.w3c.de/Misc/XML-in-10-Punkten.htmlSELFHTML: http://de.selfhtml.org/xml/index.htmWeitere benutzte Materialien sind auf den jeweiligen Folien zitiert.