Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XML-basierte Techniken

Ähnliche Präsentationen


Präsentation zum Thema: "XML-basierte Techniken"—  Präsentation transkript:

1 XML-basierte Techniken
Internet-Technologien Sommersemester 2012 XML-basierte Techniken Teil „XML – Document Type Definition“ Teil 4 Prof. Dr. rer. nat. Ralph Großmann Fakultät Informatik / Mathematik

2 XML – Document Type Definition Ziele / Beziehung zwischen DTD und Dokument
Ziele Mit der Entwicklung einer DTD wird das Ziel verfolgt, eine Grammatik für eine Klasse von Dokumenten der realen Welt zu definieren. Dokumente, die einer bestimmten Grammatik entsprechend aufgebaut sind heißen gültig oder valide. Genügt ein Dokument diesem Regelwerk, so lässt sich dem Dokument eine Semantik zuordnen, es kann interpretiert werden. Beziehung zwischen DTD und einem Dokument Um die obige Zielstellung zu erfüllen, muss ein Dokument mit einer DTD in Beziehung gebracht werden. Diese Verbindung geschieht im Prolog eines XML-Dokumentes durch ein Konstrukt <!DOCTYPE name > Der name muss immer der Name des Wurzel-Elementes des Dokumentes sein. Es gibt im Prinzip vier Ausprägungsformen für eine solche Verbindung. Grossmann

3 XML – Document Type Definition Verbindungsformen zwischen DTD und Dokument
Verbindungsformen zwischen DTD und einem Dokument 1. Interne Form der DTD Eine DTD wird komplett in das DOCTYPE-Konstrukt eingebettet: <!DOCTYPE name [ ] > Diese Ausprägungsform hat den Nachteil, dass sie nur diesem Dokument zugeordnet ist, obwohl der eigentliche Sinn einer DTD darin besteht, für eine Klasse von Dokumenten zu gelten und nicht nur für ein Dokument. Für den Leser ergibt sich der Vorteil, dass die Grammatik sofort einsehbar ist. Bsp.: dtd_01.xml Grossmann

4 XML – Document Type Definition Verbindungsformen zwischen DTD und Dokument
Verbindungsformen zwischen DTD und einem Dokument 2. Externe Form der DTD Eine DTD wird komplett extern als eigene Datei abgelegt. Dies hat den Vorteil, dass mehrere Dokumente darauf Bezug nehmen können: Für diese externe Form gibt es zwei Varianten. Die DTD kann im Netz über eine URL öffentlich zur Verfügung gestellt werden (PUBLIC) oder für Nutzer einer Domäne reserviert werden (SYSTEM) XML Dokument XML Dokument DTD XML Dokument XML Dokument Grossmann

5 XML – Document Type Definition Verbindungsformen zwischen DTD und Dokument
Verbindungsformen zwischen DTD und einem Dokument Eine öffentliche DTD wird durch das DOCTYPE-Konstrukt wie folgt eingebettet: <!DOCTYPE name PUBLIC “Kennung“ “URL“ > Beispiel: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" " Bsp.: Aufg_01_xhtml.htm Grossmann

6 XML – Document Type Definition Verbindungsformen zwischen DTD und Dokument
Verbindungsformen zwischen DTD und einem Dokument Eine nicht öffentliche DTD wird durch ein DOCTYPE-Konstrukt wie folgt eingebettet: <!DOCTYPE name SYSTEM “URL“ > Für “URL“ kann eine richtige URL, aber auch eine Pfadangabe in einem lokalen System oder nur ein Dateiname sein, wenn sich die DTD im selben Verzeichnis wie das Dokument befindet. Beispiel: <!DOCTYPE html SYSTEM “dtd_02.dtd“> Bsp.: dtd_02.xml Grossmann

7 XML – Document Type Definition Markup-Definitionen in DTDs
Markup-Definitionen in DTDs Die folgende Tabelle enthält alle Markup-Definitionen (nach Bedeutung geordnet), die in einer DTD stehen können: Markup-Deklaration Beschreibung <!ELEMENT ...> Definition eines Markups <!ATTLIST ...> Definition einer Attributliste <!ENTITY ...> Definition einer Entität <!NOTATION ...> Definition einer Datentypnotation <![INCLUDE [...]] > Definition eines bedingten Abschnittes <![IGNORE [...]] > „ „ <! > Kommentar Grossmann

