Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Anmerkungen zu XML Entwicklung/Anspruch von XML Character Data DTD vs. Schemata XSL vs. CSS Prof. Dr. Manfred Sommer Fachbereich Mathematik und Informatik.

Ähnliche Präsentationen


Präsentation zum Thema: "Anmerkungen zu XML Entwicklung/Anspruch von XML Character Data DTD vs. Schemata XSL vs. CSS Prof. Dr. Manfred Sommer Fachbereich Mathematik und Informatik."—  Präsentation transkript:

1

2 Anmerkungen zu XML Entwicklung/Anspruch von XML Character Data DTD vs. Schemata XSL vs. CSS Prof. Dr. Manfred Sommer Fachbereich Mathematik und Informatik Universität Marburg Im September 2000

3 Sep Anm. zu XML 2 XML Struktur / Structure Inhalt / Content Format / Layout Ein Dokument

4 Sep Anm. zu XML 3 W3C: XML Aussagen des W3C zu XML: XML in 10 points.htm Die aktuelle XML-Definition des W3C: XML-Dokus\Extensible Markup Language (XML) 1_0 (Second Edition) Review Version.htm

5 Sep Anm. zu XML 4 Ist XML einfach ? HTML ist eine Anwendung von SGML. XML ist (war mal ?) eine Teilmenge von SGML (ISO 8879). Die Definition von SGML umfasst angeblich ca. 500 Seiten. "Die Definition von XML passt auf ca. 33 Seiten." Diese Aussage war vielleicht mal richtig, insgesamt gibt es mittlerweile sehr viel mehr Seiten über XML und angrenzende Themen. An XML und den angrenzenden Themen arbeiten seit Jahren Komitees mit Mitgliedern von SUN, Microsoft, IBM und anderen Firmen. Folge: XML wird immer umfangreicher und unübersichtlicher.

6 Sep Anm. zu XML 5 XML ist eine Baum-Sprache B + 7 * (C + D * E + 8 ) + + * 8 + B C 7 * D E

