Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informationsdarstellung mit XML Klaus Becker 2007.

Ähnliche Präsentationen


Präsentation zum Thema: "Informationsdarstellung mit XML Klaus Becker 2007."—  Präsentation transkript:

1 Informationsdarstellung mit XML Klaus Becker 2007

2 2 Ziele und Inhalte Informationsdarstellung mit XML Einblick in XML XML - ein Thema für den Informatikunterricht Informatikunterricht am Puls der Zeit Ein Blick hinter die Kulissen Grundlagen von XML Dokumenttypen und ihre Validierung XML-basierte Sprachen Exkurs: Namensräume, Formatierung,... Verarbeitung von XML-Dokumenten

3 3 Teil 1 Ein Blick hinter die Kulissen

4 4 Textverarbeitung Mit OpenOffice wurde ein Text über den Kölner Dom erstellt und anschließend in verschiedenen Ausgabeformaten abgespeichert...

5 5 Darstellung des Textes... als MS-Word-Datei (siehe "dom_koeln.doc"). Mit einem Text-Editor geöffnet sieht diese Datei so aus:

6 6 Darstellung des Textes... als OpenOffice-Datei (siehe "dom_koeln.odt"). Mit einem Text-Editor geöffnet sieht diese Datei noch unverständlicher aus.

7 7 Darstellung des Textes Wenn man die von OpenOffice erzeugte Datei "dom_koeln.odt" entpackt, klärt sich einiges (siehe "content.xml").

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

9 9 Erstellung von Struktogrammen Mit Hilfe von verschiedenen Struktogramm-Editoren wurde der Algorithmus zur Berechnung des ggT in Struktogrammform dargestellt: StruktEdit NSCEdit

10 10 Datei-Formate zur Darstellung StruktEdit-Datei betrachtet mit einem Hex-Editor NSCEdit-Datei betrachtet mit einem Text-Editor

11 11 Automatensimulator Das Simulationsprogramm JFlap wurde in den letzten Jahren mehrfach überarbeitet und weiterentwickelt. Insbesondere wurde auch das Speicherformat verändert. Zunächst sah dies so aus (JFlap40b8):

12 12 Automatensimulator In den neueren Versionen sieht das so aus (JFlap40b14):

13 13 Aufgabe Viele Programme speichern Daten heute im XML-Format. Um den Speicherbedarf zu verringern, werden die Daten zusätzlich komprimiert. Beispiel: GeoGebra Benennen Sie eine mit GeoGebra erstellte Datei (z. B. grenzwert_mit_streifen.ggb) geeignet um (grenzwert_mit_streifen.zip) und entpacken Sie sie. Schauen Sie sich die entpackte Datei mit einem Editor an.