8 XML – Document Type Definition Das Inhaltsmodell für DTDs (Content Model)
Das Inhaltsmodell für DTDs (Content Model) Der Hauptinhalt eines Dokumentes wird bei der Strukturierung den Elementen zugeordnet. Bei der Element-Definition spricht man den Teil als Modell an, der die Grammatik eines gültigen Inhalts beschreibt: <! ELEMENT name (Modell) > Das Modell wird unter Nutzung der EBNF als Metasprache angegeben. Ist das Modell leer EMPTY (vgl. 3.) wird die runde Klammer weggelassen! Für die Notation des Modells gilt ein wichtiger Grundsatz: Das Modell muss durch den XML-Parser deterministisch analysiert werden können. Die Grammatik des Modells muss also eine LF(1)- bzw. eine LR(1)- Grammatik sein. Das sind Grammatiken, die ohne Backtracking- und Lookahead-Techniken geparst werden können. Bsp.: dtd_03_error.xml verstößt gegen diese Regel ! Grossmann

9 XML – Document Type Definition Das Inhaltsmodell für DTDs (Content Model)
Das Inhaltsmodell für DTDs (Content Model) - Fortsetzung Für die Ausprägung eines Modells werden folgende Formen unterschieden: 1. Element besitzt nur freien Text als Inhalt Das Modell besteht dann nur aus der Angabe (#PCDATA). Sogen. Parsed Character Data sind beliebige Zeichenfolgen, die der Parser untersucht. Sie dürfen keine Elemente (also Markups) enthalten. Gewisse Sonderzeichen wie < und > dürfen nur durch Referenz auf ihre Entity-Form (< >) benutzt werden. <!ELEMENT name (#PCDATA) > Bsp.: dtd_04_error.xml verstößt gegen #PCDATA ! Grossmann

10 XML – Document Type Definition Das Inhaltsmodell für DTDs (Content Model)
Das Inhaltsmodell für DTDs (Content Model) - Fortsetzung Element besitzt gemischten Inhalt D.h. im Element können sich freier Text und Sub-Elemente abwechseln. Hier bestehen einige Formeinschränkungen. Das Modell muss unbedingt mit (#PCDATA beginnen und kann dann weitere Alternativen (|) enthalten. Hinter der schließenden Klammer muss unbedingt der *-Operator angegeben werden, z.B: <!ELEMENT person ( #PCDATA | Name | PF_Angabe ) * > Ein Weglassen des * oder #PCDATA nicht an erster Stelle führt sofort zu Fehlermeldungen. Bsp.: dtd_05_error.xml Bei der Form gemischter Inhalt ist keine Sequenz anzugeben und auch keine Kontrolle über Reihenfolge oder Anzahl der Vorkommen der Elemente möglich. Bsp.: dtd_06_error.xml verstößt gegen Aufzählung (Reihenfolge) ! Grossmann

11 Beispiel: <!ELEMENT Zeile EMPTY > Bsp.: dtd_07.xml
XML – Document Type Definition Das Inhaltsmodell für DTDs (Content Model) Das Inhaltsmodell für DTDs (Content Model) - Fortsetzung Element mit leerem Inhalt (EMPTY) Besitzt ein Element keinen Inhalt, so besteht das Modell nur aus der Angabe EMPTY: Beispiel: <!ELEMENT Zeile EMPTY > Bsp.: dtd_07.xml Grossmann

12 XML – Document Type Definition Das Inhaltsmodell für DTDs (Content Model)
Das Inhaltsmodell für DTDs (Content Model) - Fortsetzung Element - Alternative In diesem Fall besteht der Inhalt aus einer aufgezählten Reihenfolge von Elementen. Es ist kein freier Text zugelassen. + und * dürfen im Modell verwendet werden. Beispiel: <!ELEMENT LV (Titel | Profs | Fuer) > Im Dokument darf nur ein Element dieser Auswahl stehen. Der Operator | stellt das exklusive ODER dar. Grossmann

13 XML – Document Type Definition Das Inhaltsmodell für DTDs (Content Model)
Das Inhaltsmodell für DTDs (Content Model) - Fortsetzung Element - Sequenz In diesem Fall besteht der Inhalt aus einer aufgezählten Reihenfolge von Elementen. Es ist kein freier Text zugelassen. + und * dürfen im Modell verwendet werden. Beispiel: <!ELEMENT LV (Titel , Profs , Fuer) > Im Dokument müssen die Elemente in dieser Reihenfolge stehen. Der Operator , stellt den Sequenzoperator dar. Die Elemente der Sequenz können wieder in () eingeschlossene Elementgruppen sein, also z.B. auch Alternativen enthalten. Grossmann

14 XML – Document Type Definition Beispiel zum Inhaltsmodell für DTDs
Beispiel zum Inhaltsmodell für DTDs Als Beispiel soll die Tabelle der LV (1.Übung, 3.Aufgabe) dienen (Modelle rot dargestellt): <!ELEMENT KURS (LV*) > <!ELEMENT LV (Titel, Profs, Fuer) > <!ATTLIST LV Typ (LV |WS) "LV" SWS CDATA #REQUIRED Anerk CDATA #IMPLIED > <!ELEMENT Titel (#PCDATA) > <!ELEMENT Profs (Prof+) > <!ELEMENT Prof (#PCDATA) > <!ELEMENT Fuer (SG+) > <!ELEMENT SG (#PCDATA) > Grossmann

15 XML – Document Type Definition Attributlisten in DTDs
Attributliste eines Elementes in der DTD Enthält ein Element ein oder mehrere Attribute, muss hinter dem Inhaltsmodell eines Modells eine Attribut-Definition mit einem ATTLIST-Markup folgen : Bsp.: <!ELEMENT LV (Titel, Profs, Fuer) > <!ATTLIST LV Typ (LV |WS) "LV" SWS CDATA #REQUIRED Anerk CDATA #IMPLIED > Eine solche Definition beginnt mit dem Elementnamen, zu dem die Attribute gehören. Dahinter folgt eine Aufzählung (Liste) von Attributdefinitionen. Im obigen Beispiele sind drei Attribut-Definitionen für Typ, SWS und Anerk angegeben. Grossmann

16 XML – Document Type Definition Definition eines Attributes
Definition eines Attributes Wie aus dem letzten Beispiel zu ersehen, besteht eine Attributdefinition aus drei Bestandteilen: - Attributname, - Attributtyp und - Attributzusatz Bsp.: <!ATTLIST LV Typ (LV |WS) "LV" SWS CDATA #REQUIRED Anerk CDATA #IMPLIED > Die Reihenfolge der Aufzählung (Liste) von Attributdefinitionen ist dabei nicht signifikant,d.h. im Dokument kann eine andere (beliebige) Reihenfolge bei der Attribut-Angabe gewählt werden. Grossmann

17 XML – Document Type Definition Attribut-Typen / Überblick
Attribut-Typen Wie aus dem letzten Beispiel zu ersehen, besteht eine Attributdefinition aus drei Bestandteilen: - Attributname, - Attributtyp und - Attributzusatz Bsp.: <!ATTLIST LV Typ (LV |WS) "LV" SWS CDATA #REQUIRED Anerk CDATA #IMPLIED > Die Reihenfolge der Aufzählung (Liste) von Attributdefinitionen ist dabei nicht signifikant , d.h. im Dokument kann eine andere (beliebige) Reihenfolge bei der Attribut-Angabe gewählt werden. Grossmann

18 XML – Document Type Definition Attribut-Typen : CDATA , Aufzählung und NMTOKEN
Attribut-Typ CDATA Diese Angabe (Character Data) bedeutet, dass als Attributwert eine beliebige Zeichenkette (in Doppelapostroph eingeschlossen) im Dokument stehen darf. Beispiel: SWS CDATA Attribut-Typ Aufzählung (enumerated) Bei diesem Typ werden alle möglichen Wert in einer Liste aufgezählt. Das Trennzeichen ist der ODER-Operator | . Im Dokument darf (in Doppelapostroph eingeschlossen) nur ein Wert aus der angegebenen Aufzählung stehen. Beispiel: Typ (LV |WS) Attribut-Typ NMTOKEN / NMTOKENS Als Wert vom Typ NMTOKEN ist eine Zeichenkette zugelassen, die analog einem Bezeichner aufgebaut sein muss, d.h. außer Buchstaben und Ziffern nur bestimmte Sonderzeichen, wie z.B. Punkt enthalten dürfen. Beispiel: Status NMTOKEN Im Dokument kann dann kodiert sein, z.B. Status= “Entwurf“ oder Status= “Verabschiedet“ Bei der Variante NMTOKENS können mehrere solche Worte durch Leerzeichen getrennt als Attribut-Wert auftreten. Beispiel: Interessen NMTOKENS Im Dokument kann dann kodiert sein, z.B. Interessen= “Lesen Reisen Radfahren“ Grossmann

19 XML – Document Type Definition Attribut-Typ : ID
Attribut-Typ ID Diese Angabe bedeutet, dass als Attributwert eine Zeichenkette (in Doppelapostroph eingeschlossen) im Dokument stehen darf, die den Einschränkungen von NMTOKEN genügt, aber mit einem alphabetischen Zeichen (Buchstaben oder _) beginnt und zusätzlich eindeutig im Dokument vergeben ist, d.h. das Element im Dokument eindeutig kennzeichnet. Beispiel: ISBN ID Im Dokument könnte stehen ISBN= “B “ . Dieser Wert dürfte im Dokument nicht noch einmal vorkommen. Grossmann

20 XML – Document Type Definition Attribut-Typ : IDREF, IDREFS
Attribut-Typ IDREF , IDREFS Diese Angabe IDREF bedeutet, dass als Attributwert eine Zeichenkette (in Doppelapostroph eingeschlossen) im Dokument stehen darf, die an anderer Stelle bereits als ID gekennzeichnet ist. Damit sind also eindeutige Bezugnahmen auf andere Elemente (Eltern-Elemente) möglich. Bei IDREFS dürfen als Wert mehrere Bezugnahmen durch Leerzeichen getrennt stehen. Für Eltern-Elemente und Kind-Elemente ist keine Reihenfolge vorgeschrieben, d.h. Bezugnahmen im Dokument können „nach hinten“ führen. Beispiel: Bez ID gehoert_zu IDREF Bez ist ein Attribut eines Elementes Abteilung und gehoert_zu ist ein Attribut eines Elementes Person. So könnten in einem Dokument folgende Elemente stehen: <Abteilung Bez= “Produktion“>..... <Person gehoert_zu= “Produktion“>Meier</Person> Grossmann

21 XML – Document Type Definition Attribut-Typ : ENTITY
Attribut-Typ ENTITY , ENTITIES Die Angabe ENTITY als Attribut-Typ bedeutet, dass als Attributwert auf ein anderes Objekt oder eine Datei Bezug genommen wird, die in der DTD unter dem Namen als ENTITY definiert sein muss (vgl. ENTITY-Definition). Beispiel: <!ATTLIST Student foto ENTITY #IMPLIED> <!ENTITY bild1 SYSTEM “frage.gif“ NDATA GIF89a> <Student Matr="S16231" geh="E“ foto=“bild1” > Spurny</Student> Ist ENTITIES angegeben, so können mehrere Werte als Verweis auf Entities angegeben werden. Grossmann

22 XML – Document Type Definition Attribut-Typ : NOTATION, NOTATIONS
7. Attribut-Typ NOTATION (Abkürzung) Die Angabe NOTATION als Attribut-Typ mit einem folgenden Kürzel in Klammern bedeutet, dass als Attributwert auf ein externes Objekt ( Datei ) Bezug genommen wird, die in der DTD unter dem Namen als NOTATION definiert sein muss (vgl. NOTATION -Definition). Die Nutzung ist analog der von Entity-Bezugnahmen, nur mit der Beschränkung auf externe Dateien. Ist NOTATIONS angegeben, so können mehrere Werte als Verweis auf externe Objekte angegeben werden. Grossmann

23 XML – Document Type Definition Attribut-Zusatz
Attribut-Zusatz Der dritte Bestandteil einer Attributdefinition besteht aus zusätzlichen Angaben. Dies sind vor allem Verfügungen über die Notwendigkeit der Attributangabe, Default-Werte usw. - Attributzusatz #REQUIRED Mit der Angabe dieses Zusatzes wird festgelegt, dass das betreffende Attribut stets im entsprechenden Element-Tag anzu- geben ist. - Attributzusatz #IMPLIED Mit der Angabe dieses Zusatzes wird festgelegt, dass das betreffende Attribut im entsprechenden Element-Tag wahlweise an- gegeben oder auch weggelassen werden kann. - Attributzusatz Default-Wert Ist der Attributtyp insbesondere ein Aufzählungstyp oder CDATA, so kann hinter die Aufzählung zulässiger Attributwerte bzw. CDATA ein Default-Wert als Standardwert in Doppelapostroph angegeben werden. Grossmann

24 XML – Document Type Definition ENTITY-Definition in der DTD
ENTITY-Definition Es gibt mehrere Formen der Definition von Entities in einer DTD. Entity Zeichen-Entity Generelle Entity Parameter-Entity Externe P-Entity Interne P-Entity Interne G-Entity Externe G-Entity Grossmann

25 XML – Document Type Definition ENTITY-Definition in der DTD
ENTITY-Definition Zeichenentity Hinter einer Zeichenentity verbirgt sich die implizite Definition eines Sonderzeichens wie z.B.: < > & “ usw. über einen Namen wie z.B.: lt , gt, amp , apos usw. Für den Nutzer existiert eigentlich nur der Aufruf (Referenz), wie z.B &apos; Diese können überall im Dokument und in der DTD verwendet werden. Grossmann

26 XML – Document Type Definition ENTITY-Definition in der DTD
2. Parameter-Entity a) interne Parameter-Entity Mit der Angabe <!ENTITY % name Zeichenkette > wird ein Name für eine Zeichenkette festgelegt. Im Dokument wird diese Zeichenkette über den Aufruf %name; aktiviert (substituiert). Bsp.: <!ENTITY % titel “ Prof. “ > <!ENTITY anrede “Frau %titel;“> Dieser Parameter-Entity darf auch in ELEMENT- oder ATTLIST-Markups stehen ! Grossmann

27 XML – Document Type Definition ENTITY-Definition in der DTD
b) externe Parameter-Entity Mit der Angabe <!ENTITY % name SYSTEM “ externeDatei.dtd“ > wird ein Name für eine externe Datei als DTD-Definition festgelegt. In der DTD wird diese Zeichenkette über den Aufruf %name; aktiviert (substituiert). Bsp.: <!DOCTYPE register [ <!ENTITY % person SYSTEM “pers.dtd “ > %person; ]> Grossmann

