XML Ein paar Begriffe und Geschichtliches zu Beginn
XML Ein paar Begriffe und Geschichtliches zu Beginn
XML [Extensible Markup Language] = Auszeichnungssprache zur strukturierten, logischen oder formalen Auszeichnung von „Daten“ verschiedenster Art. XSL [Extensible Stylesheet Language] = Familie von Sprachen zur Erzeugung von Ausgaben und Layouts für XML-Dokumente. XSL-FO [XSL Formatting Objects] Formatierungsanweisungen XPath Adressierung von „Baumteilen“ XSLT [XSL Transformations] Transformationen von einem Baum in einen anderen http: //www. w 3. org/Style/XSL/ 19. 10. 2006 2 INIG/Peter Langmann: Einführung in XML
Markups und Tags Der Begriff des markup stammt aus dem Verlagswesen, aus einer Zeit, als Begriffe wie Desktop. Publishing noch unbekannt waren. Nach der inhaltlichen Überprüfung und Korrektur eines Manuskriptes folgte die Bearbeitung durch den Layouter, der die Entscheidungen über Seitenformat, Zeichensätze und weitere typografische Festlegungen traf. Diese wurden in Form von handschriftlichen Markierungen und Anweisungen in das Manuskript eingefügt und anschließend im Satz berücksichtigt. Mit Markups kann man das Layout bei Textverarbeitungsprogrammen definieren, bei E-Mailund Datenbank-Programmen können so die Daten formatiert werden. Die einzelnen voneinander getrennten Markup-Elemente nennt man Tags. 19. 10. 2006 3 INIG/Peter Langmann: Einführung in XML
Das Konzept der Auszeichnungssprachen („Markup Languages“) Auszeichnungssprachen, auch Beschreibungssprachen genannt, definieren die Bausteines Dokuments und legen die Beziehung fest, in denen die einzelnen Dokumente zueinander stehen. § Sie beschreiben den Inhalt von Dokumenten und deren Struktur § Sie bieten besondere Möglichkeiten zum Datenaustausch zwischen verschiedenen Systemen. § Sie können auch zur Definition anderer Auszeichnungssprachen benutzt werden. Jede Auszeichnungssprache hat ihre eigene Syntax für die Beschreibung der Markups. Wobei zwischen den Auszeichnungssprachen die Darstellung beschreiben, die Procedural Markup Languages (PML), und denen die Information beschreiben, den Descriptive Markup Languages (DML), unterschieden wird. 19. 10. 2006 4 INIG/Peter Langmann: Einführung in XML
Beispiele für frühe Auszeichnungssprachen Word. Perfect / DOS Te. X 19. 10. 2006 5 INIG/Peter Langmann: Einführung in XML
Das Konzept von „Generic Markup“ Im Gegensatz zum formatorientierten Ansatz geht es beim Generic Coding darum, die • Struktur, die • logischen Elemente und deren • Beziehung zu einander zu kennzeichnen. Generische Markierungen (generic, englisch: artmäßig) sagen etwas über die Art (den Inhalt, die Struktur, die Beziehung der Elemente) eines Dokuments aus. Sie werden als typisch für eine Klasse von Dokumenten angesehen. Die „Art“ bezeichnet zum Beispiel ein Kapitel, eine Überschrift, einen hervorgehobenen Text, eine Fußnote, einen Eigennamen, ein Zitat und so weiter. Vorteile: Die Struktur des Dokuments geht bei der Speicherung nicht verloren. Die Zuordnung einer bestimmten Darstellung zu einer bestimmten Klasse von Textstellen ist anwendungsspezifisch eindeutig möglich: Bei einem Ausdruck etwa hätten alle Überschriften die gleiche Schriftart und -größe, bei einer Ausgabe über einen Sprachsynthesizer immer den Hinweis Titel. Das Idee des „Generic Markup" wurde von William W. Tunnicliffe (1967) entwickelt. 19. 10. 2006 6 INIG/Peter Langmann: Einführung in XML
Überblick über die Entwicklung Eine der ersten, (geistes)wissenschaftlich fundierten Anwendungen von generischem Markup auf der Basis von SMGL findet sich bei den Strukturbeschreibungen der TEI (Text Encoding Initiative) http: //de. wikipedia. org/wiki/Text_Encoding_Initiative 19. 10. 2006 7 INIG/Peter Langmann: Einführung in XML
SGML = Standard Generalized Markup Language SGML (engl. Standard Generalized Markup Language) ist eine Metasprache, mit deren Hilfe man verschiedene Auszeichnungssprachen (engl. markup languages) für Dokumente definieren kann. SGML ist ein ISO-Standard. Wurde entwickelt von Charles Goldfarb, Ed Mosher, Ray Lorie (GML!) und 1986 in ISO 8879 standardisiert. Damit hatte "eine neue Zeitrechnung begonnen. SGML hat die Informationstechnologie aus den Fesseln der technischen Abhängigkeiten befreit und einen Weg eröffnet, Informationen ausschließlich auf der Grundlage ihrer inneren Gesetzmäßigkeiten und ihrer Funktion zu modellieren und zu verarbeiten. [. . . ] In der Text Encoding Initiative wurde eine SGML-Anwendung entwickelt, die Repräsentation von literarischen, historischen, religiösen und anderen Arten geisteswissenschaftlich relevanter Texte erlaubt [. . . ]" SGML d e f i n i e r t XML d e f i n i e r t Dokumentfamilien (Henning Lobin) 19. 10. 2006 8 INIG/Peter Langmann: Einführung in XML
XML = Extensible Markup Language Dt. "erweiterbare Auszeichnungssprache" 19. 10. 2006 9 INIG/Peter Langmann: Einführung in XML
XML = Extensible Markup Language Die Regelsätze von XML sind eine "Teilmenge", eine "Anwendung von SGML". Das bedeutet, dass XML-Dokumente immer auch gültige SGML-Dokumente sind. Quelle: http: //www. linkwerk. com/pub/xmlidp/2000/large/htsgxml. png 19. 10. 2006 10 INIG/Peter Langmann: Einführung in XML
XML entstand als offener Standard im Rahmen des W 3 C XML wurde von einer XML-Arbeitsgruppe entwickelt, die 1996 unter der Schirmherrschaft des World Wide Web Consortium (W 3 C) gegründet wurde. Den Vorsitz hatte Jon Bosak von Sun Microsystems inne. Editors: Tim Bray (Textuality and Netscape), Jean Paoli (Microsoft), C. M. Sperberg-Mc. Queen (W 3 C), Eve Maler (Sun), François Yergeau. Während HTML eine einzige Datentypdefinition für alle Webdokumente auf SGML-Basis ist, erlaubt XML die Definitionen eigener Elemente und beliebiger Dokumenttypdefinitionen (äquivalent zu abstrakten Datentypen bei objektorientierten Datenbanken). Es ist möglich für jeden Dokumententyp eigene, genrespezifische Definitionen zu generieren und diese an konzeptionelle Modelle von Wirklichkeit anzupassen. HTML definiert Webseiten (sehr viele unterschiedliche Dokumente) XML definiert "Grammatik" A definieren "Grammatik" B 19. 10. 2006 Dokumente unterschiedlichen Typs mit eigener, spezifischer "Grammatik" 11 INIG/Peter Langmann: Einführung in XML
XML entstand als offener Standard im Rahmen des W 3 C 1996: Erster Vorschlag 1998: XML 1. 0 Recommendation Derzeit gültige Version (Forth Edition) [2006] unter: http: //www. w 3. org/TR/xml/ (immer die letzte Version) 2004: XML 1. 1. Recommendation Derzeit gültige Version (Second Edition) [2006] unter http: //www. w 3. org/TR/xml 11 (immer die letzte Version) Dt. http: //www. edition-w 3 c. de/TR/2004/REC-xml 11 -20040204/ "Extensible Markup Language (XML) is a simple, very flexible text format derived from SGML (ISO 8879). Originally designed to meet the challenges of large-scale electronic publishing, XML is also playing an increasingly important role in the exchange of a wide variety of data on the Web and elsewhere. " [ http: //www. w 3. org/XML/ ] 19. 10. 2006 12 INIG/Peter Langmann: Einführung in XML
Ziele und Konzeption The design goals for XML are: 1. XML shall be straightforwardly („ehrlich“) usable over the Internet. 2. XML shall support a wide variety of applications. 3. XML shall be compatible with SGML. 4. It shall be easy to write programs which process XML documents. 5. The number of optional features in XML is to be kept to the absolute minimum, ideally zero. 6. XML documents should be human-legible and reasonably clear. 7. The XML design should be prepared quickly. 8. The design of XML shall be formal and concise. 9. XML documents shall be easy to create. 10. Terseness („Knappheit“) in XML markup is of minimal importance. [ http: //www. w 3. org/TR/2004/REC-xml-20040204/#sec-origin-goals ] 19. 10. 2006 INIG/Peter Langmann: Einführung in XML 13
Warum XML ? • XML ist eine Sprache zur Dokumentenauszeichnung • XML-Dokumente liefern nicht nur Daten, sondern auch Information über diese Daten. • XLM ist eine strukturelle und semantische Auszeichnungssprache, mit welcher die Struktur und die Semantik von Dokumenten beschrieben werden kann. • XML-basierte Dokumente sind in gleicher Weise "human-legible" und maschinenlesbar. • XML vertritt außerdem konsequent die Trennung von (strukturiertem) Inhalt und Formatierung. • XML-Daten sind daher unabhängig vom Ausgabemedium. • Die Ausgabe erfolgt mit Transformationen je nach Anwendung. • XML hat Schnittstellen zu Datenbanksystemen (DBMS). Datenbanken können XMLkonforme Daten exportieren und importieren. XML ist auch ein Datenaustauschformat (vgl. z. B. SOAP). • Die Formatierung erfolgt über Stylesheets oder Formatierungsprozesse. • Die Ausgabe der Dokumente kann on demand dynamisch generiert und die speziellen Bedürfnisse des Benutzers oder Ausgabegeräts angepasst werden. • Dauerhafte Archivierung mit offenen Standards. 19. 10. 2006 14 INIG/Peter Langmann: Einführung in XML
Die Strenge von XML Wohlgeformtheit: Wenn ein Dokument sich an die Regeln der Spezifikation hält, wird es als wohlgeformt (well-formed) bezeichnet. Gültigkeit: Das Dokument ist • wohlgeformt im Sinne der Regeln von XML • gültig (valid) in Bezug auf eine intern oder extern definierte "Grammatik". 19. 10. 2006 15 INIG/Peter Langmann: Einführung in XML
Von der Modellierung zur Instanz Das Modell definiert Regeln für Struktur und logischen Aufbau eines Dokuments oder einer Informationseinheit. (Man spricht auch von einer Dokumentgrammatik) Das Dokument ist eine Instanz (Ausprägung, engl. Instance) des Modells 3 3 3 Viele Dokumente können das Modell instanzieren 19. 10. 2006 16 INIG/Peter Langmann: Einführung in XML
Der Vorgang des Explizierens der Struktur durch Auszeichnung Ausgangspunkt: Semistrukturierte Datei • mit „Inhalten“ (Sprache / Bild / Audio / Video / …. ) • impliziten und • expliziten Strukturen verschiedenster Art Explizierung einer Struktur durch Hinzufügung von Markups 3 Erstellung einer Instanz eines Modells *. xml (Dokument mit Inhalten + Markups) optional basierend auf einem expliziten Dokumentenmodell Modelle können basieren auf • DTD (Document Type Definition) • XML Schema • … weitere 19. 10. 2006 17 INIG/Peter Langmann: Einführung in XML
Ein Beispiel für Auszeichnung 3 Thomas Bernhard schrieb seinen ersten Roman. . . <name>Thomas Bernhard</name> schrieb seinen ersten <gattung>Roman</gattung>. . . Eine DTD kann die Definition der Elemente liefern, ihres inneren Aufbaus und ihrer Eigenschaften sowie Regeln zur Abfolge der Elemente. <!ELEMENT name (#PCDATA)> 19. 10. 2006 18 INIG/Peter Langmann: Einführung in XML
Einheiten der Informationsmodellierung Wir unterscheiden. . . Ebene der abstrakten Einheiten (= Elemente): Diese beschreiben die Daten, gruppieren sie und ordnen ihnen Funktionen zu. Ebene der konkreten Daten (= Inhalte, Content) 3 <name>Thomas Bernhard</name> schrieb seinen ersten <gattung>Roman</gattung>. . . 19. 10. 2006 19 INIG/Peter Langmann: Einführung in XML
Verschiedene Typen von Elementen je nach ihrem „Inhaltsmodell“ Datenelemente: Der Inhalt besteht ausschließlich aus Daten, z. B. <b>. . </b> Elemente („Tags“) Containerelemente: Der Inhalt darf nur aus weiteren Elementen bestehen, z. B. <body> Leere Elemente: Nur Attribute, aber keinen „Inhalt“, z. B. <img> Elemente mit gemischtem Inhalt: Können sowohl Daten als auch Elemente beinhalten. 19. 10. 2006 20 INIG/Peter Langmann: Einführung in XML
Datenelemente Inhalt = Daten können Zeichenfolgen, Bilder, Videos, … sein. In der DTD werden Datenelemente, deren Inhalt Zeichenfolgen sind, wie folgt deklariert: <!ELEMENT name (#PCDATA)> Formal gesagt: „Es gibt ein Element name, das Daten vom Typ PCDATA beinhalten kann. “ Durch den Elementnamen kann die Information beschrieben und inhaltlich bestimmt werden. Semantik des Elements innerhalb eines Projekts: „Mit dem Element name werden Personennamen historischer Personen ausgezeichnet. “ # kennzeichnet ein Schlüsselwort. PCDATA steht für „Parsed Character Data“, also „geparste“ Folgen von (in einem Zeichensatz) kodierten Sprachzeichen. 19. 10. 2006 21 INIG/Peter Langmann: Einführung in XML
Datenelemente Durch die Elementnamen können verschiedene Arten von Informationen in einem Text unterschieden und ausgezeichnet werden. Die „Semantik der Auszeichnung“ wird extern durch Forschungsfragestellungen oder andere Kontexte festgelegt. <!ELEMENT <!ELEMENT name (#PCDATA)> strasse (#PCDATA)> wohnort (#PCDATA)> plz (#PCDATA)> email (#PCDATA)> Wir definieren damit, „wie für uns eine Adresse einer Person aussieht“, wie wir also die Informationseinheiten verstehen, die zu einer Adresse gehören. „plz“ könnte z. B. auch ein Attribut des Wohnorts sein. Die Benennungen gewährleisten aber nicht, dass die Elemente tatsächlich den entsprechenden Inhalt besitzen. In einer DTD gibt es wenig Möglichkeiten zur Einschränkung / Spezifizierung des Inhalts. 19. 10. 2006 22 INIG/Peter Langmann: Einführung in XML
Datenelemente, ein Beispiel <!ELEMENT <!ELEMENT 3 name (#PCDATA)> strasse (#PCDATA)> wohnort (#PCDATA)> plz (#PCDATA)> email (#PCDATA)> <name>Thomas Bernhard</name> <strasse>Obernathal 2</strasse> <wohnort>Ohlsdorf</wohnort> <plz>A-4964</plz> 19. 10. 2006 23 INIG/Peter Langmann: Einführung in XML
Containerelemente organisieren Datenelemente. Es entstehen Baumstrukturen und Abfolgeregeln, denen eine gültige Dokument-Instanz entsprechen muss. Damit werden die logischhierarchischen Strukturen eines Texts transparent gemacht, ähnlich wie wir sie aus der „Gliederungsansicht“ von Textverarbeitungsprogrammen kennen. Die Deklaration von. . . <!ELEMENT person (name, strasse, wohnort, plz, email)> <!ELEMENT name (#PCDATA)> <!ELEMENT strasse (#PCDATA)> <!ELEMENT wohnort (#PCDATA)> <!ELEMENT plz (#PCDATA)> <!ELEMENT email (#PCDATA)> . . . in einer DTD ergibt. . 19. 10. 2006 24 INIG/Peter Langmann: Einführung in XML
Grafische Darstellung person name Inhalt= #PCDATA strasse wohnort plz email Inhalt= #PCDATA 19. 10. 2006 25 INIG/Peter Langmann: Einführung in XML
Inhaltsmodell: Erklärung <!ELEMENT person (name, strasse, wohnort, plz, email+) > Das Inhaltsmodell des Containerelements gibt Auskunft über den Status und die Art der Abfolge der Elemente. Element muss genau einmal vorkommen 1 email 0 -1 email? Element kann 0 - 1 mal vorkommen 1 - email+ Element muss einmal und kann beliebig oft vorkommen 0 - email* Element muss nicht, kann aber beliebig oft vorkommen Name Strasse Wohnort Postleitzahl 19. 10. 2006 Email 1 Email 2 26 INIG/Peter Langmann: Einführung in XML
Inhaltsmodell: Beispiele <!ELEMENT person (name, strasse+, wohnort+, plz*, email? ) > <person> <name>Thomas Bernhard</name> <strasse>Obernathal 2</strasse> <wohnort>Ohlsdorf</wohnort> <plz>A-4964</plz> </person> <name>Thomas Bernhard</name> <wohnort>Ohlsdorf</wohnort> <plz>A-4964</plz> <email>unbekannt</email> </person> Welche Lösungen sind korrekt ? <person> <name>Thomas Bernhard</name> <strasse>Obernathal 2</strasse> <wohnort>Ohlsdorf</wohnort> </person> 19. 10. 2006 27 INIG/Peter Langmann: Einführung in XML
Inhaltsmodell: Untermodelle Beispiel 1: Einfaches Inhaltsmodell <!ELEMENT person (name, strasse+, wohnort+, plz*, email? )> Beispiel 2: Erweiterung durch Untermodell <!ELEMENT person (name, (strasse, wohnort)+, plz*, (email | telefon)? )> Untermodell (strasse, wohnort) muss als Ganzes einmal, kann aber auch öfter vorkommen. Wenn das UM vorkommt, muss es genau eine Straßenangabe und genau einen Wohnort in genau dieser Reihenfolge aufweisen. Konnektoren verknüpfen die Elemente im Inhaltsmodell: strasse, wohnort (email | telefon) Wohnort folgt auf Straße Email oder Telefon 19. 10. 2006 28 INIG/Peter Langmann: Einführung in XML
Hierarchie und Sequenz der Informationseinheiten Einfache Beschreibung eines Buchkatalogs <!ELEMENT katalog (buch+)> <!ELEMENT buch (autor+, titel, (verlag, jahr)? )> <!ELEMENT autor (vorname+, nachname)> <!ELEMENT <!ELEMENT vorname (#PCDATA)> nachname (#PCDATA)> titel (#PCDATA)> verlag (#PCDATA)> jahr (#PCDATA)> Versuchen Sie nach diesen Angaben eine XML wohlgeformte und valide XML-Datei zu erstellen! Externer Validator: http: //www. validome. org/ Diskutieren wir das Ergebnis anhand folgender Folie. 19. 10. 2006 29 INIG/Peter Langmann: Einführung in XML
Hierarchie und Sequenz: Informationsbaum am Beispiel Buch 1 -∞ buch 1 -∞ autor buch titel jahr verlag 0 -1 PCDATA 1 -∞ vorname PCDATA 19. 10. 2006 PCDATA nachname PCDATA <!ELEMENT katalog (buch+)> <!ELEMENT buch (autor+, titel, (verlag, jahr)? )> <!ELEMENT autor (vorname+, nachname)> <!ELEMENT <!ELEMENT vorname (#PCDATA)> nachname (#PCDATA)> titel (#PCDATA)> verlag (#PCDATA)> jahr (#PCDATA)> INIG/Peter Langmann: Einführung in XML 30
Leere Elemente Manchmal ist die Vergabe einer Leerstelle sinnvoll. <!ELEMENT autor ((vorname+, nachname) | unbekannt)> <!ELEMENT vorname (#PCDATA)> <!ELEMENT nachname (#PCDATA)> <!ELEMENT unbekannt EMPTY> Aut 3 <autor> <unbekannt></unbekannt> </autor> Beispiel aus XTHML: , <img /> EMPTY 19. 10. 2006 31 INIG/Peter Langmann: Einführung in XML
Elemente mit gemischtem Inhalt (mixed content) In erzählenden Dokumenten gibt es oft gemischten Inhalt. Ein Element hat Kindelemente, aber auch Text. <!ELEMENT absatz (#PCDATA | fussnote)*> <!ELEMENT fussnote(#PCDATA)> [… Attributdefinitionen] Diese Formulierung besagt, dass das Element Absatz sowohl geparste Zeichendaten als auch Fußnoten beinhalten kann, und zwar beliebig viele an beliebiger Stelle. Ein mögliches Beispiel: 3 <absatz>Die <fussnote nr = „ 1“ text = „Vgl. Oswald Wiener: Probleme der künstlichen Intelligenz. Berlin: Merve 1990“>Turing-Maschine</fussnote> ist ein endlicher Automat mit unendlichem Speicher, . . . </absatz> 19. 10. 2006 32 INIG/Peter Langmann: Einführung in XML
PROLOG im XML-File (1) <? xml version = "1. 0" encoding = "UTF-8"? > Die XML-Deklaration. Angabe des Formats der Datei, der Version und des verwendeten Zeichensatzes. Optional, aber üblich. <? php […]? > Processing Instruction: Dient zur Übergabe von Variablen und Anweisungen an externe Programme. Verarbeitungsanweisungen sind Auszeichnungen, aber keine Elemente, können daher (wie die Kommentare) überall stehen, ausgenommen in Tags. <!-- Kommentar --> <? xml-stylesheet href = "test. css" type = "text/css"? > Verarbeitungsanweisung für in Inkludierung eines CSS-Stylesheets. Der Wert von href ist ein gültiger URL. Optional! 19. 10. 2006 33 INIG/Peter Langmann: Einführung in XML
PROLOG im XML-File (2) <!DOCTYPE liste SYSTEM "test. dtd"> Die Dokumententyp-Deklaration. Ein gültiges Dokument muss eine Referenz auf eine DTD / ein Schemadokument haben, dem gegenüber es validiert werden kann. Wurzel element Status der DTD Ort der DTD (URL) <!DOCTYPE liste SYSTEM "test. dtd"> Status der DTD Name der Spezifikation (URN) <!DOCTYPE rss PUBLIC "-//Netscape Communications// DTD RSS 0. 91//EN" "http: //my. netscape. com/publish/format/rss 0. 01. dtd"> 19. 10. 2006 Ort der DTD (URL) INIG/Peter Langmann: Einführung in XML 34
Attribute spezifizieren und differenzieren die Informationen an einem bestimmten Knoten, sie „individualisieren“ die Knoten. Die Frage, ob besser Elemente oder Attribute verwenden werden sollten, hängt von der Analyse und Bewertung des Inhalt und der nachfolgenden Verarbeitung ab. 19. 10. 2006 35 INIG/Peter Langmann: Einführung in XML
Attribute Die Definition wird mit ATTLIST durchgeführt. Pro Knoten können viele Attribute definiert werden. <!ELEMENT belegschaft (person)*> <!ELEMENT person (name, funktion)> <!ELEMENT name (#PCDATA)> <!ELEMENT funktion (#PCDATA)> <!ATTLIST name sex (m|f) #REQUIRED> <!ATTLIST funktion abteilung (a|b|c) #IMPLIED> Element 3 Attributname Attribut. Wert <person sex = "f">Sibylle Berg</person> 19. 10. 2006 36 INIG/Peter Langmann: Einführung in XML
Beispiel Informationsbaum „Belegschaft“ (ohne Attribute) Beleg schaft Person Name Funktion PCDATA PCDATA 19. 10. 2006 37 INIG/Peter Langmann: Einführung in XML
Beispiel Informationsbaum „Belegschaft“ mit Attributen Beleg schaft Person Sex: f Person Sex: m Name Funktion Abt: b Name Funktion Abt: a PCDATA PCDATA 19. 10. 2006 38 INIG/Peter Langmann: Einführung in XML
Selektion der Teilmenge der weiblichen Personen Beleg schaft Person Sex: f Person Sex: m Name Funktion Abt: b Name Funktion Abt: a PCDATA PCDATA 19. 10. 2006 39 INIG/Peter Langmann: Einführung in XML
Schlüsselwörter zur Definition der Attribute #IMPLIED #REQUIRED #FIXED <!ELEMENT <!ATTLIST Attribut ist optional Attribut ist verpflichtend. Das Dokument ist nur gültig, wenn das Attribut vorhanden ist. Allerdings kann der Wert auch „leer“ sein. Der Attributwert ist konstant und unveränderlich. Das Attribut ist auch vorhanden und besitzt den definierten Wert, wenn es nicht explizit angeben wird. ueberschrift-1 (#PCDATA)> ueberschrift-1 status CDATA #REQUIRED > ueberschrift-2 (#PCDATA)> ueberschrift-2 status CDATA #FIXED „Kapitel“ > • Definiert ein verpflichtendes Attribut status für das Element ueberschrift-1. • Definiert ein Attribut status mit dem Wert „Kapitel“ für alle Elemente ueberschrift-2, auch wenn diese nicht angegeben werden. 19. 10. 2006 40 INIG/Peter Langmann: Einführung in XML
Attributtypen Attributwerte können in XML beliebige Textstrings sein. Eventuelle "<", " " " oder "&"-Zeichen müssen durch eine spezielle Kodierung geschützt werden. < > & " < > & " Diese „Beliebigkeit“ läßt sich durch die Definition von Attributtypen beschränken. Diese Beschränkungen werden auch „constraints“ genannt. In DTD's können Sie zwischen zehn Attributtypen wählen, um den Wertebereich von Attributen einzuschränken. XML-Schema bietet dagegen viel ausdifferenziertere Werkzeuge zur Einschränkung der Werte und ihrer formalen Darstellung. Hier die Notation in der DTD in schematischer Darstellung: <!ATTLIST Elementname Attributtyp [Schlüsselwort]> 19. 10. 2006 41 INIG/Peter Langmann: Einführung in XML
Attributtyp CDATA „Character Data“ kann jeden XML-konformen Textstring enthalten. Der allgemeinste Typ. Die Zeichen < & müssen jedoch „maskiert“ werden. <!ATTLIST Elementname Attributname CDATA [Schlüsselwort]> 3 <absatz>Die <fussnote nr = „ 1“ text = „Vgl. Oswald Wiener: Probleme der künstlichen Intelligenz. Berlin: Merve 1990“>Turing-Maschine</fussnote> ist ein endlicher Automat mit unendlichem Speicher, . . . </absatz> 19. 10. 2006 42 INIG/Peter Langmann: Einführung in XML
Attributtyp NMTOKEN(S) NMTOKEN Definiert ein sog. XML-Namenstoken. Erlaubt sind numerische und alphanumerische Zeichen sowie die Interpunktionszeichen "_ -. : ". Keine Leerzeichen. <!ATTLIST Journal jahr NMTOKEN #REQUIRED > Mögliche Werte für jahr: "März", "99", "02. 12. 2000" etc. Nicht erlaubt: „ 12. Dezember 2000" 3 NMTOKENS Enthält ein oder mehrere XML-Namenstokens (eine Liste), getrennt durch Leerzeichen. <!ATTLIST auftritt termine NMTOKENS #REQUIRED > 3 Möglicher Wert für Termine: "03 -01 -2005 04. 01. 2005 06_05_2200" 19. 10. 2006 43 INIG/Peter Langmann: Einführung in XML
Attributtypen Aufzählung und ID Aufzählung Formuliert eine Liste der möglichen Werte für ein Attribut. Jeder mögliche Wert muss ein XML-Namenstoken sein. <!ATTLIST datum monat (Jänner | Februar | März) #REQUIRED tag (1 | 2 | 3 | 4) #REQUIRED> ID Ein Attributwert für den Typ "ID" muss ein gültiger XML-Namen sein, der im Dokument einmalig vorkommt. Jedes Element darf maximal ein ID-Attribut haben. <!ATTLIST person matrikelnr ID #REQUIRED > 3 <person matrikelnr = „M 0098919">Peter Glaser</person> 19. 10. 2006 44 INIG/Peter Langmann: Einführung in XML
Typ IDREF(S) IDREF Verweist auf ein Attribut vom Typ ID eines Elements im gegenständlichen Dokument und muss ein gültiger XML-Name sein. Dies wird für Verweisstrukturen im Informationsbaum genutzt, die über Hierarchien nicht dargestellt werden können. […] <!ATTLIST person matrikelnr ID #REQUIRED > […] <!ATTLIST lv-teilnehmer tnid IDREF #REQUIRED > 3 <person matrikelnr = „M 0098919">Peter Glaser</person> <lv-teilnehmer tnid =„M 0098919"> <lv-teilnehmer tnid =„M 0098999"> </lv> IDREFS in Analoge zu NMTOKENS 19. 10. 2006 45 INIG/Peter Langmann: Einführung in XML
Funktion von IDREF Beleg schaft Person ID: P 01 Person ID: P 03 Chef: P 01 Person ID: P 02 Name Funktion Abt: b Name Funktion Abt: a Name Funktion PCDATA PCDATA 19. 10. 2006 46 INIG/Peter Langmann: Einführung in XML
ENTITY, NOTATION Das Attribut ENTITY verweist auf den Namen einer „nicht geparsten“ Entity, die irgendwo in der DTD deklariert wurde. Z. B. könnte auf eine JPEG-Datei verwiesen werden, die zuvor definiert wurde. <!ATTLIST bild quelle ENTITY #REQUIRED> <!ENTITY Bild-1 SYSTEM „http: //www. fotos. net/example. jpg“ NDATA jpeg > <!NOTATION jpeg SYSTEM "bild/jpeg"> NOTATION Enthält den Namen einer Notation, die in der DTD des Dokuments deklariert wurde. 3 <bild quelle = „Bild-1“ /> Dieses Bild verweist auf nun auf http: //www. fotos. net/example. jpg ENTITYS analog zu NMTOKENS. 19. 10. 2006 47 INIG/Peter Langmann: Einführung in XML
XML-Namen und Entities Namenskonventionen und formale Einheiten. 19. 10. 2006 48 INIG/Peter Langmann: Einführung in XML
XML-Namen sind Konventionen für die Formulierung von Namen in XMLKonstruktionen, wie z. B. für Elementnamen und Attributnamen. (Definitionen in XMLInfoset) XML-Namen dürfen jedes alphanumerische Zeichen beinhalten: Buchstaben a-z Ideogramme Ziffern 0 -9 _ (Unterstrich) - (Bindestrich). (Punkt) : (Doppelpunkt, ist jedoch reserviert!) Am Anfang des Namens dürfen keine Ziffern oder Interpunktionszeichen stehen. 19. 10. 2006 49 INIG/Peter Langmann: Einführung in XML
Zeichenreferenzen Eine Zeichenreferenz gibt einen Dezimal- oder Hexadezimalwert an, die dem UCS (Unicode Character Set) entspricht. Z. B. σ = Schreibweise für den Dezimalwert = Zeichen σ &#x 3 C 3; = Schreibweise für den Hexadezimalwert = Zeichen σ Wenn die Zeichen als Entities benannt sind, ist auch σ möglich! 19. 10. 2006 50 INIG/Peter Langmann: Einführung in XML
ENTITY-Referenzen in CDATA-Bereichen In Attributen des Typs CDATA beispielsweise dürfen (fast) alle Zeichen stehen, ausgenommen das < und das &. Diese Zeichen müssen „maskiert“ werden. Dafür gibt es fünf vordefinierte "Entity. Referenzen" (weitere können selbst definiert werden): < > " ' & < > " ' & Hinweis: Hat man größere z. B. Mengen an HTML-Code, verwendet man besser CDATAAbschnitte. In diesen ist die Maskierung nicht erforderlich. Ein CDATA-Abschnitt wird eingeleitet durch <![CDATA[. . . und abgeschlossen mit ]]> 19. 10. 2006 51 INIG/Peter Langmann: Einführung in XML
Interne ENTITIES, selbst gebacken Neben den vordefinierten Entities können Sie auch eigene definieren. Die Syntax dafür lautet: Syntax in der DTD: <!ENTITY Name "Text"> Beispiel: <!ENTITY xn "Elliote R. Harold und W. Scott Means: XML in a Nutshell. 2. Aufl. Beijing [u. a. ]: O'Reilly 2003"> 3 <literaturliste>&xn; </literaturliste> Achten Sie auf die Anführungszeichen! Der Ausdruck &footer; steht normalerweise im XMLDokument. Beim Parsen wird der Ersetzungstext in das XML-Dokument eingefügt. In einer DTD kann der Ausdruck nur an bestimmten Stellen stehen, von denen aus sie in den XML-Text kommen. 19. 10. 2006 52 INIG/Peter Langmann: Einführung in XML
Interne ENTITIES, selbst gebacken (2) 3 <literaturliste>&xn; </literaturliste> &footer; Achten Sie auf die Anführungszeichen! Der Ausdruck &name; steht normalerweise im XML-Dokument. Beim Parsen wird der Ersetzungstext in das XML-Dokument eingefügt. In einer DTD kann der Ausdruck nur an bestimmten Stellen stehen, von denen aus sie in den XML-Text kommen. 19. 10. 2006 53 INIG/Peter Langmann: Einführung in XML
Parameter ENTITIES (1) Sind ausschließlich zur Verwendung in der DTD gedacht. Ihre Aufgabe ist es, die Erstellung und Wartung von DTDs und deren Instanziierungen zu erleichtern. • Sich wiederholende Teile (z. B. bei Inhaltsmodellen) müssen nur einmal definiert werden. • Es können externe DTD-Teilmengen eingebunden werden. • Es können Bedingungen formuliert werden. • In den einzelnen Instanzen (XML-Dateien) ist ein Umdefinieren der PEs möglich. Definition der Entity: <!ENTITY % Name "Text"> Referenz auf die Entity in der DTD: %Name; 19. 10. 2006 56 INIG/Peter Langmann: Einführung in XML
Parameter ENTITIES: Beispiele Hier ein Bespiel für die Wiederverwendung einer Textdefinition und einer Definition für Illustrationen in verschiedenen Kontexten. Definition des Inhaltsmodells für Text <!ENTITY % text "#PCDATA | fussnote | zitat"> <!ENTITY % illustration "foto | grafik | chart"> <!ELEMENT absatz (%text; | %illustration; )> <!ELEMENT ueberschrift %text; > <!ELEMENT listenelement %text; >. . . 19. 10. 2006 57 INIG/Peter Langmann: Einführung in XML
Parameter ENTITIES: Umdefinition von Entities in der Instanz Hier ein Bespiel für die Umdefinition des PEs %illustration in einem bestimmten XML-File (also der Instanz), in dem zusätzlich auch noch Scans getaggt werden sollen. Referenz auf DTD: <!ENTITY % illustration "foto | grafik | chart"> 3 <? xml version = "1. 0" ? > <!DOCTYPE aufsatz SYSTEM "aufsatz. dtd" [<!ENTITY % illustration "bild | grafik | chart | scans"> <!ELEMENT scan EMTPY> <!ATTLIST scan dateiname NMTOKEN #REQUIRED> ]> Sie sehen hier eine Möglichkeit, im XML-File (der Instanz) ein Parameter Entity "lokal" neu zu definieren. Diese lokale, dokumentinterne Definition hat Vorrang gegenüber den Definitionen in der referenzierten DTD. 19. 10. 2006 58 INIG/Peter Langmann: Einführung in XML
Externe Parameter ENTITIES: Bedeutung DTDs können sehr umfangreich werden (die für XHTML 1. 0 hat z. B. 1500 Zeilen). Es ist jedoch möglich, DTDs in kleinere Portionen zu zerlegen und in eigenen Dateien abzuspeichern. Diese werden dann in der "Master-DTD" mit Hilfe externer Parameter-Entitiy-Referenzen adressiert um zum Zeitpunkt der Validierung in diese eingefügt. xhtml-lat 1. ent rt die wer xhtml 1 -strict. dtd den lu ink <!ENTITY Agrave "À "> <!-latin capital letter A with grave = latin capital letter A grave, U+00 C 0 ISOlat 1 --> xhtml-symbol. ent Folge für den XML-File, der eine Instanz von xhtml 1 -strict. dtd: À wird beim Parsen der Daten ersetzt durch À xhtml-special. ent 19. 10. 2006 59 INIG/Peter Langmann: Einführung in XML
Externe Parameter ENTITIES Syntax: <!ENTITY % Name SYSTEM "URL"> oder <!ENTITY % Name PUBLIC URN "URL"> Beispiel für die „Master-DTD“ (xhtml 1 -strict. dtd). Dort steht: Definition des Namens der externen Teilmenge <!ENTITY % HTMLlat 1 PUBLIC "-//W 3 C//ENTITIES Latin 1 for XHTML//EN" "xhtml-lat 1. ent"> Referenz (URL) auf die externe Teilmenge %HTMLlat 1; Bindet den Inhalt der externen Teilmenge in die "Master-DTD" ein 19. 10. 2006 60 INIG/Peter Langmann: Einführung in XML
- Slides: 58