14 14 Aufgabe Die Geschichte des Kölner Doms beginnt im Jahre 1248 mit der Grundsteinlegung für den Chor, der gigantisch war für mittelalterliche Maßstäbe. Es folgten der Abriss des alten Langhauses, die Arbeit an den Westtürmen - auch deren Ausmaße sprengten die damals üblichen Dimensionen. Allein diese Bauarbeiten dauern drei ganze Jahrhunderte, während derer man sich konsequent an die alten Baupläne hielt. Digital verschlüsselte Daten auf nicht beständigen Datenträgern wären zu dem Zeitpunkt längst unlesbar gewesen. Doch im 16. Jahrhundert kommen die Bauarbeiten am Großprojekt 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 plötzlich wieder Bewegung in das Projekt "Dom". Und noch immer existiert der mittelalterliche Bauplan. 600 Jahre ist er mittlerweile alt. Das Pergament brüchig, die Tinte vergilbt und - uncodiert. Und damit ohne jegliche Software oder Hardware lesbar. Wäre er digital gespeichert gewesen, wohl niemand hätte 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 visionärer mittelalterlicher Baumeister einst ausgedacht hat. (Quelle: Lesen Sie den unten abgebildeten Text. Vergleichen die Situation der Baumeister mit heutigen Nutzern von digital gespeicherter Information. Welche Vorteile bietet eine XML-basierte Darstellung?

15 15 Aufgabe Im Ordner "Material_Datenbank" finden Sie Daten aus einer Datenbank, die im XML-Format exportiert worden sind. Warum macht es Sinn, einen solchen Datenexport anzubieten? Deutschland Costa Rica 4: Muenchen Polen Ecuador 0: Gelsenkirchen...

16 16 Aufgabe Verschaffen Sie sich einen ersten Überblick über XML. Lesen Sie sich hierzu die Seite "XML in 10 Punkten" durch. 1. XML steht für strukturierte Daten 2. XML sieht ein wenig wie HTML aus 3. XML ist Text, aber nicht zum Lesen 4. XML ist vom Design her ausführlich 5. XML ist eine Familie von Techniken 6. XML ist neu, aber nicht so neu 7. XML überführt HTML in XHTML 8. XML ist modular 9. XML ist die Basis für RDF und das Semantic Web 10. XML ist lizenzfrei, plattformunabhängig und gut unterstützt siehe:

17 17 Datenrepräsentation bei Werkzeugen StruktEdit: proprietäres Format Repräsentieren Interpretieren Repräsentieren Interpretieren Eingabe: x, y SOLANGE y > 0 h := x mod y... NSCEdit: standardisiertes Format

18 18 Datenrepräsentation mit XML Eingabe: x, y SOLANGE y > 0 h := x mod y... NSCEdit: standardisiertes Format XML steht für Extensible Markup Language. XML wird benutzt, um Daten strukturiert darzustellen. Daten können auf ganz unterschiedliche Weise dargestellt und auch strukturiert werden. XML bietet eine Art Standard zur Strukturierung von Daten, den inzwischen sehr viele Werkzeuge nutzen.

19 19 Teil 2 Grundlagen von XML

20 20 Strukturierte Darstellung v. Information XML-Dokumente werden benutzt, um Information strukturiert darzustellen. fa Eingabe: x, y SOLANGE y > 0 h := x mod y GGT

21 21 Aufgabe Schauen Sie sich ein XML-Dokument mit einem geeigneten Browser an. Eingabe: x, y SOLANGE y > 0 h := x mod y GGT Anzeige mit einem Browser Darstellung im Editor

22 22 Hierarchische Baumstruktur Die Strukturierung erfolgt in Form eines Baumes. Eingabe: x, y SOLANGE y > 0 h := x mod y GGT Anzeige mit einem Browser

23 23 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). Das erste Element eines XML- Dokuments ist das Wurzelelement, das alle anderen Elemente in sich einschließt. Ein XML-Dokument vermischt also Inhalte mit Informationen über diese Inhalte (Meta-Information). Wurzelelement Element mit Zeicheninhalt Element als Container

24 24 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 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 leeres Element

25 25 Attribute 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

26 26 Kommentare Kommentare erleichtern das Verständnis und werden vom Browser mit angezeigt. fa Kommentar

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

28 28 Wohlgeformtheit Ein XML-Dokument, das alle syntaktischen Bedingungen erfüllt, heißt wohlgeformt. wohlgeformte XML-Dokumente beachte: Nur wohlgeformte XML- Dokumente werden vom Browser in Baumform angezeigt.

29 29 Aufgabe Versuchen Sie, nicht-wohlgeformte XML-Dokumente mit dem Browser anzuzeigen. Testen Sie verschiedene Fälle: - die Tag-Namen stimmen nicht exakt überein - die Klammerung ist nicht korrekt - der Attributwert fehlt / ist nicht in Anführungszeichen geschrieben...

30 30 Aufgabe Was geschieht, wenn man die Elementstruktur verändert. Lassen Sie gezielt Tags weg bzw. verändern Sie gezielt die Baumstruktur, ohne gegen die Syntaxregeln von XML zu verstoßen. Eingabe: x, y SOLANGE y > 0 h := x mod y weglassen

