Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XML Einführungskurs Referentin: Dipl.-Dok. Rusalka Offer

Ähnliche Präsentationen


Präsentation zum Thema: "XML Einführungskurs Referentin: Dipl.-Dok. Rusalka Offer"—  Präsentation transkript:

1 XML Einführungskurs Referentin: Dipl.-Dok. Rusalka Offer
FH Köln – Fakultät für Informations- und Kommunikationswissenschaft

2 Folie Folie Ziele von XML Folie 9 Allgemeines zu XML Folie 6-8 Folie 10-12 Eigenschaften von XML Folie XML und HTML Folie 16-19 Parser, Auszeichnungsarten, Beispiel Folie Prolog Folie Allgemeines zu DTDs Deklarationsarten und Namensregeln Folie Element-Typ-Deklarationen; Inhaltsmodelle Folie 57 – 77 Attribut-Typ-Deklartationen Folie Entity-Deklarationen Folie Notation-Deklarationen, Marked Sections etc Editoren

3 XML – Why learn XML ? Beiträge aus der XML4lib –Liste: ““Maintain a single list of subscription databases (complete with administrative info) without using a database to do it. I can format this one list anyway I want (by subject, name, staff-only views, etc.) using XSLT.“ Ran a pilot-project for storing digital publications and searching associated metadata using only XML and XSLT. OCLC Connexion offers a built-in crosswalk to convert MARC to XML(RDF-Dublin Core). We plan to use this in upcoming digitization projects to provide metadata to non-MARC systems. Librarians increasingly need to understand the relationships of standards like RDF, METS, DC, TEI, etc. and what to do with them.

4 XML – Why learn XML ? Beiträge aus der XML4lib –Liste: “Serials Solutions offers the option to receive reports in a single XML file. We could eventually use this file as a single source for viewing and searching the report.“ “Some OpenURL resolver systems require some XSLT know-how to format results lists. “ “Most importantly, XSLT is fun! “ In the wider University front, XML is increasingly being used as a publishing mechanism for Course Specifications, the University Handbook and so on. We feel there are increasing possibilities for integrating existing University data into our Library services using XML as the platform.

5 XML – Why learn XML ? Beiträge aus der XML4lib –Liste: “We recently used our XML skills to cosmetically alter the presentation of web pages within a vendor product, Fretwell-Downing's VDX product which is being used for the LIDDAS project in Australia (for inter-lending and document supply). The web pages for this product are all XSL files. We've modified the look and feel to compliment other end-user interfaces that we offer in our existing suite of products and couldn't have done that without our XML skills.“ “... frankly I look at XML/XSLT as a hammer -- once you have it, and know how to use it, you find all kinds of uses for it that would not necessarily have occurred to you without that tool in your hand. “

6 XML - Extensible Markup Language XML und sein Umfeld (1) · XML wurde von der XML Working Group entwickelt (früher SGML Editorial Review Board). · Aktuelle Spezifikationen rund um XML sind: XML 1.0 (Feb.98) Namespaces (Feb. 99) [Namensräume] -Xlink (Juni 2001) [XML - Linking - Language] -Xpointer (Endphase März 2002) [Adressierung von Verweizielen] -XML Base (Juni 2001) [Übertragung der Funktionalität des HTML- Base-Tags in XML] -XQUERY: (Dez. 2001) [Query Language for XML]

