1 / 30

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. XML – Document Type Definition Ziele / Beziehung zwischen DTD und Dokument.

greta
Download Presentation

XML-basierte Techniken

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 DefinitionZiele / Beziehung zwischen DTD und Dokument ZieleMit der Entwicklung einer DTD wird das Ziel verfolgt, eine Grammatik für eineKlasse 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 DokumentUm die obige Zielstellung zu erfüllen, muss ein Dokument mit einer DTD in Beziehung gebracht werden. Diese Verbindung geschieht im Prolog eines XML-Dokumentesdurch ein Konstrukt<!DOCTYPEname ..... > 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 DefinitionVerbindungsformen zwischen DTD und Dokument Verbindungsformen zwischen DTD und einem Dokument1. Interne Form der DTDEine 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 DefinitionVerbindungsformen zwischen DTD und Dokument XMLDokument XMLDokument DTD Verbindungsformen zwischen DTD und einem Dokument2. Externe Form der DTDEine 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) XMLDokument XMLDokument Grossmann

  5. XML – Document Type DefinitionVerbindungsformen zwischen DTD und Dokument Verbindungsformen zwischen DTD und einem DokumentEine ö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" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">Bsp.: Aufg_01_xhtml.htm Grossmann

  6. XML – Document Type DefinitionVerbindungsformen zwischen DTD und Dokument Verbindungsformen zwischen DTD und einem DokumentEine 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 DefinitionMarkup-Definitionen in DTDs Markup-Definitionen in DTDsDie folgende Tabelle enthält alle Markup-Definitionen (nach Bedeutung geordnet), die in einer DTD stehen können: Grossmann

  8. XML – Document Type DefinitionDas 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 DefinitionDas Inhaltsmodell für DTDs (Content Model) Das Inhaltsmodell für DTDs (Content Model) - FortsetzungFür die Ausprägung eines Modells werden folgende Formen unterschieden:1. Element besitzt nur freien Text als InhaltDas 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 (&lt; &gt;) benutzt werden.<!ELEMENT name (#PCDATA) > Bsp.: dtd_04_error.xml verstößt gegen #PCDATA ! Grossmann

  10. XML – Document Type DefinitionDas Inhaltsmodell für DTDs (Content Model) Das Inhaltsmodell für DTDs (Content Model) - Fortsetzung2. Element besitzt gemischten InhaltD.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 #PCDATAnicht 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. XML – Document Type DefinitionDas Inhaltsmodell für DTDs (Content Model) Das Inhaltsmodell für DTDs (Content Model) - Fortsetzung3. 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 DefinitionDas Inhaltsmodell für DTDs (Content Model) Das Inhaltsmodell für DTDs (Content Model) - Fortsetzung4. Element - AlternativeIn 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 DefinitionDas Inhaltsmodell für DTDs (Content Model) Das Inhaltsmodell für DTDs (Content Model) - Fortsetzung5. Element - SequenzIn 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 DefinitionBeispiel 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 DefinitionAttributlisten 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 DefinitionDefinition 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 AnerkCDATA#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 DefinitionAttribut-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 AnerkCDATA#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 DefinitionAttribut-Typen : CDATA , Aufzählung und NMTOKEN Attribut-Typ CDATADiese 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) 3.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:StatusNMTOKEN 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:InteressenNMTOKENSIm Dokument kann dann kodiert sein, z.B. Interessen= “Lesen Reisen Radfahren“ Grossmann

  19. XML – Document Type DefinitionAttribut-Typ : ID 4. Attribut-Typ IDDiese 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 IDIm Dokument könnte stehen ISBN= “B3-345-298714-2“. Dieser Wert dürfte im Dokument nicht noch einmal vorkommen. Grossmann

  20. XML – Document Type DefinitionAttribut-Typ : IDREF, IDREFS 5. Attribut-Typ IDREF , IDREFSDiese 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 IDgehoert_zu IDREFBez 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 DefinitionAttribut-Typ : ENTITY Attribut-Typ ENTITY , ENTITIESDie 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> IstENTITIES angegeben, so können mehrere Werte als Verweis auf Entities angegeben werden. Grossmann

  22. XML – Document Type DefinitionAttribut-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 externesObjekt ( 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 DefinitionAttribut-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 #REQUIREDMit der Angabe dieses Zusatzes wird festgelegt, dass das betreffende Attribut stets im entsprechenden Element-Tag anzu- geben ist. - Attributzusatz #IMPLIEDMit der Angabe dieses Zusatzes wird festgelegt, dass das betreffende Attribut im entsprechenden Element-Tag wahlweise an- gegeben oder auch weggelassen werden kann. - Attributzusatz Default-WertIst 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 DefinitionENTITY-Definition in der DTD ENTITY-DefinitionEs gibt mehrere Formen der Definition von Entities in einer DTD. Zeichen-Entity Entity Generelle Entity Parameter-Entity Externe G-Entity Externe P-Entity Interne P-Entity Interne G-Entity Grossmann

  25. XML – Document Type DefinitionENTITY-Definition in der DTD ENTITY-Definition 1.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 DefinitionENTITY-Definition in der DTD 2.Parameter-Entity a) interne Parameter-EntityMit der Angabe <!ENTITY%nameZeichenkette>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 DefinitionENTITY-Definition in der DTD b) externe Parameter-EntityMit der Angabe <!ENTITY%nameSYSTEM“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 DefinitionENTITY-Definition in der DTD 3.Generelle Entitya) interne generelle Entity Mit der Angabe <!ENTITYnameZeichenkette>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 DefinitionENTITY-Definition in der DTD b) externe generelle Entity Mit der Angabe <!ENTITYnameSYSTEM“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 ungeparsteIst 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 NDATAspezifikation , so spricht man von der ungeparsten Variante. Diese wird angewendet, wenn Bilder, Audio- Video-Dateien referiert werden, z.B. NDATAgif89a . 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:nameIn der Regel erscheint dieser name aber vor allem als Attibut-Wert . Grossmann

  30. XML – Document Type DefinitionNOTATION-Definition in der DTD NOTATION-DefinitionNotationen 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

More Related