31 31 Aufgabe Versuchen Sie, eine neue Anweisung im Struktogramm zur Berechnung des GGT einzufügen (z. B. die Zuweisung h := 0 nach der Eingabe). Benutzen Sie aber nicht die Struktogramm-Editoren, sondern versuchen Sie es direkt im "Quelltext". Öffnen Sie anschließend den Quelltext mit dem entsprechenden Struktogrammeditor. Welche Unterschiede zeigen sich zwischen den verschiedenen Datenformaten? Vergleichen Sie mit der Situation beim Bau des Kölner Doms.

32 32 Aufgabe Eine Bank möchte Daten von Überweisungen mit Hilfe von XML strukturiert darstellen. Entwerfen Sie ein passendes XML-Dokument.

33 33 Aufgabe Entwickeln Sie ein XML-Dokument, mit dem man Informationen über eine Schulklasse / ein Lehrerkollegium erfassen kann.

34 34 Aufgabe Graphen treten in sehr vielen Anwendungen auf. Entwickeln Sie ein XML- Dokument, mit dem man die Graph-Daten strukturiert darstellen kann. TR KO RB BI KL AZ MZ FT SP

35 35 Teil 3 Dokumenttypen und ihre Validierung

36 36 Ungültige Dokumentenstruktur Wenn man das Element zur Darstellung der Struktogramm- überschrift weglässt, 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 präzise beschrieben werden kann.

37 37 Dokumenttyp Wir betrachten als erstes Beispiel XML-Dokumente zur (vereinfachten) Beschreibung eines Lehrerkollegiums. Meier Christiane mei Deutsch Erdkunde Schmitt Thomas sch Latein Musik Philosophie Müller Katharina mue Mathematik Informatik Ein Kollegium besteht aus Lehrerinnen und Lehrern (mindestens eine / einer). Im Folgenden werden mit "Lehrer" auch Lehrerinnen erfasst. Jeder Lehrer hat einen Namen und Vornamen. Jedem Lehrer ist ein Kürzel zugeordnet. Jeder Lehrer unterrichtet mindestens ein Fach. Ein Lehrer kann eine oder mehrere - Adressen angeben. Beschreibung des Kontextes

38 38 Dokumenttyp Meier Christiane mei Deutsch Erdkunde Schmitt Thomas sch Latein Musik Philosophie Müller Katharina mue Mathematik Informatik Das Wurzelelement hat den Namen "kollegium". Ein Element vom Typ "kollegium" besteht aus mindestens einem Element vom Typ "lehrer". Ein Element vom Typ "lehrer" besteht aus - einem Element vom Typ "name", - einem Element vom Typ "vorname", - einem Element vom Typ "kuerzel", - mindestens e. Element v. Typ "fach" - beliebig viel. Elementen v. Typ " ". Zudem hat ein Element vom Typ "lehrer" das Attribut "geschlecht". Ein Element vom Typ "name" besteht aus Zeichen.... informelle Beschreibung des Dokumenttyps

39 39 Dokumenttypdefinition Meier Christiane mei Deutsch Erdkunde Das Wurzelelement hat den Namen "kollegium". Ein Element vom Typ "kollegium" besteht aus mindestens einem Element vom Typ "lehrer". Ein Element vom Typ "lehrer" besteht aus - einem Element vom Typ "name", - einem Element vom Typ "vorname", - einem Element vom Typ "kuerzel", - mindestens e. Element v. Typ "fach" - beliebig viel. Elementen v. Typ " ". Zudem hat ein Element vom Typ "lehrer" das Attribut "geschlecht". Ein Element vom Typ "name" besteht aus Zeichen.... formale Beschreibung des Dokumenttyps informelle Beschreibung des Dokumenttyps

40 40 Dokumenttypdefinition Eine Dokumenttypdefinition beschreibt die Struktur eines Dokuments mit Hilfe einer Grammatik, die in Form von Deklarationen beschrieben wird. Meier Christiane mei Deutsch Erdkunde Eine Dokumenttypdefinition (DTD) legt eine Klasse von Dokumenten fest, die alle vom gleichen Typ sind.

41 41 Einbindung einer DTD interne 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. ... externe DTD

42 42 Deklaration von Elementen Elementtyp-Deklaration OperatorBedeutung ()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