7 XML - Extensible Markup Language XML und sein Umfeld (2) XML Schema - Part 1 Structures (Mai 2001) XML Schema - Part 2 Datatypes (Mai 2001) [Alternative zu DTDs] DOM Level 3 (gerade in der letzten Phase) [Document Object Model, Objekt-Modell, dass den Zugriff auf XML und/oder HTML -Dokumente beschreibt -XSL : XSLT2.0 und Xpath 2.0 (Feb. 2001) [Transformation und Ausgabe von XML Dokumenten] -XML Protocol (Entwurf Dez. 2001) [XMLP, Protokoll für XML-Anwendungen]

8 XML - Extensible Markup Language Allgemeines: · System- und Anwendungsunabhängiges Datenformat · Sinnvoll z. B für den Datenaustausch innerhalb größerer Einrichtungen über das Web (Anwendung im Bereich Datenbanken, Autorensysteme, Dokumentarchive, Informationssysteme...) · Für Web-Designer, die nur an der Darstellung auf dem Bildschirm arbeiten nur mittelmäßig interessant

9 XML - Extensible Markup Language Ziele: · XML soll eine universelle Sprache für: -Datenaustausch, -Retrieval -Datenverwaltung · XML soll nutzbar für / über das Internet sein · XML soll viele Applikationen unterstützen · XML soll kompatibel mit SGML sein. · XML-Dokumente sollten einfach zu erstellen sein · Ursprünglich HTML - Alternative

10 XML - Extensible Markup Language Eigenschaften von XML · Der Anwender kann eigene Tags und Attribute definieren · Diese Tags haben nichts mit der Darstellung am Bildschirm zu tun, sondern sind semantische Tags · Trennung von Layout und Inhalt · Wiedergabe von definierten Strukturen Beispiel <autor>Joachim Ringelnatz</autor>

11 XML - Extensible Markup Language Eigenschaften von XML · XML ist eine Metasprache, mit der Dokumenttypen definiert werden können · Tags und Attribute werden vorher in einer Document Type Definition (DTD) oder einem Schema festgelegt · Auch ohne eine DTD / ein Schema kann ein XML- Dokument gelesen werden, wenn es spezielle Kriterien erfüllt

12 XML - Extensible Markup Language Eigenschaften von XML · XML ist eine echte Untermenge von SGML gültige XML-Dokumente sind gültige SGML Dokumente · XML ist einfacher anzuwenden und zu implementieren als SGML (Vergleich SGML-Spezifikation 500 S. XML- Spezifikation 26 S.)

13 XML - Extensible Markup Language XML und HTML (1) · XML hat im Gegensatz zu HTML keine fest definierte Menge von Tags und Attributen ·HTML-Dokumente können auch gültige XML- Dokumente sein, wenn sie nachfolgende 5 Kriterien erfüllen (Wohlgeformheitskriterien): · XML-Elemente haben immer ein Start-Tag und ein Ende-Tag: Start-Tag und Ende-Tag schließen ein Element ein

14 XML - Extensible Markup Language XML und HTML (2) ·Alle Attributwerte stehen in Anführungszeichen ·Es gibt keine leeren Tags, auch leere Elemente brauchen ein Ende-Tag: entweder <br></br> oder <br /> ·Die Elemente müssen sauber verschachtelt werden: richtig: <b><i>Richtige Verschachtelung</i></b> falsch: <b><i>Falsche Verschachtelung</b></i> ·Es gibt eine strikte hierarchische Struktur, mit genau einem Wurzelelement

15 XML - Extensible Markup Language XML und HTML (3) · XML-Dokumente müssen wohlgeformt sein (well-formed) · XML unterscheidet zwischen Groß- und Kleinschreibung (case sensitive) <h1> ist nicht dasselbe wie <H1> · Leerzeichen (white spaces) sind relevant · Künftiges HTML wird XML-Module als Grundlage haben

16 XML - Extensible Markup Language Parser · XML-Parser sind Programme, die XML-Dokumente Stück für Stück lesen und überprüfen · Ein Parser kann feststellen, ob ein Dokument den Kriterien der Gültigkeit und / oder der Wohlgeformtheit entspricht · Ein Parser kann ein auf verschiedene Dateien verteiltes Dokument zusammensetzen

17 XML - Extensible Markup Language Parser · Ein Parser erstellt einen Baum, in dem die Abhängigkeiten der Elemente erkennbar werden und unterstützt so Anwendungsprogramme · Die XML-Spezifikation enthält Regeln, die das Verhalten eines Parsers beschreibt · Im Allgemeinen überprüft der Parser ein Dokument sowie die zugehörige DTD und stellt Fehler fest

18 XML - Extensible Markup Language Auszeichnungsarten in XML XML-Dokumente bestehen immer aus Inhalt (content) und Auszeichnung (markup). Es gibt sechs verschiedene Arten von Auszeichnung: · elements · entity references · comments · processing instructions · marked sections · DTDs (document type definitions)

19 XML - Extensible Markup Language Ein einfaches XML-DOKUMENT <
XML - Extensible Markup Language Ein einfaches XML-DOKUMENT <?xml version="1.0" encoding="UTF-8” standalone="yes"?> <Adressbuch> <Person> <Name> <Nachname>Clinton</Nachname> <Vorname>Bill</Vorname> </Name> </Person> </Adressbuch>

20 XML - Extensible Markup Language Prolog Ein XML-Dokument sollte mit dem sogenannten Prolog beginnen, der die XML-Spezifikation und die Kodierungsinformation enthält, aber auch die Angabe, ob eine DTD vorhanden ist oder nicht. Beispiel: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

21 XML - Extensible Markup Language Prolog - Erläuterung <
XML - Extensible Markup Language Prolog - Erläuterung <?xml Tags, die mit einem Fragezeichen eingeleitet und abgeschlossen werden stellen eine sogenannte Processing Instruction (PI) dar Sie aktivieren den Parser zur Verarbeitung der Instruktionen im XML- Dokument

22 XML - Extensible Markup Language Prolog - Erläuterung version="1
XML - Extensible Markup Language Prolog - Erläuterung version="1.0" Angabe der XML-Version auf der das Dokument basiert. Diese Versionsdeklaration wird zum Interpretieren des XML Source-Code benötigt, da zukünftige XML -Versionen nicht ausgeschlossen sind Die Versionsdeklaration ist obligatorisch und steht immer hinter xml

23 XML - Extensible Markup Language Prolog - Erläuterung encoding="UTF-8" Die XML - Prozessoren müssen die Unicode-Codierungen UTF-8 und UTF-16 verarbeiten können. (UTF = UCS Transformation Format) (UCS = Universal Multi-Octet Coded Character Set) Die ersten 256 Unicode Zeichen entsprechen den Codes von ISO 646 (ASCII) und ISO (west- europäischen Zeichensatz, auch "Latin 1" genannt).

24 XML - Extensible Markup Language Prolog - Erläuterung standalone="yes" In dieser Deklaration gibt der Wert "yes" an, dass dieses XML-Dokument nicht auf einer DTD basiert. In diesem Fall kann das XML-Dokument nicht vom Parser auf Gültigkeit überprüft werden. Es kann aber bei Einhaltung der XML Syntax-Regeln als “wohlgeformt" gelten und von einem XML-fähigen Browser darstellbar sein. Der Wert “no“ gibt an, dass eine DTD vorhanden ist.

25 XML - Extensible Markup Language Prolog - Erläuterung Beispiel: <
XML - Extensible Markup Language Prolog - Erläuterung Beispiel: <?xml version= " 1.0" encoding="UTF-8" standalone= " no" ?> <!DOCTYPE Adressbuch SYSTEM "adress.dtd"> Ein Prolog mit einer Dokumenttyp-Deklaration und einem Verweis auf eine externe DTD namens adress.dtd

26 XML - Extensible Markup Language Prolog - Erläuterung <
XML - Extensible Markup Language Prolog - Erläuterung <!DOCTYPE Adressbuch SYSTEM "adress.dtd"> Bevor ein Parser beginnen kann ein XML - Dokument gegen eine DTD abzugleichen, um auf diese Art die Gültigkeit des Dokumentes festzustellen, muss ihm der Standort der DTD angegeben werden. Dieses geschieht durch die DOCTYPE-Deklaration. Zu jedem gültigen XML - Dokument gehört eine DOCTYPE-Deklaration

27 XML - Extensible Markup Language Prolog - Erläuterung <
XML - Extensible Markup Language Prolog - Erläuterung <!DOCTYPE Adressbuch SYSTEM "adress.dtd"> Die DOCTYPE-Deklaration enthält auch den Namen des hierachisch höchsten Elementes (Wurzelelement oder Dokumentelement), hier ‘Adressbuch‘. Das Schlüsselwort SYSTEM gibt an, daß die anschließend genannte Datei extern im Dateisystem oder Netz zu suchen ist. Hier kann ein Dateiname mit relativem oder absolutem Pfad stehen oder eine Internetadresse

28 XML - Extensible Markup Language Allgemeines zu DTDs (Document Type Definitons) Die DTDs erlauben es, zu einem XML-Dokument dem Parser Informationen über seinen Inhalt zukommen zu lassen. Sie enthalten die erlaubte Reihenfolge und die erlaubten Verschachtelungen von Tags, die Attribute, ihre Werte und den Default-Zustand, die Namen von externen Dateien, auf die verwiesen wird und die Entitäten, die vorkommen. Sie definieren somit das XML-Dokument.

29 XML - Extensible Markup Language Allgemeines zu DTDs (Document Type Definitons) · Eine DTD ist die Grammatik für das XML-Dokument, sie bestimmt welche Tags und Attribute für das jeweilige Dokument gültig ist · DTDs können extern angegeben werden (URI, URL) oder innerhalb des XML-Dokumentes · Eine externe DTD kann aber auch durch eine interne DTD ergänzt werden, ein Parser kann interne und externe DTDs zusammen zu einer Gesamt-DTD zusammenfügen

30 XML - Extensible Markup Language Allgemeines zu DTDs (Document Type Definitons) · Eine interne DTD-(Unter)-Menge wird immer zuerst eingelesen, bei mehrfach Deklarationen die sowohl in der internen als auch in der externen DTD vorkommen, gelten die der internen Untermenge · XML-Dokumente ohne DTD müssen den Kriterien der Wohlgeformtheit entsprechen · Eine DTD wird unter Verwendung einer formalen Grammatik notiert, der Extended Backus-Naur Form (EBNF)

31 XML - Extensible Markup Language einige Vorüberlegungen zur Erstellung einer DTD: · Welches sind die abzubildenden Dokumente bzw. Dokumentarten / Dokumenttypen und welche typische Struktur haben sie? · Welche Ziele werden verfolgt? Datenaustausch, Recherche, Ausgabe etc · Welche Software (Datenbank, Dokumenten managementsystem etc) wird verwendet

32 XML - Extensible Markup Language DTD: Deklarationsarten Innerhalb einer DTD kann es folgende Arten von Deklarationen geben: · Element Type Declarations · Attribute List Declarations · Entity Declarations · Notation Declarations

33 XML - Extensible Markup Language DTD: Deklarationen: Namensregeln Für Namen in einer DTD gelten folgende Regeln: · Die Zeichenfolge XML ist reserviert und darf nicht als Namensanfang verwendet werden · Namen müssen mit einem Buchstaben oder einem Unterstrich beginnen (Namensräume beginnen mit einem Doppelpunkt) · Die nachfolgenden Zeichen können Buchstaben, Ziffern, Punkt, Minuszeichen, Doppelpunkt und verschiedene andere Zeichen sein. Möglichst auf Sonderzeichen verzichten · Groß- und Kleinschreibung ist relevant

34 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations · Element-Typ-Deklarationen bestimmen die Namen der Elemente und die Inhaltsarten · Sie sind wichtigster Bestandteil in XML, da sie die strukturellen Einheiten angeben. · Elemente können folgendes enthalten -andere Elemente -Daten (Text, Graphik etc) -nichts (Definiton als leeres Element) · Der mögliche Inhalt von Elementen wird durch ein Inhaltsmodell festgelegt

35 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Inhaltsmodelle Folgende Inhaltmodelle existieren für Elemente: · Gruppen: Der Elementinhalt besteht aus Kindelementen / Subelementen. Das Auftreten der Kindelemente kann durch Operatoren bestimmt werden

36 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Inhaltsmodelle · Daten: Der Elementinhalt besteht aus Zeichen/Daten besteht und wird mit dem reservierten Wort #PCDATA angegeben · Gemischter Inhalt: Der Elementinhalt besteht aus Kindelementen und Daten

37 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Inhaltsmodelle · leerer Inhalt : Der Elementinhalt wird mit dem Schlüsselwort EMPTY angegeben Beispiel: <!Element br EMPTY> · beliebiger Inhalt: Der Elementinhalt wird mit Schlüsselwort ANY angegeben. Gemeint ist ein beliebiger Inhalt aus PCDATA und aller in der DTD definierten Elemente Beispiel: <!Element div ANY>

38 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Inhaltsmodelle: Operatoren Die Reihenfolge und das Auftreten von Kind- elementen und PCDATA wird durch Operatoren / Konnektoren bestimmt Mengenoperatoren: Beispiele <!ELEMENT Adressbuch (Person?)> Das Element Person taucht nicht auf oder genau einmal (also höchstens einmal)

39 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Inhaltsmodelle: Operatoren Mengenoperatoren: Beispiele <!ELEMENT Adressbuch (Person+)> Einmaliges oder mehrmaliges Auftreten des Elementes Person <!ELEMENT Adressbuch (Person*)> Element Person kann kein oder mehrmals (also beliebig oft) auftreten

40 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Inhaltsmodelle: Operatoren Strukturoperatoren: Beispiele <!ELEMENT Adressbuch (Person | Mensch)> Element Person oder Element Mensch kann auftreten (Bildung von Alternativen)

41 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Inhaltsmodelle: Operatoren Strukturoperatoren: Beispiele <!ELEMENT Adressbuch (Nachname, Vorname)> Element Nachname gefolgt von Element Vorname (Bildung von Sequenzen) <!ELEMENT Adressbuch (Nachname, Vorname)+> Zusammengesetztes Element (hier: Sequenz) tritt mindestens einmal auf

42 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele Eine typische Deklaration sieht so aus: <!ELEMENT Adressbuch (Person+)> <!ELEMENT Person (Name, *)> <!ELEMENT Name (Nachname, Vorname)> <!ELEMENT Nachname (#PCDATA)> <!ELEMENT Vorname (#PCDATA)> <!ELEMENT (#PCDATA)>

43 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: Erläuterung Eine Element-Typ-Deklaration beginnt immer mit <!ELEMENT , danach wird der Name des Elementtyps angegeben anschließt folgt das Inhaltsmodell (''content model'').

44 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: Erläuterung <!ELEMENT Adressbuch (Person+)> Die erste Deklaration bestimmt, dass es ein Element Adressbuch gibt. Danach folgt das ''content model'', das angibt, welche Elemente ''Adressbuch'' enthalten kann. In diesem Falle enthält das Element Adressbuch das Element Person. Das Pluszeichen hinter Person gibt an, dass das Element mindestens einmal aber auch mehrmals auftauchen kann.

45 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: Erläuterung <!ELEMENT Person (Name, *)> Die zweite Deklaration bestimmt das Element Person genauer: Das Element Person enthält die Elemente Name und , wobei diese genau in dieser Reihenfolge auftreten müssen. Das Element ist dabei optional, was durch das Sternchen am Ende kenntlich gemacht wird. Name muss genau einmal vorhanden sein.

46 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: Erläuterung <!ELEMENT Name (Nachname, Vorname)> Die dritte Deklaration bestimmt das Element Name. Das Element Name besteht aus Nachname und Vorname, die jeweils genau einmal vorkommen dürfen.

47 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: Erläuterung <!ELEMENT Nachname (#PCDATA)> <!ELEMENT Vorname (#PCDATA)> <!ELEMENT (#PCDATA)> Die Deklarationen in Zeilen 4-6 bestimmen die Elemente Nachname, Vorname und . Diese Elemente enthalten keine weiteren Elemente, sondern Daten bzw. Zeichen. Dies wird durch #PCDATA festgelegt.

48 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: <!ELEMENT Person (Nachname, Vorname, Adresse, Telefon, , Firma)> Hier wird eine feste Abfolge der Unter-Elemente vorgegeben. Bei der Benutzung des Kommas müssen die Unter-Elemente genau in der vorgegebenen Reihenfolge auftauchen und zwar genau einmal.

49 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: <!ELEMENT Person (Nachname | Vorname | Adresse | Telefon | | Firma)> Bei dieser Deklaration wird eine ausschließliche Oder-Vernüpfung gebildet: nur eines der Elemente darf als Unter-Element auftauchen.

50 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: <!ELEMENT Person (Nachname, Vorname, Adresse, Telefon, , Firma)*> Der Stern hinter der Aufzählung bewirkt, dass die Elemente in beliebiger Reihenfolge vorkommen können.

51 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: <!ELEMENT Person (Nachname, Vorname, Adresse, Telefon*, , Firma)> Der Stern hinter dem Unter-Element Telefon, bewirkt, dass dieses Unter-Element beliebig oft auf treten darf

52 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: <!ELEMENT Person (Nachname, Vorname, Adresse, Telefon*, , Firma?)> Das Fragezeichen hinter Firma bewirkt, dass dieses Unter-Element einmal aber auch gar nicht vorkommen darf.

53 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: <!ELEMENT Person (Nachname, Vorname, Adresse, Telefon*, +, Firma?)> Da Pluszeichen hinter bewirkt, dass dieses Unter-Element einmal oder mehrere Male vorkommen darf.

54 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: <!ELEMENT Person (Nachname, Vorname+, Adresse, Firma?, (Telefon | ))> Auch Klammerung ist möglich. Die Strukturoperatoren sind somit untereinander und bzgl. der Mengenoperatoren orthogonal anwendbar.

55 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: Der Inhalt eines Elements kann also aus Daten, aus Unterelementen oder beiden bestehen. Wenn diese Mischform aus PCDATA und Unter-Elementen verwendet wird, ist eine feste Form vorgeschrieben: <!ELEMENT P(#PCDATA | ul | ol | dl | img | a)*>

56 XML - Extensible Markup Language DTD: Deklarationsarten: Element Type Declarations: Beispiele: Bei gemischten Formen muss PCDATA immer am Anfang stehen, alle Elemente müssen alternativ und die ganze Gruppe optional sein. Es gilt also, dass zwar festgelegt werden kann, welche Elemente als untergeordnete Elemente auftreten können, aber nicht deren Reihenfolge oder deren Anzahl.

57 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Allgemeines · Attribute werden verwendet, um Elemente genauer zu beschreiben · Sie enthalten zusätzliche Informationen über Elemente und Elementinhalte · Um den Elementen Attribute zuzuweisen, müssen diese Attribute vorher deklariert werden · Eine Attributliste bezieht sich immer auf ein Element.

58 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Allgemeines · Zur Attributdeklaration gehört der Elementname sowie eine Angabe zum Attributtyp und zum Default-Wert · Attribute werden in den Start-Tags der Elemente angegeben, ihre Werte stehen immer in Anführungszeichen · Entscheidungsfindung notwendig: Codierung der Information als Attribut oder Element?

59 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Beispiel <!ATTLIST Person Gender (male | female) #implied> Jede Attributdeklaration besteht aus drei Teilen: · Einen zug. Elementennamen (Name, hier Person) · einem Typ (Type, hier Gender) und einem · Standardwert (default value, hier alternativ male oder female).

60 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen Man kann die Attributtypen grob in drei Gruppen unterteilen · Zeichenketten CDATA: Strings, jeder Text ist zugelassen, angegeben durch CDATA · Aufzählungstypen (enumerated type): es wird eine Liste der möglichen Werte vorgegeben ist

61 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen · Token-Typen: mehrere vordefinierte Attributtypen (ID, IDREF, IDREFS, NMTOKEN, NMTOKENS, NOTATION, NOTATIONS, ENTITY, ENTITIES)

62 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Standardattributvorgaben Manche Attribute sollen obligatorisch gesetzt werden, andere nicht. Dafür werden bestimmte Attributvorgaben genutzt. · #REQUIRED: Das Attribut muss bei jedem Vorkommen im Dokument einen explizit spezifizierten Wert besitzen ·#IMPLIED: Der Attributwert ist nicht unbedingt nötig, es gibt auch keinen Defaultwert. Wenn kein Wert angegeben ist, muss der XML-Parser ohne einen Wert fortfahren

63 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Standardattributvorgaben · ''<value>'': Einem Attribut kann jeder legale Wert als Standard zugewiesen werden. Der Attributwert ist nicht zwingend bei jedem Element des Dokumentes nötig. Ist kein Wert angegeben, so wird der Standardwert eingesetzt · #FIXED ''<value>'': Einem Attribut kann ein fester Wert zugewiesen werden. In diesem Falle ist das Attribut nicht zwingend vorgeschrieben, aber falls es vorkommt, muss es den spezifizierten Wert enthalten.

64 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Beispiele <!ATTLIST Form Method CDATA #FIXED ''Post''> In diesem Beispiel wird für das Elemtent Form ein Attribut Method deklariert, welches vom Typ CDATA ist und Vorgabewert ''Post'’ hat <!ATTLIST Person Id ID #REQUIRED> In diesem Beispiel wird für das Element Person ein Attribut Id vom Typ ID deklariert, welches einen Wert enthalten muß.

65 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Beispiele <!ATTLIST Person Name CDATA #IMPLIED> In diesem Beispiel wird für das Element Person ein Attribut Name deklariert, welches vom Typ CDATA ist. Der Attributwert ist optional <!ATTLIST Person Gender (male | female) '’female''> In diesem Beispiel wird für das Element ein Attribut gender definiert, welches vom Typ enumerated type (Aufzählungstyp) ist. Default-Wert ist female.

66 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen: CDATA Zeichenketten Mit dem Wort CDATA wird einem Attribut der Zeichenketten-Typ zugeordnet. CDATA entspricht PCDATA bei der Deklaration von Elementen. Wird ein Attribut dem CDATA-Typ zugeordnet, so kann eine beliebige Zeichenfolge als Wert auftreten. Beispiel <!ATTLIST person name CDATA #IMPLIED>

67 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen: enumerated type Aufzählungstypen: Attribute werden dem Aufzählungstyp zugeordnet, wenn mehrere Werte aus einer Aufzählung ausgewählt werden können Beispiel: <!ATTLIST Person Gender (male | female | unknown) ''unknown'')> Wenn das Element Person kein Gender Attribut hat, wird ihm automatisch ''unknown'' zugewiesen.

68 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen: Token Typen Token-Typen: · ID · IDREF, IDREFS · NMTOKEN, NMTOKENS · NOTATION, NOTATIONS · ENTITY, ENTITIES

69 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen: Token-Typen: ID Token-Typen: ID ID-Attribute werden benötigt, um Elemente zu identifizieren. Der Wert eines ID-Attributs muss immer eindeutig sein d.h. er darf sich in dem Dokument nicht wiederholen. IDs können Elemente in einem Dokument eindeutig kennzeichnen.

70 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen:Token-Typen: ID Beispiel: <!ATTLIST Ware Nummer ID #REQUIRED)> Für das Element Artikel wird hier ein Attribut mit dem Namen Nummer deklariert, dass den Typ ID besitzt. Mit REQUIRED wird festgelegt, dass das Attribut für das Element Ware immer angegeben werden muss.

71 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen:Token-Typen: IDREF, IDREFS IDREF, IDREFS Der Wert eines IDREF-Attributs ist die Zeichenfolge, die als Wert eines ID-Attributes in irgendeinem Element des Dokuments erscheint. Es dient also als Verweisziel. Mit dem IDREF-Attribut lassen sich Verweise herstellen. IDREFS kann mehrere Werte annehmen, die durch Leerzeichen getrennt werden. Für diesen Fall soll die Software dem Anwender eine Selektion aus Verweiszielen anbieten

72 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen:Token-Typen: IDREF, IDREFS Beispiel <!ATTLIST Standort Bezug IDREFS #REQUIRED)> Man könnte sich nun innerhalb eines Dokumentes die folgende Konstruktion vorstellen: <Ware Nummer="999"> ... </Ware> <Standort Bezug=" "> ... </Standort>

73 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen:Token-Typen: NMTOKEN, NMTOKENS · NMTOKEN-Attribute sind eine restriktive Form von String-Attributen · Der Wert ist ähnlich aufgebaut wie bei CDATA- Attributen, allerdings umfasst er häufig nur ein Wort. Dieses Wort ist bestimmten Beschränkungen unterworfen, die für die Namensbildung in XML gelten. · Der Plural NMTOKENS umfasst mehrere NMTOKEN- Werte, die durch Leerzeichen getrennt werden.

74 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen:Token-Typen: NOTATION, NOTATIONS · Attribute vom Typ NOTATION sollen den Inhalt eines Elementes speziell interpretieren · Notations-Attribute werden benötigt, um z.B. auf externe Informationen zugreifen zu können (Z.B gif, pdf, ps etc) Beispiel <!NOTATION Gif SYSTEM ''http://www.viewer.de/viewer.exe''> <!ATTLIST Bild Typ NOTATION> <Bild Typ=''Gif''>...</image>

75 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen:Token-Typen: ENTITY, ENTITIES ENTITY ist der Oberbegriff für verschiedene Arten von Objekten. Zeichenketten können ENTITIES sein, aber auch Dateien oder Teile von Dateien. Entitäten werden in der DTD deklariert, d.h. eine Anzahl von Zeichen wird mit einem Namen ausgestattet und diese Entität kann dann im XML-Dokument verwendet werden. Entities können z.B. auch deklariert werden , um sich Schreibarbeit zu ersparen.

76 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen:Token-Typen: ENTITY, ENTITIES Man kann z.B. folgendes (interne) Entity deklarieren: <!ENTITY fbi "Fachbereich Bibliotheks- und Informationswesen''> Dieses ENTITY wird später im Dokument durch &fbi; angegeben. Wenn ein Parser im Dokument auf &fbi; stößt, wird er den Wert "Fachbereich Bibliotheks- und Informationswesen'' einsetzen. Auch Sounddateien können als ENTITY angegeben werden.

77 XML - Extensible Markup Language DTD: Deklarationsarten: Attribute-List Declarations: Attributtypen:Token-Typen: ENTITY, ENTITIES Im Bereich der Attributdeklarationen ist der Wert eines ENTITY-Attributs der Name eines externen binären ENTITY. Der Wert von ENTITIES sind die Namen verschiedener externer binärer ENTITIES, die durch Leerzeichen getrennt werden. Mehr zu Enitäten im Bereich Entity -Deklarationen Beispiel: <!ATTLIST homepage sound ENTITY #IMPLIED>

78 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations Entities sind Objekte, die einen Namen haben und einen bestimmten Inhalt. Stößt ein Parser beim Lesen eines XML-Dokumentes auf ein ENTITY, so schaut er in der DTD nach und setzt an dieser Stelle den Inhalt des ENTITY ein. Dieser Inhalt wird vorher in den Entity Declarations festgelegt. Sobald ein ENTITY deklariert ist, kann der Parser den Inhalt an jeder gewünschten Stelle einsetzen.

79 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations Man unterscheidet mehrere Arten von ENTITIES: · allgemeine Entities und Parameter Entities · geparste und nicht geparste Entities · interne und externe Entities

80 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Allgemeine Entitity-Deklaration · Allgemeine / generelle Entitäten werden als Text- Konstanten benutzt. Beispiel <!ENTITY fbi ”Fachbereich Bibliotheks und Informationswesen" > · Wenn im XML-Dokument nun die Entität &fbi; enthalten ist wird Parser sie durch “Fachbereich Bibliotheks- und Informationswesen“ ersetzten.

81 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Parameter Entity-Deklaration · Die Deklaration eines Parameter-Entities gleicht der eines allgemeinen Entities · Dem Kürzel wird noch ein Prozentzeichen vorangestellt. · Der Aufruf erfolgt auch vorangestelltem Prozentzeichen (%) · Der Parser setzt dann den definierten Inhalt ein

82 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Parameter Entity-Deklaration Unterschied zwischen allgemeinen Entities und Parameter Entities: · allgemeine Entities werden im XML-Dokument verwendet · Parameter Entites werden nur innerhalbvon DTDs zur Verkürzung der Syntax verwendet, bzw. um Konstanten zu bilden.

83 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Parameter Entity-Deklaration Beispiel: <!ENTITY %headings "H1|H2|H3|H4|H5|H6"> Hier werden alle Überschriften in HTML dem Entity %headings; zugewiesen. Nun kann man in der DTD auf dieses Entity zurückgreifen, wenn man es braucht, z. B zum Definieren des Body-Tags.

84 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Parameter Entity-Deklaration Beispiel: Aufruf eines Parameter-Entities <! ELEMENT body (%headings;| P| HR)*> Hier wird definiert, dass das Body-Tag die Elemente, die im Entity %headings; ''verborgen'' sind sowie P und HR enthalten darf.

85 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Geparste Entities Die allgemeinen und die Parameter Entities gehören zur Gruppe der geparsten Entities, d.h wenn der Parser auf ein solches Entity stößt, kann er es auflösen und den Inhalt einsetzten.

86 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Nichtgeparste Entities · nicht geparste Enitities verweisen auf Dateien, die als Entity formuliert sind aber kein Markup darstellen z.B gif, pdf, bmp · die Art der Daten, auf die verwiesen wird, muss vorher als Notation deklariert sein. (Mehr dazu im Bereich der Notationen-Deklaration)

87 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Nichtgeparste Entities · nicht geparste Entities stellen eine gute Möglichkeit dar, Nicht-XML-Daten zu berücksichtigen · In der Deklaration muss die Notation (das Datenformat) mit dem Schlüsselwort NDATA angegeben werden · Um nicht geparste Entities zu referenzieren müssen Attribute verwendet werden.

88 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Nichtgeparste Entities Beispiel: <!ENTITY logo SYSTEM "/bild/logo.gif" NDATA GIF> <!ELEMENT grafik EMPTY> <!ATTLIST grafik src ENTITY #REQUIRED> Aufruf:<p>Das neue Logo<grafik src=“logo“ /> steht hier </p>

89 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Interne Entities Ein internes Entity ist ein Entity, dessen Inhalt in einer Entity-Deklaration bestimmt wird. Beispiel <!ENTITY JS ”Javascript"> Alle internen Entities sind geparste Entities!

90 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Interne Entities Ebenso wie in HTML gibt es auch in XML einige Zeichen die für den Parser eine besondere Bedeutung als Markup haben. Diese Zeichen müssen im Dokument als Entitäten aufgerufen werden. Fünf vordefinierte interne Entities werden in XML verwendet: · < linke spitze Klammer (<). · > rechte spitze Klammer (>). · & Kaufmanns-Und (&). · ' Hochkomma ( ' ). · " Anführungszeichen ( " ).

91 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Externe Entities · Externen Entities sind Teile eines XML-Dokumentes die ausserhab des Dokumentes liegen und referenziert und geparst werden. · Externe Entitities erlauben einen modularen Aufbau von XML-Dokumenten · Externe Enitities müssen gültig gegenüber der DTD des referenzierenden Dokumentes sein, damit das referenzierende Dokument gültig ist.

92 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Externe Entities · Externe Entities dürfen nur im Dokument selber oder als Inhalt eines allgemeinen (internen) Entities referenziert werden (z.B. &fbi;) · Es ist möglich XML-Dokumente nur aus externen Entities zusammenzusetzen · Beispiel für die Deklaration einer externen Entität: <!ENTITY fbi SYSTEM "/htdocs/fb.xml">

93 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations: Externe Entities · Externe Entities können auch als externe Parameter Entities vorkommen · Externe Parameter Entities werden innerhalb einer DTD referenziert · Externe Parameter Entities sind Dateien mit gültigen Deklarationen oder Teilen davon Beispiel für die Deklaration einer externen Parameter Entität: <!ENTITY % fbi SYSTEM "/htdocs/fb.dtd">

94 XML - Extensible Markup Language DTD: Deklarationsarten: Entity Declarations Gebräuchlich sind auch folgende Entity-Bezeichnungen, die sich alle aus den behandelten Entitiy - Gruppen ableiten lassen · interne Parameter Entities · externe Parameter Entities · interne generelle Entities · externe generelle geparste Entities · externe generelle nicht-geparste Entities · vordefinierte Entities

95 XML - Extensible Markup Language DTD: Deklarationsarten: Notation Declarations · Notationen-Deklarationen liefern Informationen über den Namen und das Format von Nicht-XML- Daten wie Graphiken, Text-Files etc. · Diese Daten werden übergeben durch ein generelles nicht geparstes Entity als Inhalt eines Elemtentes mit einem Notation Attribut · Der Name der Notation erlaubt es der XML- Anwendung ein definiertes Hilfsprogramm aufzurufen

96 XML - Extensible Markup Language DTD: Deklarationsarten: Notation Declarations · Nach dem Namen der Notation wird das Schlüsselwort SYSTEM notiert · Die im Anschluß an SYSTEM angegebene Datei beinhaltet den Pfad zu einem Hilfsprogramm oder zu einer Datei die zur Verarbeitung des Datenformats benötigt wird · Der System-Identifier kann auch leer bleiben Beispiel: < !NOTATION bmp SYSTEM "http://www.bmp.com/bmpviewer.exe">

97 XML - Extensible Markup Language Markierte Bereiche: CDATA - Sections Markierte Bereiche (cdata sections) geben den Inhalt unverändert wieder. Diese Sektionen werden nicht ”geparst”, so dass Zeichen, die sonst als Markup-Zeichen vom Parser missverstanden werden könnten, problemlos dargestellt werden. Beispiel <![CDATA[ 50*10>100 ]]>

98 XML - Extensible Markup Language Markierte Bereiche: Conditional - Sections · Bedingte Abschnitte sind bestimmte Teile einer DTD deren Deklarationen in Abhängigkeit von einem Schlüsselwort vom Parser verarbeitet oder ignoriert wird. In diese Abschnitte können beliebige Deklarationen enthalten sein. · Beim Schlüsselwort “INCLUDE“ wird der Inhalt eines bestimmten Abschnittes berücksichtigt, beim Schlüsselwort “IGNORE“ wird der Abschnitt ignoriert. · Durch die Zuweisung dieser Schlüsselwörter an Parameter-Entitäten läßt sich die Berücksichtung von Deklarationsabschnitten einfach ändern

99 XML - Extensible Markup Language Markierte Bereiche: Conditional - Sections Beispiel: <! ENTITY % offiziell “INCLUDE“> <! [%offiziell;[ <! ELEMENT brief (Datum, Anschrift) > ]] >

100 XML - Extensible Markup Language Kommentare Kommentare dürfen sowohl innerhalb einer DTD (Ausnahme: innerhalb von Deklarationen) als auch im XML - Dokument stehen. Sie stehen zwischen den Zeichen <!-- und --> und werden vom Parser ignoriert.

101 XML - Extensible Markup Language Gültigkeit Ein XML-Dokument ist dann gültig (valid), wenn der Abgleich von Dokument und DTD keine Fehler ergibt, d.h. die in der DTD deklarierten Elemente, Attribute, Entities, Notationen, Referenzen etc. im XML-Dokument entsprechend der Deklarationen vorkommen. Wenn ein Dokument einmal als gültig befunden worden ist, macht es aufgrund des Zeitaufwandes wenig Sinn, die Prüfung zu wiederholen, wenn das Dokument aufgerufen wird bzw. verschickt wird. Darum hat man für die schnellere Überprüfung die Kriterien der Wohlgeformtheit entwickelt.

102 XML - Extensible Markup Language Wohlgeformtheit Bei der Überprüfung auf Wohlgeformtheit wird kein Abgleich mit der DTD vorgenommen. Der Parser versucht hier lediglich die Baum-Struktur des Dokumentes zu ermitteln. Für wohlgeformte Dokumente gelten folgende Kriterien: · Leere Elemente wie <br> oder <hr> brauchen ein Ende-Tag, also <br></br> oder <br /> · Alle Attributwerte stehen in Anführungszeichen · Die Elemente sind sauber verschachtelt

103 XML - Extensible Markup Language Editoren -Peter‘s XML Editor (Freeware) -Macromedia Dreamweaver, Macromedia Homesite, Adobe Golive (eigentlich HTML-Editoren, jetzt mit XML Funktion) - Xmetal (www.xmetal.com) -XML-Editor Suite (www.morphon.com) -XML Spy Suite (www.altova.com)

104 XML - Extensible Markup Language Editoren -XML Writer www. xmlwriter
XML - Extensible Markup Language Editoren -XML Writer -Extensibility (www.tibco.com) (Content Management System) - Team Site (www.interwoven.com) (Content Management System)


Herunterladen ppt "XML Einführungskurs Referentin: Dipl.-Dok. Rusalka Offer"

Ähnliche Präsentationen


Google-Anzeigen