260 likes | 404 Views
JAVA und XML Programmierpraktikum. XML 1.0 / Namespaces Von Markus Lucht & Timo Stollenwerk. Inhalt. Einführung (Markus) XML 1.0 (Timo) Namespaces (Markus). Komponenten eines Dokumentes. Ein Dokument besteht aus 3 Teilen: Inhalt (Text, Bilder) Informationen zur (visuellen) Darstellung
E N D
JAVA und XML Programmierpraktikum XML 1.0 / Namespaces Von Markus Lucht & Timo Stollenwerk
Inhalt • Einführung (Markus) • XML 1.0 (Timo) • Namespaces (Markus)
Komponenten eines Dokumentes • Ein Dokument besteht aus 3 Teilen: • Inhalt (Text, Bilder) • Informationen zur (visuellen) Darstellung • Struktur des Textes (Aufteilung in Kapitel, Abschnitte ...)
Darstellung von Dokumenten(1) Zwei Ansätze zur Dartellung: • WYSIWYG (What You See Is What You Get, ca. 1984) • Erlaubte erstmals eine identische Darstellung von Text auf Papier und auf dem Bildschirm • Die Arbeitsweise orientiert sich fast nur am Layout, an der Formatierung und an der Darstellung des Texts • Problem, wenn ein anderes Ausgabemedium als Papier gewählt wird
Darstellung von Dokumenten(2) • generic coding (1967 W. Tunnicliffe) • Idee: Struktur und die logischen Informationen bleiben erhalten generic markup (ende der 60er S. Rice) • generic markup konzentriert sich daraufAuszeichnungen in den Text einzubringen, die eine Aussage über die Bedeutung der markierten Textstelle machen
Enstehung von GML und SGML Weiteres Konzept: der Dokumenttyp • der Dokumenttyp beschreibt eine Klasse von Dokumenten, die sich in ihrem strukturellem Aufbau gleichen Enstehung von GML und SGML • Auf den o.g. Ideen entwickelten 1969 C. Goldfarb, E. Mosher und R. Lorie bei IBM die Generalized Markup Language (GML) • Erstmals das Konzept eines formal def. Dokumenttyps mit verschachtelter Struktur • Dokumente enthalten Informationen über den Text (Meta-Daten) • Vorteil: Unabhängigkeit vom Ausgabemedium, da keine Formatierungsanweisungen gespeichert werden • 1984 wird SGML (S:Standardized) als ISO-Standard veröffentlicht
XML ist SGML für das WWW • Man suchte nach einem Kompromiss zwischen zu viel Komplexität (SGML, was das WWW angeht) und zu wenig Gestaltungsmöglichkeiten (HTML) • Lösung: XML (=Extensible Markup Language) 1.Recommendation 1998 durch das W3C • XML kann mehr als HTML, da: (1) man beliebige Elemente verwenden kann (OO hieße das Äquivalent „abstrakte Datentypen“) (2) XML ist eine Metasprache (Sprachbeschreibungssprache), HTML eine Strukturbeschreibungssprache für Web-Dokumente • XML ist als Teilmenge von SGML nicht so komplex
Vor- und Nachteile von XML Vorteile: • Offenes Format (XML-Standard ist offen zugänglich) • Systemunabhängigkeit (unabhängigkeit von Betriebs-/Computersystem) • Medienneutral (unabhängig vom Ausgabeformat) • Anpassbar (kein starres Format) Nachteile: • Hoher Initialaufwand • Laufende Entwicklung
Entwurfsziele (1) • XML soll sich im Internet auf einfache Weise nutzen lassen • XML soll ein breites Spektrum von Anwendungen unterstützen • XML soll zu SGML kompatibel sein • Es soll einfach sein, Programme zu schreiben, die XML-Dokumente verarbeiten • Die Zahl optionaler Merkmale soll minimal sein, idealerweise Null
Entwurfsziele (2) • XML-Dokumente sollen für Menschen lesbar und angemessen verständlich sein • Der XML-Entwurf sollte zügig abgefasst sein • Der Entwurf von XML soll formal und präzise sein • XML-Dokumente sollen leicht zu erstellen sein • Knappheit von XML-Markup ist von minimaler Bedeutung
XML als Markierungssprache • XML ist eine Markierungssprache • XML dient der Strukturierung und Beschreibung von Daten • XML trennt den Inhalt von der Formatierung <?xml version="1.0"?> <memo> <from>Mir</from> <to>Jemand</to> <subject>Ein Text</subject> <body>Hallo!</body> </memo>
Struktur von XML-Dokumenten Ein Dokument ist ein XML-Dokument, wenn es wohlgeformt ist, genügt es bestimmten weiteren Beschränkungen, kann es gültig sein. Wohlgeformt (well formed): • Logische Struktur ist korrekt • Alle Wohlgeformtheitsbeschränkungen sind erfüllt Gültig (valid): • Passende DTD (Dokumenttyp-Deklaration) • Beschränkungen der DTD sind eingehalten
XML als Baumstruktur KURSZETTEL DATUM KURS KUERZEL PLATZ WERT
Wohlgeformtes XML-Dokument <?xml version="1.0"?> <!DOCTYPE KURSZETTEL SYSTEM "kurse.dtd"> <KURSZETTEL> <DATUM VALUE="2.3.2001"/> <KURS DATUM="HEUTE"> <KUERZEL>DBK</KUERZEL> <PLATZ>FSE</PLATZ> <WERT WAEHRUNG="DEM">58,880</WERT> </KURS> </KURSZETTEL>
DTD: Kurse.dtd <?xml encoding="US-ASCII"?> <!ELEMENT KURSZETTEL (DATUM?, KURS*)> <!ELEMENT DATUM EMPTY> <!ATTLIST DATUM VALUE CDATA #REQUIRED> <!ELEMENT KURS (KUERZEL, WERT)> <!ATTLIST KURS DATUM (HEUTE|GESTERN) #IMPLIED> <!ELEMENT KUERZEL ANY> <!ELEMENT WERT ANY> <!ATTLIST WERT WAEHRUNG CDATA #IMPLIED> <!ENTITY Euro "EUR"> <!ENTITY Mark "DEM">
Logische Struktur • Prolog: Spezifikation über den Dokumenttyp • XML-Deklaration / Dokumenttyp- Deklaration <?xml version="1.0"?> <!DOCTYPE KURSZETTEL SYSTEM "kurse.dtd"> • Element: eigentlicher Inhalt des Dokuments • Das Dokument-Element enthält alle Daten <KURSZETTEL>...</KURSZETTEL> • Beliebige Anzahl verschachtelter Unterelemente <KUERZEL>DBK</KUERZEL><PLATZ>FSE</PLATZ>
Physikalische Struktur • Besteht aus dem gesamten Inhalt des Dokumentes • Dokument wird in Entities (Speichereinheiten) unterteilt • Dokument-Entitie ist die Anlaufstelle für Parser • Analysierte / nicht analysierte Daten
Namespaces(1) Problem: Bei XML-Anwendungen kann es durch die Verwendung von Elementen und Attributen (=Markup-Vokabular) zu folgenden Problemen kommen (besonders bei Softwarewiederverwendung): - Mehrdeutigkeit - Namenskollisionen
Namespaces(2) Lösung: Dokumentkonstrukte sollten einzigartige Namen haben, deren Geltungsbereich über den des beinhaltenden Dokuments hinausgeht. XML-Namespaces ist ein Mechanismus, der diese Anforderungen erfüllt. Namespaces erreichten die W3C-Recommendation am 14.01.99
Deklaration Namespacedeklarationen bestehen aus einem reservierten Bezeichner : xmlns und seinem Wert, der URI. Die URI ist oft eine URL, welche auf eine DTD verweist. <x xmlns=„http://www.eineAdresse.de/egal.dtd“ </x>
Geltungsbereich für Namespaces(1) • Namespace-Deklarationen haben einen Geltungsbereich wie Variablendeklarationen in Programmiersprachen. • Die Namespace-Deklaration gilt für das Element, in dem sie angegeben ist und für alle Elemente im Inhalt dieses Elements (Kinder-Elemente), es sei denn, sie wird durch eine andere Namespace-Deklaration überschrieben • Man unterscheidet zwei Arten: default und qualified
Geltungsbereich für Namespaces(2) Default: Alle unqualifizierten Namen innerhalb des Wirkungsbereichs der Deklaration gehören automatisch zum default-namespace <Kapitel xmlns=„http://www.irgendeinURI.com/1.dtd> <Titel groesse =„10“>Namespaces</Title> <Autor>M.L.</Autor> <Inhalt> ... Nun eine Tabelle <table xmlns=http://www.w3.org/...html40> <tr> <td>Hallo</td> </tr> </table> </Inhalt> </Kapitel>
Geltungsbereich für Namespaces(3) Qualified: Namespaces werden am Anfang eines Dokumentes deklariert und erst bei Gebrauch qualifiziert <Messungen xmlns=„urn:daten-messungen“ xmlns:units=„urn:daten-units“ xmlns:prop=„urn:daten-props“> <Lufttemp units:unit=„Celsius“>86</Lufttemp> <Tank> <prop:Volumen units:unit=„liter“> 120 </prop:Volumen> </Tank> </Messungen>
Beispiel: Qualified Namespaces Namespace Namespace Katalog.dtd Order.dtd ... ... <..Buch..> <..Preis..> xmlns:Kat:=„Katalog.dtd“ xmlns:Order=„Order.dtd“ <Kat:Buch> ... Dokument <Order:Preis> ...
Einzigartigkeit von Attributen Es sollte kein Tag geben, das zwei Attribute enthält, die: (1) identische Namen haben, oder (2) Qualified Names mit dem gleichen lokalen Namensteil haben und mit Präfixen, die mit Namespacenamen verbunden sind, die Identisch sind (Der voreingestellte Namensraum gilt nicht für Attribute)
Literaturangaben • Extensible Markup Language (XML) 1.0 / Empfehlung des W3C, 10. Februar 1998 • Die Sprachen des Web: HTML & XHTML Robert Tolksdorf; dpunkt-Verl.,2000 • Java & XML Brett McLaughlin, O‘Reilly, 2001 • IX / Magazin für Professionelle Informationstechnik, Juni 2001 • Seminar „Erweiterung von XML – Namespaces“ / Humboldt-Universität zu Berlin (Becker/Zubow) • XML in der Praxis Behme,Mintert, Addison-Wesley