Download
xml schema dtd n.
Skip this Video
Loading SlideShow in 5 Seconds..
XML – Schema (DTD) PowerPoint Presentation
Download Presentation
XML – Schema (DTD)

XML – Schema (DTD)

140 Views Download Presentation
Download Presentation

XML – Schema (DTD)

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. XML – Schema (DTD)

  2. Übersicht • Über XML • Was ist XML? • Welche Ziele werden verfolgt? • XML – Dokumente • Wohlgeformtheit • Namensräume Proseminar Auszeichnungssprachen WS04/05

  3. Übersicht • XML – Schema • Aufbau einer DTD • XML - Schema • Anwendungsbeispiel: • XML-Schema für dieses Proseminar Proseminar Auszeichnungssprachen WS04/05

  4. Über XML - Was ist XML? Die XML (Extensible Markup Language) ist eine Grammatik, die XML-Dokumente beschreibt. Über die Regeln der XML hinaus, können weitere formuliert werden, und zwar in einem XML-Dokument selbst. Die XML-Grammatik wird in diesem Fall erweitert. Da die zusätzlichen Regeln in der XML-Grammatik vorgenommen werden, spricht man bei XML auch von einer Metagrammatik. Proseminar Auszeichnungssprachen WS04/05

  5. Über XML • - Welche Ziele werden verfolgt? • 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 Anzahl optionaler Merkmale in XML soll minimal sein, idealerweise Null. Proseminar Auszeichnungssprachen WS04/05

  6. Über XML • - Welche Ziele werden verfolgt? • XML-Dokumente sollten für Menschen lesbar und angemessen verständlich sein. • Der XML-Entwurf sollte zügig abgefasst werden. • Der Entwurf von XML soll formal und präzise sein. • XML-Dokumente sollten leicht zu erstellen sein. • Knappheit von XML-Markup ist von minimaler Bedeutung. Proseminar Auszeichnungssprachen WS04/05

  7. XML – Schema (DTD) XML - Dokumente

  8. XML - Dokumente • Definition: A data object is an XML document if it is well-formed, as defined in this specification. A well-formed XML document MAY in addition be valid if it meets certain further constraints. • [http://www.w3.org/TR/2004/REC-xml11-20040204/] Proseminar Auszeichnungssprachen WS04/05

  9. XML – Dokumente (Wohlgeformtheit) • Definition: A textual object is a well-formed XML document if: • Taken as a whole, it matches the production labeled document. • It meets all the well-formedness constraints given in this specification. • Each of the parsed entities which is referenced directly or indirectly within the document is well-formed. Proseminar Auszeichnungssprachen WS04/05

  10. Enthält Informationen über das Dokument Kommentare Verarbeitungshinweise Wurzelelement - enthält Informationen des Dokuments XML - Dokumente Produktionsregel für ein Dokument: document ::= prolog element Misc* - Char* RestrictedChar Char*; Proseminar Auszeichnungssprachen WS04/05

  11. XML - Dokumente • Allgemeines: • XML ist case-sensitive • Namen: • Man sollte sich an die üblichen Konventionen halten. • Namen dürfen nicht mit einer Schreibweise von XML beginnen. • Der Doppelpunkt sollte nicht verwendet werden. Proseminar Auszeichnungssprachen WS04/05

  12. XML - Dokumente • Allgemeines: • Folgende Zeichen dürfen ausschließlich für markup verwendet werden: ", ', <, >, & • Anstelle von ihnen kann &quot; , &apos; , &lt; , &gt, &amp; verwendet werden. Proseminar Auszeichnungssprachen WS04/05

  13. XML - Dokumente • Allgemeines: • Inhalte von CDATA-Abschnitten, Kommentaren und processing instructions werden nicht interpretiert. D.h. die oben genannten Zeichen können dort verwendet werden. Der Inhalt wird, außer bei Kommentaren, unverändert an die verarbeitende Anwendung weitergegeben. • Deklaration eines CDATA Abschnittes: • <!CDATA[ [Inhalt] ]]> • Das Fragment ]]> darf nicht im Inhalt vorkommen Proseminar Auszeichnungssprachen WS04/05

  14. XML - Dokumente • Allgemeines: • Deklaration eines Kommentars: • <!-- [Kommentar] --> • Die Zeichenkette -- darf nicht im Kommentar vorkommen. • Deklaration einer processing instruction: • <?[Bezeichner der Anwendung] [Anweisung] ?> Proseminar Auszeichnungssprachen WS04/05

  15. XML - Dokumente Produktionsregel für ein Dokument: document ::= prolog element Misc* - Char* RestrictedChar Char*; Enthält Informationen über das Dokument Proseminar Auszeichnungssprachen WS04/05

  16. XML - Dokumente • Prolog: • Kann am Anfang eine Angabe zur XML-Version enthalten. • Kann Angaben über den Dokumenttyp enthalten. • Kann Kommentare und processing instructions enthalten. (MISC) Proseminar Auszeichnungssprachen WS04/05

  17. XML - Dokumente Produktionsregel für ein Dokument: document ::= prolog element Misc* - Char* RestrictedChar Char*; Kommentare Verarbeitungshinweise Proseminar Auszeichnungssprachen WS04/05

  18. Versionsnummer Zeichensatz (optional) Gibt einen Hinweis, ob es Verweise auf externe Quellen gibt (optional) XML - Dokumente • Angabe zur XML-Version: • <?xml version = "1.1" encoding = "UTF-8" standalone="yes" ?> Proseminar Auszeichnungssprachen WS04/05

  19. XML - Dokumente • Angabe zum Dokumententyp: • <!DOCTYPE[Name] [Verweis auf externe Quelle] [Deklarationen] > • [Name] muss mit dem Namen des Wurzelelementes übereinstimmen. • [Deklaration] enthält die Deklarationen einer DTD • (interne Deklaration) Proseminar Auszeichnungssprachen WS04/05

  20. XML - Dokumente • Angabe zum Dokumententyp: • <!DOCTYPE[Name] [Verweis auf externe Quelle] [Deklarationen] > • [Verweis auf externe Quelle] hat folgendes Format: • SYSTEM "[URI]" oder • PUBLIC "[öffentlicher Bezeichner] [URI]" Proseminar Auszeichnungssprachen WS04/05

  21. XML - Dokumente • Bsp.: • <!DOCTYPE wurzel PUBLIC "-//ich//dtd//de" • "http://www.meins.de/wurzel.dtd"> • oder • <!DOCTYPE wurzel SYSTEM • " http://www.meins.de/wurzel.dtd"> Proseminar Auszeichnungssprachen WS04/05

  22. XML - Dokumente Produktionsregel für ein Dokument: document ::= prolog element Misc* - Char* RestrictedChar Char*; Wurzelelement - enthält Informationen des Dokuments Proseminar Auszeichnungssprachen WS04/05

  23. XML - Dokumente • Elemente können leer sein, oder • Zeichenreferenzen (&#x132), • Entityreferenzen (&text;), • Text, • weitere Elemente enthalten. • Zudem können Attribute angegeben werden. Proseminar Auszeichnungssprachen WS04/05

  24. XML - Dokumente • Ein leeres Element: • <[Name] [Attribute]/> • Element mit Inhalt: • <[Name] [Attribute]> • [Inhalt] • </[Name]> • Der Name im Start-Tag und im End-Tag müssen identisch sein. Sie geben den Typ des Elementes an. Proseminar Auszeichnungssprachen WS04/05

  25. XML - Dokumente • Darstellung von Attributen: • [Attributname]="[Wert]" • Attribute können nur in Start-Tags oder leeren Elementen stehen, und dürfen dort nur einmal erscheinen. Proseminar Auszeichnungssprachen WS04/05

  26. XML - Dokumente • Bsp.: • <crlf /> • Bsp.: • <anfang xml:lang="de" echt = "wahr"> • </anfang> Proseminar Auszeichnungssprachen WS04/05

  27. XML - Dokumente • Korrekte Verschachtelung: • Das Wurzelelement ist Inhalt von keinem anderen Element – es ist einmalig. • Für jedes Nicht-Wurzelelement existiert ein anderes Element, dessen Inhalt es ist, Elter genannt. Es ist aber kein Inhalt von einem weiteren Element, das ebenfalls Inhalt des Elters ist. • Die Elemente- Hierarchie ist ein Baum Proseminar Auszeichnungssprachen WS04/05

  28. XML - Dokumente • Bsp.: • <?xml version = "1.0" ?> • <person geschlecht = "m"> • <vorname>Hans</vorname> • <nachname>Meier</nachname> • </person> Proseminar Auszeichnungssprachen WS04/05

  29. XML – Schema (DTD) Namensräume

  30. Namensräume Elemente mit gleichen Namen könnten unterschiedliche Bedeutung haben. • Ununterscheidbarkeit für verarbeitende Anwendung • Namenskonflikte Lösung: Namensräume Proseminar Auszeichnungssprachen WS04/05

  31. Namensräume Namensräume werden in dem Element festgelegt, in dem sie gelten sollen. <element xmlns:[Präfix]= "[IRI]"> </element> Proseminar Auszeichnungssprachen WS04/05

  32. Namensräume Die Namen von Elementen und Attributen, sowie die Attributwerte werden zu qualified names (QNames) erweitert. Dieser besteht aus dem Namensraumbezeichner und dem lokalen Namen, die beide durch einen ":" betrennt sind. Proseminar Auszeichnungssprachen WS04/05

  33. Namensräume • Bsp.: • <stadt> • <bauten:bank xmlns:bauten = "http://bauten.de/dtd"> • <bauten:eigentuemer bauten:person="nein"> • Geld eG • </bauten:eigentuemer> • </bauten:bank> • <moebel:bank xmlns:moebel = "http://mobilar.de/park" /> • </stadt> Proseminar Auszeichnungssprachen WS04/05

  34. Namensräume Es können beliebig viele Namensräume deklariert werden. IRIs müssen sich unterscheiden, da sonst ihre Namensräume als identisch angesehen werden. Proseminar Auszeichnungssprachen WS04/05

  35. Namensräume Es kann ein Namensraum als Default-Namensraum festgelegt werden, d.h. einen Namensraum, dem alle Elemente zugeordnet werden, die nicht ausdrücklich einem Namensraum zugeordnet sind. • Default-Namensraum: • <element xmlns="[IRI]"> Attribute müssen einem Namensraum immer explizit zugeordnet werden. Proseminar Auszeichnungssprachen WS04/05

  36. Namensräume • Bsp.: • <stadt> • <bank xmlns= "http://bauten.de/dtd"> • <eigentuemer person="nein"> • Geld eG • </eigentuemer> • </bank> • <moebel:bank xmlns:moebel = "http://mobilar.de/park" /> • </stadt> Proseminar Auszeichnungssprachen WS04/05

  37. XML – Schema (DTD) Aufbau einer DTD

  38. Aufbau einer DTD Die "document type definition" legt den Dokumenttyp fest. Sie ist eine Grammatik für eine Klasse von Dokumenten. Diese Definition schränkt somit die Menge möglicher XML - Dokumente ein, indem sie den Aufbau des Dokumentes angibt. Entspricht das Dokument den Vorgaben der DTD, so wird es als gültig ("valid") bezeichnet. Proseminar Auszeichnungssprachen WS04/05

  39. Aufbau einer DTD • Vorteile: • allen Dokumenten liegt eine vorgegebene Struktur zugrunde • es liegt ein gewisser Grad an Einheitlichkeit vor • Dokumente sind leichter zu verarbeiten Proseminar Auszeichnungssprachen WS04/05

  40. Aufbau einer DTD Eine Dokumententyp-Definition kann intern (in dem XML-Dokument) oder extern (in einer separaten Datei) erfolgen. • Folgendes lässt sich in einer DTD deklarieren: • Elemente • Attributlisten für Elementen • Entities • Notationen Zwischen den einzelnen Deklarationen sind Kommentare und "processing instructions" erlaubt. Proseminar Auszeichnungssprachen WS04/05

  41. Aufbau einer DTD (Elemente) Deklaration von Elementen: <!ELEMENT[Name] [Inhalt]> Der Name des Elementes gibt den Elementtyp an. Er muss den allgemeinen Regeln für Namen entsprechen. Jeder Elementtyp darf nur einmal deklariert werden. In diesem Abschnitt wird mit einem Element eine Instanz des Elementtyps bezeichnet Proseminar Auszeichnungssprachen WS04/05

  42. Aufbau einer DTD Deklaration von Elementen: <!ELEMENT[Name] [Inhalt]> Deklaration von leeren Elementtypen: <!ELEMENT [Name] EMPTY> Bsp.: <!ELEMENT crlf EMPTY> Proseminar Auszeichnungssprachen WS04/05

  43. Aufbau einer DTD Deklaration von Elementen: <!ELEMENT[Name] [Inhalt]> Deklaration von Elementtypen, die Text enthalten können: <!ELEMENT[Name] (#PCDATA)> Proseminar Auszeichnungssprachen WS04/05

  44. Aufbau einer DTD Deklaration von Elementen: <!ELEMENT[Name] [Inhalt]> Deklaration von Elementtypen, die jedes beliebige in der DTD deklarierte Element in beliebiger Reihenfolge und Anzahl enthalten können: <!ELEMENT[Name] ANY> Elemente dieses Elementtyps dürfen auch Text enthalten. Proseminar Auszeichnungssprachen WS04/05

  45. Aufbau einer DTD Deklaration von Elementen, die neben Text nur eine eingegrenzte Menge an Elementtypen enthalten dürfen: <!ELEMENT[Name] (#PCDATA | [Typ a]| .. |[Typ x])> Jeder Typ darf nur einmal in der Deklaration erscheinen. Ansonsten ist die Anzahl der Typen nicht beschränkt. Ein Element darf von jedem angegebenen Typ beliebig viele Elemente in beliebiger Reihenfolge enthalten. Sonderfall: Element, dass nur Text enthält. Proseminar Auszeichnungssprachen WS04/05

  46. Aufbau einer DTD • Notation einer Reihung (Sequenz): • ([Typ 1], [Typ 2] , .. , [Typ n]) • Die Elemente der angegeben Typen müssen in der Reihenfolge stehen, in der sie notiert werden. • Jeder Typ muss so oft vorkommen, wie angegeben. • Typen dürfen mehrfach erscheinen. • Die Reihung darf nicht leer sein. • [Typ x] kann ein Elementtyp aber auch wieder eine Reihung oder eine Liste von Alternativen sein. Proseminar Auszeichnungssprachen WS04/05

  47. Aufbau einer DTD • Notation einer Liste von Alternativen: ([Alternative a] | [Alternative b] | .. | [Alternative x]) An Stelle der Liste darf eine der Alternative stehen. Jede Alternative darf nur einmal erscheinen. Die Liste darf nicht leer sein. • Eine Alternative kann sowohl ein Element als auch eine Reihung sein. Proseminar Auszeichnungssprachen WS04/05

  48. Aufbau einer DTD • Angaben zur Häufigkeit der Vorkommen: • [Typ] [Häufigkeit] • bei keiner Angabe muss genau ein Element vorkommen. • '?' bedeutet, dass ein Element vorkommen darf (optional 0/1) • '+' bedeutet, dass mindestens ein Element vorkommen muss. Nach oben ist die Anzahl nicht beschränkt. (1..n) Proseminar Auszeichnungssprachen WS04/05

  49. Aufbau einer DTD • Angaben zur Häufigkeit der Vorkommen: • [Typ] [Häufigkeit] • '*' bedeutet, dass beliebig viele Elemente dieses Typs vorkommen dürfen, auch kein Element.(0..n) [Typ] kann auch eine Reihung oder Alternativliste sein. Proseminar Auszeichnungssprachen WS04/05

  50. Aufbau einer DTD Deklaration von Elementen, die nur ausgewählte Elemente in vorgegebener Reihenfolge und Anzahl beinhalten. (Kein Text!): <!ELEMENT [Name] [Kinder]> [Kinder] ist dabei entweder eine Reihung, eine Liste von Alternativen, oder ein Elementtyp. Trotz der beliebigen Schachtelung von Reihungen und Alternativlisten kann der Inhalt des Elementes nur aus weiteren Elementen (und Entities) bestehen. Proseminar Auszeichnungssprachen WS04/05