43 43 Inhaltsmodelle InhaltsmodellBeschreibung ElementinhaltDas Element enthält ausschließlich Unterelemente #PCDATADas Element enthält nur Zeichendaten gemischter InhaltDas Element kann Zeichendaten und Unterelemente enthalten EMPTYDas Element hat keinen Inhalt Frau Christine Meier Sport ANYDas Element hat beliebige Inhalte haben.

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

45 45 Gültigkeit Ein XML-Dokument, das alle Bedingungen einer DTD erfüllt, heißt gültig bzw. valide. Meier Christiane mei Deutsch Erdkunde Ein gültiges XML-Dokument muss auch wohlgeformt sein. Gültigkeit bezieht sich immer auf eine spezielle Strukturbeschreibung (hier in Form einer DTD).

46 46 Validierung Die Gültigkeit eines XML-Dokuments kann mit einem sog. XML-Parser überprüft werden. Ein XML-Parser ist ein Programm, das überprüft, ob das XML-Dokument die von der angegebenen DTD geforderte Struktur hat.

47 47 Validierung Viele XML-Editoren haben XML-Parser integriert. Open XML Editor

48 48 Aufgabe Erweitern Sie die DTD zur Beschreibung von Lehrerkollegien. Die Lehrer- Daten sollen um Adressangaben ergänzt werden. Validieren Sie das erweiterte XML-Dokument. Testen Sie insbesondere interne und auch externe DTD.

49 49 Aufgabe Wir betrachten XML-Dokumente zur Beschreibung von Graphen. Entwickeln Sie jeweils passende DTD. TR KL... TR KL 116 KL TR

50 50 Aufgabe Entwickeln Sie eine DTD für Automatenbeschreibungen. Die von JFlap erzeugten XML-Beschreibungen sollen dabei als gültig erkannt werden.

51 51 Aufgabe Entwickeln Sie eine DTD für Struktogramme. Die von NSCEdit erzeugten XML-Beschreibungen sollen dabei als gültig erkannt werden.

52 52 Aufgabe Entwickeln Sie eine DTD für vereinfachte HTML-Dokumente. Dabei sollen HTML-Dokumente wie das folgende als gültig erkannt werden. Gehen Sie schrittweise vor. Beginnen Sie mit sehr einfachen Dokumenten wie in "MyXHTML0.xml". IFB Weiterbildung am IFB Die Arbeit findet normalerweise in einem der Rechnerräume des IFB statt. Untergebracht wird man in dem schönen neuen S-Bau. Zurück

53 53 Teil 4 XML-basierte Sprachen

54 54 Sprachen Sprachen sind Zeichensysteme, die u. a. für Kommunikation genutzt werden. Ido esas internaciona linguo kun poka polisemio sate konciza kreita da Louis de Beaufront en 1907 kom Esperanto reformita, adoptita internacione en Paris ye oktobro 1907, kom idiomo helpanta internaciona, da la Delegitaro (Délégation pour ladoption dune langue auxiliaire internationale). x ⁢ x + 4 = 0

55 55 Lexik, Syntax, Semantik, Pragmatik Aspekte von Sprachen: Pragmatik: Lehre von der Verwendung sprachlicher Konstrukte in Handlungssituationen Semantik: Bedeutungslehre Bedeutung von Wörtern, Sätzen,... Syntax: Lehre vom Satzbau Regeln, nach denen Sätze gebildet werden Lexik: Lehre vom Wortschatz Gesamtheit der Wörter der Sprache

56 56 XML-Vokabulare ] > Regeln zur Festlegung der Lexik und Syntax von MyHTML XML ermöglicht es, mit Hilfe von DTD neue Sprachen formal festzulegen. Solche Sprachen werden auch XML-Vokabulare genannt. Die DTD ist die Grammatik des zugehörigen 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 ursprünglich von Niklaus Wirth zur Darstellung der Syntax der Programmiersprache Pascal eingeführt wurde. Sie ist eine formale Metasyntax (Metasprache), die benutzt wird, um kontextfreie Grammatiken darzustellen." (wikipedia)