7 Sep Anm. zu XML 6 Text Text besteht aus Zeichen und eingestreuten Markierungen (Mark-Ups). Diese bestehen aus:... oder Entity references character references Kommentaren CDATA Abschnitten DTDs (Document Type Declarations) PIs (Processing Instructions) n Text, der kein Markup ist, sind die Zeichen des Dokumentes = Character Data = CharData (im Gegensatz zu CDATA) n Außerdem gibt es noch PCDATA %pub;& ©{ [14] CharData ::= [^ ' [^<&]*)

8 Sep Anm. zu XML 7 CDATA / PCDATA n Die Zeichen & < und müssen bis auf wenige Ausnahmen immer zitiert werden: "&" und "<. n Natürlich sollten auch >, ], und zitiert werden. n Man kann auch Datenabschnitte definieren, in denen die üblichen Ersetzungsregeln nicht gelten: Hello, world! ]]> n In dem Beispiel wird nicht als Tag behandelt. n Der einzige Text, der in einem CDATA-Abschnitt ausgewertet wird, ist ]]>. n Im Gegensatz zu dem Text in einem CDATA-Abschnitt wird ausgewerteter Text als PCDATA Parsed CDATA bezeichnet.

9 Sep Anm. zu XML 8 Entitäten (1) n Entity steht für diverse Ersetzungsmechanismen. n Gemeinsam ist allen Entities, daß es für sie einen Namen gibt und daß sie einen Inhalt haben. n Die meisten Entities müssen in einer Deklaration einen Namen zugewiesen bekommen, bevor auf sie in einem Dokument verwiesen werden kann. n Wenn ein Entity deklariert wurde, kann der Entity-Name als ein Kürzel verwendet werden, und der Parser wird dafür sorgen, daß an die Stelle des Entity der Ersetzungstext gesetzt wird. n Vordefinierte Entities: < steht für < > steht für > & steht für & ' steht für ' " steht für " Warum doppelt?

10 Sep Anm. zu XML 9 Entitäten (2) n Im einfachsten Fall kann man mit einer Entitiy-Deklaration selbst eine Abkürzung definieren:.... &pu; &fb; &dk; Philipps Universitaet Marburg Fachbereich Mathematik und Informatik Der Dekan des Fachbereich Mathematik und Informatik der Philipps Universitaet Marburg

11 Sep Anm. zu XML 10 Entitäten (3) Für Entities gibt es drei Einteilungskriterien: Interne und externe Entities. Parsed und unparsed Entities. Normale und Parameter-Entities Alles ganz einfach ??? n Soll sich der Substitutionsmechanismus nur auf den DTD- Teil und auf den Erstellungszeitpunkt der DTD beziehen, verwendet man Parameter Entities. =

12 Sep Anm. zu XML 11 DTD: allgemein n Der Typ eines Dokumentes wird in einer DTD beschrieben. n Diese definiert die Struktur eines Dokumentes und sollte alle verwendeten Markups beschreiben. n Dies ist jedoch keine Pflicht! (Warum eigentlich nicht?) n Eine DTD kann intern sein oder extern. n Beides ist auch möglich. Man spricht dann von einer internen und einer externen Teilmenge der DTD. n Beispiel für eine externe DTD: Hallo XML! n Auf SYSTEM folgt eine URI. Alternativ kann das Schlüsselwort PUBLIC verwendet werden. Das verweist auf eine öffentliche URI. Als Beispiel sind Standards anzusehen.

13 Sep Anm. zu XML 12 DTD: Inhalt n In einer DTD werden definiert: Elemente Attribute Entitäten Notationen...

14 Sep Anm. zu XML 13 DTD: Beispiel ]> Sommer Marburg Manfred Winter Marburg

15 Sep Anm. zu XML 14 DTD: Diskussion (1) n In einer DTD können die Elemente und Attribute beschrieben werden. Die zur Verfügung stehenden Datentypen sind sehr beschränkt: n Der Inhalt von Elementen kann sein: Der Inhalt kann leer (EMPTY) oder beliebig (ANY) sein. Der Inhalt kann ausschließlich aus noch zu parsenden Character Daten (#PCDATA) bestehen. Der Inhalt kann ausschließlich aus Elementen bestehen. Der Inhalt kann sowohl aus Daten als auch aus Elementen bestehen. n Attribute können folgenden Typs sein: #CDATA ID, IDREF, IDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS, NOTATION, NOTATIONS

16 Sep Anm. zu XML 15 DTD: Diskussion (2) DTDs sind ein Relikt aus der SGML-Zeit und können den Inhalt von XML-Dokumenten nur sehr ungenau beschreiben, wenn darin z.B. spezifische Datenstrukturen verwendet werden. Das Problem lässt sich auch nicht kompatibel beheben. Daher wurden XML-Schemata definiert. In DTDs können keine Namespace-Konstrukte verwendet werden.

17 Sep Anm. zu XML 16 XML-Schema XML-Schema erweitern die Möglichkeit zur Definition von XML- Datenstrukturen erheblich! In der Definition von XML-Schemata wird das Thema Datenstrukturen vollständig erschlagen (overkill?) XML-Schemata sind nicht kompatibel zur SGML-Vergangenheit. Die Verwendung und auch die genaue Definition von XML-Schemata ist umstritten!

18 Sep Anm. zu XML 17 XML-Schema Beispiel (1) Für das folgende XML-Element wird auf den nächsten Folien ein passendes Schema definiert. Das Beispiel ist aus der Diplomarbeit von Frank Bingel. Mustermann Herbert Musterstrasse Frankfurt

19 Sep Anm. zu XML 18 XML-Schema Beispiel (2)...

20 Sep Anm. zu XML 19 XML-Schema Beispiel (3)...

21 Sep Anm. zu XML 20 Vorteile unabhängiger Stilvorlagen Wiederverwendbarkeit Mehrere Varianten für unterschiedliche Ausgabemedien. Standardisierte Textvorlagen können eingeführt werden. Individuelle Textgestaltung ist immer noch möglich. Trennung von Inhalts-Autoren und Stil-Autoren. Stilvorlagen können deklarativ oder prozedural sein. Deklarative Stilvorlagen sagen wie ein Textelement aussieht. Prozedurale Stilvorlagen sagen wie ein Textelement transformiert werden soll.

22 Sep Anm. zu XML 21 Stilvorlagen für XML nDie Diskussion über Stilvorlagen für XML ist anhaltend und noch keineswegs abgeschlossen. Die Puristen halten CSS, wie bereits für HTML definiert, für völlig ausreichend. nDaneben gibt es einen andauernden Versuch zusätzlich einen XML spezifischen Stilvorlagen Mechanismus zu definieren. Eine erste Version von XSL wurde vor 1998 definiert. Eine neue Version wurde seit 1999 eingeführt. Diese ist völlig anders – dies wurde aber nirgends an die grosse Glocke gehängt. nGegenwärtig gibt es eine zweistufige XSL-Definition: XSLT definiert Baumtransformationen. XSL definiert XML-Formate.

23 Sep Anm. zu XML 22 XSL und XSLT (1) Baumtransformationen könnte man übrigens genau so gut mit DOM machen!

24 Sep Anm. zu XML 23 XSL und XSLT (2) Die Baum-Transformationen sind durch XSLT definiert. Das Ergebnis kann sein: ein Text mit Format-Auszeichnungen ein anderer XML-Baum ein HTML-Baum... Input: Ein XML-Baum Ergebnis: Ein anderer Baum

25 Sep Anm. zu XML 24 Baumstruktur Ein XML Dokument definiert einen Baum. XSLT definiert eine Baumtransformation für einen solchen Baum. Die Struktur eines XML ist: Er besteht aus einem Wurzelknoten und Kind-Knoten. Es gibt folgende Arten von Knoten: Wurzel-Knoten Element-Knoten Text-Knoten Attribut-Knoten (Namespace)-Knoten (Processing Instruction)-Knoten Kommentar-Knoten

26 Sep Anm. zu XML 25 Knotenarten: Beispiel The First Day It was the best of days, it was the worst of days. Elementknoten: section Wurzel Elementknoten: title Elementknoten: p Textknoten: It was the El.knoten: emph Textknoten: of days, it was the El.knoten: emph Textknoten: of days Textknoten: The First Day Textknoten: best Textknoten: worst

27 Sep Anm. zu XML 26 Aktueller Knoten Bei der Verarbeitung eines Baumes gibt es ausgezeichnete Positionen: Der aktuelle Knoten: Auf diesen bezieht sich die momentane Verabeitung. Wenn ein Template angewandt wird, wird der Knoten auf den es angewandt wird, der aktuelle Knoten. Weitere Arten von Knoten: Wurzel-Knoten Vorgänger-Knoten (Eltern-Knoten) Kind-Knoten (1. Kind, 2. Kind,.... Letztes Kind)

28 Sep Anm. zu XML 27 Abhängige Knoten (1) Ausgehend von der aktuellen Position kann man folgende Mengen von Knoten definieren. Dafür gibt es eine ausführliche und eine abgekürzte Schreibweise. Einige Beispiele in ausführlicher Schreibweise: from-children(para) Die Kinder-Elementknoten namens para. from-children(*) Alle Kinder-Elementknoten. from-children(text()) Alle Kinder-Textknoten. from-children(node()) Alle Kinder-Knoten. from-attributes(name) Die Kinder-Attributknoten namens name. from-attributes(*) Alle Kinder-Attributknoten. from-descendants(para) Aus der Menge der Abkömmlinge: Elementknoten namens para from-self(para) ist der aktuelle Knoten, wenn er ein Elementknoten namens para ist, die leere Menge andernfalls.

29 Sep Anm. zu XML 28 Abhängige Knoten (2) Zusammengesetzte Selektoren: from-ancestors-or-self(...) from-descendants-or-self(...) Abgekürzte Schreibweise: para bezeichnet die Kind-Elemente names para. * alle Kind-Elemente. text() Alle Die Kinder-Attributknoten namens Alle Kinder-Attributknoten. para[1] das 1. Element der Kind-Elemente names para. para[last()] das letzte Element der Kind-Elemente names para.

30 Sep Anm. zu XML 29 Muster / wählt das Wurzelelement eines XML Baumes aus. * wählt alle Elemente eines XML Baumes aus. m1|m2 wählt Elemente aus, auf die m1 oder m2 zutrifft. m1 and m2 wählt Elemente aus, auf die m1 und m2 zutrifft. m1/m2 wählt Elemente aus, auf die m2 zutrifft, wenn der Elternknoten m1 ist. m1//m2 wählt Elemente aus, auf die m2 zutrifft, wenn sie einen Vorgängerknoten m1 wählt ein Attribut mit Namen a aus. wählt alle Attribute aus. Eine wesentliche Komponente von XSL ist der Vergleich von Mustern. Beispiele:

31 Sep Anm. zu XML 30 Filter [] definiert einen Filter für ein Muster. Beispiele: wählt jedes Element namens p aus (auf das p zutrifft), das ein Vorgängerelement namens div hat, der ein Attribut class mit dem Wert appendix hat. para[1] trifft auf alle para Elemente zu, die 1. Kind ihres Elternknotens sind. *[position()=1] wählt jedes Element aus das 1. Kind seines Elternknotens ist. *[last()=1] wählt jedes Element aus das das einzige Kind seines Elternknotens ist. item[position() mod 2 = 1] trifft auf ein Element namens item zu, wenn es eine ungerade Positionsnummer hat. item[position() > 1] trifft auf ein Element namens item zu, wenn es nicht das 1. Kind seines Elternknotens ist.

32 Sep Anm. zu XML 31 XSL/XSLT Beispiel (1) Für das folgende XML-Element wird auf den nächsten Folien eine passende Formatierung definiert. Das Beispiel ist aus der W3C XSL Spezifikation. Chapter Text Section Text Section Text Chapter Text Section Text Section Text

33 Sep Anm. zu XML 32 XSL/XSLT Beispiel (2) ... XSLT – Definition:

34 Sep Anm. zu XML 33 XSL/XSLT Beispiel (3)... ...

35 Sep Anm. zu XML 34 XSL/XSLT Beispiel (4)...

36 Sep Anm. zu XML 35 XSL/XSLT Beispiel (5) Chapter Text Section Text... Ergebnis-Format:

37 Sep Anm. zu XML 36 XSL/XSLT Beispiel (6)... Section Text...

38 Sep Anm. zu XML 37 XSL/XSLT Beispiel (7)... Chapter Text Section...

39 Sep Anm. zu XML 38 XSL/XSLT Beispiel (8)... Text Section Text

40 Sep Anm. zu XML 39 Diskussion (und Ende) n XML war einmal eine bestechende Idee... n Heute verderben zu viele Köche den XML-Brei... n HTML war gut für Textdokumente. n XML versucht die Struktur ganz allgemeiner Dokumente zu beschreiben – geht das mit denselben Hilfsmitteln. n XML sollte ganz einfach sein – Baumtransormationen etc. sind nicht ganz einfach... n Viele Details habe ich noch gar nicht diskutiert.


Herunterladen ppt "Anmerkungen zu XML Entwicklung/Anspruch von XML Character Data DTD vs. Schemata XSL vs. CSS Prof. Dr. Manfred Sommer Fachbereich Mathematik und Informatik."

Ähnliche Präsentationen


Google-Anzeigen