28 XML – Document Type Definition ENTITY-Definition in der DTD
3. Generelle Entity a) interne generelle Entity Mit der Angabe <!ENTITY name Zeichenkette > Bsp.: <!ENTITY gr „Ralph Grossmann“ > wird ein Name für eine Zeichenkette festgelegt. Im Dokument wird diese Zeichenkette über den Aufruf (Referenz) &name; aktiviert (substituiert) Diese Form kann überall im XML-Dokument, d.h. in der DTD als auch im Datenteil verwendet werden. Grossmann

29 XML – Document Type Definition ENTITY-Definition in der DTD
b) externe generelle Entity Mit der Angabe <!ENTITY name SYSTEM “ externeDatei“ Zusatz > wird ein Name für eine beliebige externe Datei festgelegt. Änalog zu den externen Parameter-Entities, nur waren diese auf dtd-Dateien beschränkt. Bei externen generelle Entities existieren 2 Formen: die geparste und - die ungeparste Ist Zusatz nicht angegeben, spricht man von der geparsten Variante, dann muss diese Datei auch den Regeln eines XML-Dokumentes genügen. Besteht der Zusatz aus der Angabe NDATA spezifikation , so spricht man von der ungeparsten Variante. Diese wird angewendet, wenn Bilder, Audio- Video-Dateien referiert werden, z.B. NDATA gif89a . In diesem Fall wird der Inhalt ohne Kontrolle weitergegeben. Im Dokument wird eine externe generelle Entity nur über die Verwendung des Entity-Namens, also nicht über einen Aufruf (Referenz) benutzt: name In der Regel erscheint dieser name aber vor allem als Attibut-Wert . Grossmann

30 XML – Document Type Definition NOTATION-Definition in der DTD
NOTATION-Definition Notationen kommen in der Regel nur im Zusammenhang mit ungeparsten externen Entities vor. Der Unterschied besteht darin, dass neben dem Spezifizierer SYSTEM auch PUBLIC zugelassen ist, d.h. die externe Entity über eine URL definiert wird. Grossmann


Herunterladen ppt "XML-basierte Techniken"

Ähnliche Präsentationen


Google-Anzeigen