57 57 XHTML Weiterbildungskurse am IFB Weiterbildung am IFB Die Arbeit findet normalerweise in einem der Rechnerräume des IFB statt.... Zurück DTD zur Festlegung der Lexik und Syntax von XHTML Browser als Interpreter: Semantik von XHTML XHTML ist die XML-konforme Neufassung von HTML.

58 58 Aufgaben Aufgabe 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 können auch nach dem Stichwort "Quirks-Modus" suchen.

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

60 60 Aufgaben Aufgabe 1 Testen Sie zunächst, 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.

61 61 MathML c = a 2 + b 2 "Die Mathematical Markup Language (MathML) ist im Computer-Datenverkehr ein Dokumentenformat zur Darstellung mathematischer Formeln und komplexer Ausdrücke. 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 unabhängig von ihrer graphischen Gestaltung abgelegt." (wikipedia)

62 62 Aufgaben Aufgabe 1 Testen Sie zunächst, ob ihr Browser MATHML-Dateien anzeigt. Wenn Sie Firefox benutzen, müssen Sie evtl. weitere Zeichensätze 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?

63 63 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 veränderlicher Inhalte auf Mobiltelefonen entwickelt worden." (wikipedia) Die Fortbildung "Information und ihre Darstellung" findet im Raum 01 statt.

64 64 Aufgaben Aufgabe 1 Informieren Sie sich in der mitgelieferten WML-Kurzeinführung, wie WML- Dokumente aufgebaut werden. Erstellen Sie auch eine einfache WML-Datei. Laden Sie diese Daten in den WAP-Browser: [Enter Adress][file:///...:/.../.../ifb.wml] Aufgabe 2 Sie können Firefox dazu bringen, WML-Dateien anzuzeigen. Hierzu müssen Sie nur ein zusätzliches Add-on installieren. Sie finden es hier: "https://addons.mozilla.org/en-US/firefox/addon/62" Zusätzlich müssen Sie folgende Einstellung vornehmen: "Lokale Dateien mit Endung ".wml" als WML laden"

65 65 SMIL "Synchronized Multimedia Integration Language (SMIL; Aussprache wie engl. smile) ist ein auf XML basierender, von dem World Wide Web Consortium (W3C) entwickelter Standard für eine Auszeichnungssprache für zeitsynchronisierte, multimediale Inhalte. SMIL ermöglicht die Einbindung und Steuerung von Multimedia-Elementen wie Audio, Video, Text und Grafik in Webseiten." (wikipedia)

66 66 Aufgaben Aufgabe 1 Informieren Sie sich auf Seiten über SMIL und erstellen Sie einfache SMIL-Dateien. Zur Darstellung können Sie den QickTimePlayer benutzen.

67 67 DocBook Ein sehr einfaches Buch Kapitel Hallo Welt! "DocBook ist ein Dokumentenformat, das in einer für SGML und XML vorliegenden Dokumenttypdefinition (DTD) festgelegt ist. Es eignet sich besonders zur Erstellung von Büchern, Artikeln und Dokumentationen im technischen Umfeld (Hardware oder Software). DocBook ist ein offener Standard, der von der Organization for the Advancement of Structured Information Standards (OASIS) gepflegt wird." (wikipedia)

68 68 Aufgaben Aufgabe 1 Informieren Sie sich auf den Seiten über DocBook und erstellen Sie einfache DocBook-Dateien. Aufgabe 2 DocBook-Dateien lassen sich mit OpenOffice erzeugen und einlesen. Mehr hierüber findet man hier:

69 69 Aufgabe Weitere XML-basierte Sprachen, denen man häufig begegnet, sind RSS und RDF. Informieren Sie sich, wo diese Sprachen eingesetzt werden.

70 70 Aufgabe Auf der Seite finden Sie eine Übersicht über standardisierte XML-Vokabulare. Werfen Sie einen Blick auf diese Seite, um zu erahnen, wo weitere Anwendungsgebiete von XML liegen.

71 71 Teil 5 Exkurs: Namensräume, Formatierung, Strukturbeschreibung

72 72 Probleme Wie kann man mehrere XML-Dokumente zusammenführen, ohne Namenskonflikte zu erhalten? Wie kann man XML-Dokumente formatieren? Wie kann man die Struktur von XML-Dokumenten noch adäquater beschreiben?...

73 73 Exkurs: Namensräume Beispiel 1: Test Überschrift Absatz Test Überschrift Absatz Namensraum: Ansammlung von Namen für Elemente und Attribute

74 74 Exkurs: Namensräume Beispiel 2: Überschrift Absatz Test Überschrift Absatz Namensraumdeklaration URI als weltweit eindeutiger BezeichnerPräfix als Kurzorm

75 75 Exkurs: Namensräume Beispiel 3: Die Funktion f mit f x = x heißt Wurzelfunktion. mehrere Namensräume

76 76 Exkurs: Namensräume "In Dokumenten, die unterschiedliches Markup-Vokabular enthalten, können Probleme mit der Erkennung und Kollisionen auftreten. Software- Module müssen die Tags und Attribute erkennen, für deren Verarbeitung sie geschaffen wurden, auch im Fall einer Kollision, wenn Markup, das für 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-Namensräume, der diese Anforderungen erfüllt. Ein XML-Namensraum ist eine Zusammenstellung von Namen, identifiziert durch einen URI-Verweis, die in XML-Dokumenten als Elementtypen und Attributnamen verwendet werden." aus: Namensräume in XML.

77 77 Exkurs: Formatierung Beispiel 1: XML XML steht für Extensible Markup Language und wird benutzt, um Daten strukturiert darzustellen. keine Formatierungsangabe

78 78 Exkurs: Formatierung Beispiel 2: XML XML steht für Extensible Markup Language und wird benutzt, um Daten strukturiert darzustellen. Formatierung mit CSS ueberschrift{ color: blue; font-weight: bold; } definition{ color: green; } style.css

79 79 Exkurs: Formatierung Beispiel 3: XML XML steht für Extensible Markup Language und wird benutzt, um Daten strukturiert darzustellen. XML Formatierung mit XSLT style.xsl

80 80 Exkurs: Formatierung XML XSLT steht für Extensible Stylesheet Language Transformations. XSLT ist eine Sprache zur Transformation von XML-Dokumenten in andere XML- Dokumente, z. B. XHTML-Dokumente. Für weitere Informationen und Beispiele siehe z. B.:

81 81 Exkurs: XML-Schema Meier Christiane 1981 mei Deutsch Erdkunde Schmitt Thomas 1975 sch Latein Musik Philosophie... Beispiel 1: Strukturbeschreibung mit einer DTD

82 82 Exkurs: XML-Schema Meier Christiane 1981 mei Deutsch Erdkunde Schmitt Thomas 1975 sch Latein Musik Philosophie... Nachteile von DTD: zu unflexibel Strukturbeschreibung mit einer DTD Datentyp: integer Anzahl der Fächer: max. 4

83 83 Exkurs: XML-Schema Meier Christiane 1981 mei Deutsch Erdkunde Schmitt Thomas 1975 sch Latein Musik Philosophie... Beispiel 2: Strukturbeschreibung mit einem XML-Schema xsi: XML-schema-instance

84 84 Exkurs: XML-Schema Lehrerkollegium Beispiel 2: Schema-Definition mit e. XML-basierten Sprache

85 85 Exkurs: XML-Schema Validierung: z. B. mit

86 86 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. 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"." siehe:

87 87 Teil 6 Verarbeitung von XML-Dokumenten

88 88 Verarbeitung von XML-Dokumenten Die 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 Gültigkeit zu überprüfen 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.

89 89 Beispiel: Browser Test Weiterbildung am IFB... Grafische Aufbereitung (Festlegung der Semantik) Syntax- Analyse OK! Parser Anwendung

90 90 Beispiel: Automatensimulator fa c... Simulation Syntax- Analyse OK! Parser Anwendung Eingabewort: Ergebnis: ok!

91 91 Zielsetzung Um einen Einblick in die Verarbeitung von XML-Dokumenten zu gewinnen, soll hier ein eigener Automatensimulator entwickelt werden, der XML- Automatenbeschreibungen verarbeiten kann. Simulator Ok! fa c...

92 92 Vorgehensweise Schritt 1: Strukturbaum erzeugen Schritt 2: Auf die Knoten des Strukturbaums zugreifen fa state x #text: 60.0 type #text: fa #comment: #document Id: 0 y #text: 59.0 initial #comment: structure

93 93 fa Erzeugung des Strukturbaums state x #text: 60.0 type #text: fa #comment: #document Id: 0 y #text: 59.0 initial #comment: structure Zunächst 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(".../ DA1.jff") >>> dokument Python DOM: Document Object Model (W3C-Standard)

94 94 Zugriff auf den Wurzelknoten Dokument- knoten >>> from xml.dom.minidom import * >>> dokument = parse(".../ DA1.jff") >>> dokument >>> wurzel = dokument.documentElement >>> wurzel Wurzelknoten state x #text: 60.0 type #text: fa #comment: #document Id: 0 y #text: 59.0 initial #comment: structure Wurzel- knoten

95 95 Aufgabe >>> from xml.dom.minidom import * >>> dokument = parse(".../ DA1.jff") >>> dokument >>> wurzel = dokument.documentElement >>> wurzel >>> wurzel.nodeName u'structure' Testen Sie die Erzeugung des DOM-Objekts. Achten Sie darauf, den Pfad zur XML-Datei richtig einzugeben.

96 96 Attribut- knoten Navigation im Strukturbaum state x #text: 60.0 type #text: fa #comment: #document y #text: 59.0 initial #comment: structure state PreviousSibling LastChild ParentNode NextSibling Operationen: Grafik aus: Introducing the Document Object Model using OpenXML (Part 1) by Craig Murphy Text- knoten Dokument- knoten Element- knoten Id: 0 Id: 1 FirstChild

97 97 Navigation im DOM-Baum Achtung: Zeilenumbrüche und Leerzeichen zwischen Tags werden mit zusätzlichen Text-Knoten erfasst. >>> wurzel.firstChild >>> wurzel.firstChild.nextSibling >>> wurzel.firstChild.nextSibling.nextSibling >>> wurzel.firstChild.nextSibling.nextSibling.nextSibling

98 98 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.

99 99 >>> wurzel.childNodes [,, ] >>> wurzel.childNodes[2] >>> wurzel.childNodes[3] >>> wurzel.childNodes[5] >>> wurzel.childNodes[5].firstChild >>> Navigation im DOM-Baum

100 100 >>> wurzel.childNodes [,, ] >>> wurzel.childNodes[2] >>> wurzel.childNodes[3] >>> wurzel.childNodes[5] >>> wurzel.childNodes[5].firstChild >>> Aufgabe Navigieren Sie sich durch den Baum bis zum "initial"-Knoten.

101 101 >>> wurzel.childNodes[5] >>> wurzel.childNodes[5].childNodes[1] >>> wurzel.childNodes[5].childNodes[1].firstChild >>> wurzel.childNodes[5].childNodes[1].firstChild.nodeValue u'60.0' >>> wurzel.childNodes[5].nodeName u'state' >>> wurzel.childNodes[5].nodeValue >>> Zugriff auf die Knotendaten Operationen: nodeName: Name des Knotens nodeValue: Wert des Knotens

102 102 >>> wurzel.childNodes[5] >>> wurzel.childNodes[5].childNodes[1] >>> wurzel.childNodes[5].childNodes[1].firstChild >>> wurzel.childNodes[5].childNodes[1].firstChild.nodeValue u'60.0' >>> wurzel.childNodes[5].nodeName u'state' >>> wurzel.childNodes[5].nodeValue >>> Aufgabe Wie erhält man den neuen Zustand, wenn im Zustand "2" die Eingabe "c" erfolgt. Bestimmen Sie diesen neuen Zustand mit geeigneten Navigations- und Zugriffsoperationen.

103 103 >>> wurzel.childNodes[5] >>> wurzel.childNodes[5].attributes >>> wurzel.childNodes[5].attributes.item(0) >>> wurzel.childNodes[5].attributes.item(0).nodeValue u'0' >>> wurzel.childNodes[5].attributes.item(0).nodeName u'id' Zugriff auf die Attributwerte Operationen: attributes: Attributobjekte item(...): Zugriff auf den...-ten Knoten

104 104 >>> wurzel.childNodes[5] >>> wurzel.childNodes[5].attributes >>> wurzel.childNodes[5].attributes.item(0) >>> wurzel.childNodes[5].attributes.item(0).nodeValue u'0' >>> wurzel.childNodes[5].attributes.item(0).nodeName u'id' Aufgabe Wie erhält man den Attributwert des zweiten Zustands?

105 105 from 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() Bestimmung des Anfangszustands Pfad / Dateiname ergänzen!

106 106 def 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 ist Aufgabe Ergänzen Sie die Funktionsdefinitionen.

107 107 def 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 "?" Lösungsvorschläge 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

108 108 # automatensimulator2.py from xml.dom.minidom import * dokument = parse("D:/Python/XML/ DA1.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 # Test print print Simulator

109 109 DOM-Schnittstelle "Das Document Object Model (DOM) ist eine Programmierschnittstelle (API) für den Zugriff auf HTML- oder XML-Dokumente. Sie wird vom World Wide Web Consortium definiert. 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 verändern." Siehe: ument_Object_Model DOM-Knotenbaum state x #text: 60.0 type #text: fa #comment: #document y #text: 59.0 initial #comment: structure state PreviousSibling LastChild ParentNode NextSibling Id: 0 Id: 1 FirstChild

110 110 DOM-Schnittstelle Attribute der Klasse "Node": childNodes Returns a NodeList of child nodes for a node firstChild Returns the first child of a node lastChild Returns the last child of a node nextSibling Returns the node immediately following a node nodeName Returns the name of a node, depending on its type nodeType Returns the type of a node nodeValue Sets or returns the value of a node, depending on its type parentNode Returns the parent node of a node previousSibling Returns the node immediately before a node... (siehe: state x #text: 60.0 type #text: fa #comment: #document y #text: 59.0 initial #comment: structure state PreviousSibling LastChild ParentNode NextSibling Id: 0 Id: 1 FirstChild

111 111 Delphi-Implementierung Open 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:

112 112 Delphi-Anwendung Eine Delphi-basierte Implementierung eines Automatensimulators unter Verwendung von OpenXML finden Sie in den Materialien zum Weiterbildungslehrgang X: Weitere Hinweise zur Benutzung von OpenXML finden Sie hier: Mit anderen gängigen Programmiersprachen kann man natürlich auch auf den DOM-Baum zugreifen. Wie das mit JavaScript geht wird hier gezeigt:

113 113 Teil 7 XML im Informatikunterricht

114 114 Thesen XML 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 trägt zum vertieften Verständnis von XHTML bei. XML ist ein guter Ausgangspunkt zur Behandlung des Themas "formale Sprachen" (Grammatiken, Parser,...). XML kann (im LK) als Ausgangspunkt zur Behandlung des Themas "Bäume" genutzt werden. Mit XML können fundamentale Ideen der Informatik mit sehr aktuellen Unterrichtsbeispielen (WML,...) behandelt werden ("IU am Puls der Zeit").

115 115 Literaturhinweise Folgende Materialien wurden hier benutzt: J.-C. Hanke: XML leicht & verständlich. KnowWare. H. Vonhoegen: Einstieg in XML. Galileo Computing G. Born: XML. Markt+Technik M. Näf: Einführung in XML. M. Jeckle: Vorlesung XML. XML in 10 Punkten: SELFHTML: Weitere benutzte Materialien sind auf den jeweiligen Folien zitiert.


Herunterladen ppt "Informationsdarstellung mit XML Klaus Becker 2007."

Ähnliche Präsentationen


Google-Anzeigen