640 likes | 795 Vues
ECM – Enterprise Content Management. Konzepte und Techniken rund um Dokumente. 2009 / 1. Auflage. Kapitel 2 / Capture - XML. Gliederung. XML- Historie, Ziel, Position zu HTML Struktur und Syntax XPath, XQuery, Ablage. Warum XML ?. XML ist die einzige Möglichkeit,
E N D
ECM – Enterprise Content Management Konzepte und Techniken rund um Dokumente 2009 / 1. Auflage Kapitel 2 / Capture - XML
Gliederung XML- Historie, Ziel, Position zu HTML Struktur und Syntax XPath, XQuery, Ablage
Warum XML ? XML ist die einzige Möglichkeit, die Vielzahl der Daten, Anwendungen und Geräte des E-Business zu verwalten
Entwicklungsmotive Zwei Motive haben die Entwicklung von XML ausgelöst: Die seit 1969 für die Beschreibung von Dokumentenstrukturen verwendete Standard Generalized Markup Language SGML war zu komplex. HTML als die einflussreichste aus SGML abgeleitete Auszeichnungssprache erwies sich wegen des weitgehend fixierten Satzes von Elementtypen als zu starr
XML-Beispiel Quelle: GS1 Germany
XML-Merkmale • XML ist ein offener Standard • XML basiert auf selbstbeschreibenden Merkmalen (Kontext als auch Inhalt) • XML ist leicht erlernbar • XML ist leicht sowohl von Rechnern als auch von Menschen zu lesen • XML Dokumente sind leicht erweiterbar • XML ist plattform- und anwendungsunabhängig
XML als Integrationswerkzeug Business-to-Consumer Transaktion EDI VS. Inhaltsverteilung Kommunikation zwischen Anwendungen Quelle : Hochberg, SAG-Symposium, 2000
XML-Dokumententypen Projekt- daten existierende Datenbanken Briefe kj flsjd kjs lskjlkj lskjd lksjl fslk jdlksj fksjdlkjlkjf lskjdlkjf slkjkj flskdjljdkfj s lkjlkjlsd s dfl skjd f slkdjflskdj lslkjdflk lskjd lfksjdlk lskdjfl aölskjdfölskdjf söldkfjlskdj föaslkdjlskdjf ösldkfjlskd föalskdj ksjdlfkjslkjd zentralesDatenmanagement Fax Edmund Boister Minimillennium Minga Kunden# 08/15-4711 Sehr geehrte Damen und Herren! Bitte fakturieren Sie folgenden Auftrag: # Beschreibung Audio Listen asdas ddas(asdsad) asdasddasda asdasdsd asdasdsdasdsdasdas sdassdsdasd sdas sdasds dassdasdsdasd(werwe) sdasdaskjl lkjf ölkjglkdf jgs kjlkfjgölkfjg lkdfjg ldkfjglö dkfjlgdkk Video E-Mails kjfskdjfl asdasdasdasd lkjfkjdflks fa sdf asdfsdf as kjlfkjslkjkjl df asdf sdfsd sdksldjfslkdf laskjdkdjf lskdj sd hflaksjdhf skk fksjdlfj öalsjdlfksjdf slkd lksdjf slkdfjlkdj aölskdjf skdjf slkjlj öa södlfjlkd föjkal slkdf lkjflksjdföa ljls df lskjd flkj llksd fjlakkjshd fkahlkh kshd flaksh kj flkahksjd flkajkjsh flkajsh dfkj h ksj fksjdhf la Bilder Prozess- beschreibungen
XML für verschiedene Layouts und Geräte Wetter- daten Drucker CD Bild Bericht News Ticker Frankfurt: Wind 4 WNW / Rain / 22°C Internet
XML - Überblick Einordnung – Demo-Video
XML: Trennung von Content und Layout Darstellung der logischen Struktur von Dokumenten Layoutinformationen davon separat Quelle: Roland Boendgen
XML-Nutzen • XML Tags • erlaubt selbstbeschreibende Daten • XML Programming Interface • arbeitet mit jedem Programmiermodell zusammen • XML Style Sheets • erleichtert die Personalisierung von Informationen • XML Document Type Definitions • gestattet eine Dokumentenbeschreibung für unterschiedlichste Belange Quelle : Viljoen, SAG-Symposium, 2000
Struktur von XML Im Mittelpunkt stehen Dokumente
HTML vs. XML HTML XML Struktur Festgelegt durch Struktur-Tags. Dokumentstruktur bestimmt Anordnung der Tags. Nicht erweiterbar. Festlegung einer eigenen Struktur durch selbstdefinierte Tags. Anordnung der Tags bestimmt Struktur des Dokuments. Beliebig erweiterbar. Inhalt Wird vom Autor festgelegt. Tags dienen der Formatierung des Textes zwischen den Tags. Dynamischer Zugriff auf den Text ohne Hilfsmittel nicht möglich. Wird vom Autor festgelegt. Tags beinhalten den Text des Dokuments. Dynamischer Zugriff durch spezielle Zugriffsmethoden auf den Inhalt der Tags möglich. Darstellung Zentral im HTML Dokument durch Tags, die Formatanweisungen enthalten Formatanweisungen sind ausgelagert in externe Datei
Darstellung von XML-Dokumenten • HMTL Seiten nutzen vordefinierte Tags für die Formatierung – der Browser interpretiert diese • XML zeichnet sich durch eine unendliche Menge möglicher Tags aus – daher ist es unmöglich ein definiertes Layout für diese Tags im Browser festzulegen • XSL (Extensible Stylesheet Language) ist ein Zusatzstandard, der XML-Dokumente formatiert und mit bedingten Anweisungen ausgeben kann
Gliederung XML- Historie, Ziel, Position zu HTML Struktur und Syntax XPath, XQuery, Ablage
Besonderheiten Anwender definieren ihre eigenen Tags oder greifen auf öffentlich verfügbare Tagmengen zurück, die für verschiedene Anwendungsbereiche angeboten werden. Inhaltliche Strukturen lassen sich in beliebiger Tiefe schachteln Die verwendeten Tagnamen lassen einen Rückschluss auf die Bedeutung der Daten zu. Dagegen wird die Darstellung nicht explizit festgelegt. XML erlaubt die Festlegung externer Bezüge für ein Dokument. Derartige Referenzen werden aufgelöst und durch die entsprechende Entität ersetzt. Mittels Referenzen werden Entitäten in einem Dokument bei Bedarf mehrfach verwendet. Auf diese Weise lässt sich ein XML-Dokument aus vorgefertigten Teilen zusammensetzen.
Informationseinheiten Elf Typen von Informationseinheiten werden unterschieden: Dokument Element Attribut Verarbeitungsanweisung Entitätsreferenz Zeichen Kommentar Dokumenttyp-Deklaration Ungeparste Entität Notation Namensraum
Bedeutung der Informationseinheiten Die wichtigsten Komponenten in der sich der Inhalt widerspiegelt, sind Elemente und Attribute. Das XML-Dokument ist als Baum strukturiert mit einer Wurzel, die alle Elemente umschließt
XML-Syntax Um wohlgeformt zu sein, muss ein Dokument syntaktische Regeln der XML-Grammatik erfüllen. Dabei gilt: Jedes wohlgeformte Dokument beginnt mit einem Prolog, dem mindestens ein Element folgt. Danach sind Kommentare oder Verarbeitungsanweisungen erlaubt. Hinter dem Prolog beginnen die XML-Daten in Form eines Baumes aus Elementen und Attributen. Das erste Element ist das Wurzelelement, das alle anderen Elemente einschließt
XML-Deklaration - Video XML-Deklaration
Aufbau eines XML-Dokumentes Bestandteile eines XML-Dokumentes Vorspann DTD (intern oder extern) XML
XML-Dokument - Baum XML definiert Baumstruktur! Wurzel heißt Dokumentelement Blattelemente enthalten Werte Einziger Datentyp: Zeichenkette
XML - Objekte XML nennt seine Objekte Elemente Elemente sind begrenzt durch Tags Tagnamen sind "case-sensitive" Jedes geöffnete Tag muss auch wieder geschlossen werden Tags dürfen einander nicht überlappen; nicht erlaubt z. B.: <A> <B> </A> </B> Tags leerer Elemente haben besondere Syntax: <A/> (Shortcut für <A> </A>) Tags können Attribute enthalten: <A Attributname="Wert" ...> </A> Eine korrekte Schachtelung ist notwendig (anders als in HTML). XML-Elemente dürfen nicht überlappen.
Vorspann eines XML-Dokumentes version gegenwärtig nur 1.0, 1.1 falls zukünftig weitere Versionen als Empfehlung vom W3C verabschiedet werden, dann ermöglicht der Parameter die Verarbeitung verschiedener Versionen. encoding (optional) Kodierung des Dokuments,Beispiele (UTF-8 – auchDefaultwert, UTF-16 - müssen ebenfalls alle XML-Prozessoren unterstützen). standalone (optional) 'yes' - spezifiziert, dass dem Dokument eine externe Markup-Deklaration (DTD oder XML-Schema) zugeordnet wird, sonst 'no' Defaultwert 'no'‚ wenn externe Deklaration definiert ist und standalone nichtangegeben ist
Beispiele - Vorspann <?XML version="1.0" encoding="UTF-8" standalone="yes"> <?XML version="1.0" encoding="UTF-16" standalone="no"> <!DOCTYPE tourismus-infos SYSTEM "tourismus.dtd">
Grammatik - Besonderheiten Anders als bei HTML ist auf Groß- und Kleinschreibung zu achten. Ein Name muss mit einem Buchstaben, einem Unterstrich oder einem Doppelpunkt beginnen Elemente sind mit beliebig vielen Attributen definierbar, mit Paaren von Attributname und Attributwert Jedes angegebene Attribut muss einen Wert haben, der in Hochkommata oder Anführungszeichen eingeschlossen ist. Mehrere Attribute werden durch Leerzeichen getrennt. Ob in einer Dokumentenstruktur ein Objekt besser als Element oder Attribut behandelt wird, obliegt dem Anwender
Grammatik - Namensräume Die freie Namenswahl bei Elementen und Attributen wirft Probleme auf, wenn die gleichen Namen mit unterschiedlicher Bedeutung verwendet werden. <beitrag> kann Mitgliedsbeiträge oder Artikel für eine Zeitschrift bedeuten. Um Mehrdeutigkeiten zu vermeiden, ordnet man Namen Namensräumen zu. Diese werden durch eine eindeutige URI-Referenz identifiziert. Der URI wird über ein xmlns-Attribut ein Präfix zugeordnet: <mitglieder xmlns:mtg=„http://mitglieder.de/organisation“> Ein Element dieses Namensraums wird wie folgt angesprochen: <mtg:beitrag>100</mtg:beitrag>
Aufbau von XML-Dokumenten 1 Komponenten eines Buchs Elemente eines XML Dokuments
Aufbau von XML-Dokumenten 2 <content> XML builds on the principles of two existing languages, <emph>HTML </emph> and <emph>SGML </emph> to create a simple mechanism .. The generalized markup concept .. </content> <order> <customer>Meyer</customer> <position> <isbn>1-234-56789-0</isbn> <number>2</number> <price currency=´Euro´>30.00</price> </position> </order> Markup in Volltexten Mixed Content Elemente Elemente und Attribute hierarchische Schachtelung Sequenz Quelle: Viele der folgenden Folien basieren auf Meike Klettke, UNI Rostock
Syntax von Elementen /1 Ein Element besteht aus: Start-Tag Ende-Tag und Elementinhalt Beispiel: <vortragender> Ronald Bourret </vortragender> Start-Tag Elementinhalt Ende-Tag
Syntax von Elementen /2 Leere Elemente sind möglich: Beispiel: <koordinaten/> Elemente können verschachtelt werden: <vortragender> <name>Bourret</name> <vorname>Ronald</vorname> </vortragender> Start-Tag Elementinhalt Ende-Tag
Graphische Darstellung von XML-Dokumenten XML-Dokumente sind Bäume! Beispiel: <vortragender> <name>Bourret</name> <vorname>Ronald</vorname> </vortragender> korrekte Schachtelung der Elemente notwendig Elementknoten Textknoten
Document Type Definition • Einordnung von Dokumenten in Kategorien, macht Dokumente unterscheidbar • Entscheidend dafür sind die Elemente, die das jeweilige Dokument enthält • Um Elemente, die zu einem Dokument gehören zu definieren, verwendet man in XML die DTD
Schemabeschreibung - DTD Darstellung, welche Elemente auftreten können und wie sie geschachtelt werden Deklaration von Strukturinformationen Vorteile einer DTD: Entspricht einer Dokumentation für die XML-Dokumente Anwendungen können darauf reagieren Fehler in XML-Dokumenten können erkannt werden Oft: bessere Qualität der XML-Dokumente, weil durchdachteres Vorgehen PCDATA = Parsed Character Data
Definition von Elementen in einer DTD XML-Dokument: <vortragender> Ronald Bourret </vortragender> Zugehörige DTD: <!ELEMENT vortragender (#PCDATA)> XML-Dokument: <vortragender> <name> Bourret </name> <vorname> Ronald </vorname> </vortragender> Zugehörige DTD: <!ELEMENT vortragender (name, vorname)> <!ELEMENT name (#PCDATA)> <!ELEMENT vorname (#PCDATA)>
Definition von Elementen in einer DTD (Inhaltsmodelle) Sequenz (A , B) A und B müssen in der angegebenen Reihenfolge im Dokument auftreten Alternative (A | B) entweder A oder B treten im Dokumente auf Wiederholung A? - 0..1 Mal A+ - 1..n Mal A* - 0..n Mal Mixed Content (#PCDATA | A | B)* A, B oder beliebiger Text treten im Dokument auf <!ELEMENT hotel (name, adresse)> <!ELEMENT name (#PCDATA)> <!ELEMENT adresse (plz, ort, ((strasse, nummer?) | postfach))> <!ELEMENT beschreibung (#PCDATA | ausstattung | gastronomie)*>
Beispiele zur Definition von Elementen in einer DTD /1 <!ELEMENT hotel (name, adresse)> <hotel> <name>Hotel am Leuchtturm</name> <adresse>...</adresse> </hotel>
Beispiele zur Definition von Elementen in einer DTD /2 <!ELEMENT adresse (plz, ort, ((strasse, nummer?) | postfach))> <adresse> <plz>18119</plz> <ort>Warnemuende</ort> <strasse>Seestrasse</strasse> <nummer>12</nummer> </adresse> <adresse> <plz>18051</plz> <ort>Rostock</ort> <postfach>12345</postfach> </adresse>
Beispiele zur Definition von Elementen in einer DTD /3 <!ELEMENT beschreibung (# PCDATA | ausstattung | gastronomie)*> <beschreibung>Das Hotel am Leuchtturm befindet sich direkt am Alten Strom, mit Blick auf die Hafeneinfahrt, die Mole und den Strand.</beschreibung> <beschreibung>Unser Hotel verfügt über eine <ausstattung> Sauna </ausstattung> und eine <ausstattung> Meerwasserschwimmhalle </ausstattung>. Das <gastronomie> Hotelrestaurant</gastronomie> bietet regionale Küche und Fischspezialitäten. </beschreibung>
Syntax von Attributen /1 Attribute werden einem Element des XML-Dokumentes zugeordnet: <vortragender tutorial=´T1´> Ronald Bourret </vortragender> Zugehörige DTD: <!ELEMENT vortragender (#PCDATA)> <!ATTLIST vortragender tutorial CDATA #REQUIRED> Attributwert Attributname Elementinhalt Ende-Tag Start-Tag
Syntax von Attributen / 2 XML-Dokument <koordinaten x=´200´ y=´300´ z=´150´ /> DTD <!ELEMENT koordinaten (EMPTY)> <!ATTLIST koordinaten x CDATA #REQUIRED y CDATA #REQUIRED z CDATA #IMPLIED >
Darstellung von XML-Dokumenten XML-Dokumente sind Bäume! Beispiel: <vortragender tutorial=´T1´> <name>Bourret</name> <vorname>Ronald</vorname> </vortragender> vortragender tutorial name vorname T1 Ronald Bourret Elementknoten Textknoten Attributknoten
Deklaration von Attributen in einer DTD Attribute haben einen Namen einen Typ (CDATA, ID, IDREF/IDREFs, ENTITY/ENTITYS, NMTOKEN/NMTOKENS oder (wert1|wert2|...) Aufzählung möglicher Werte eine Angabe, ob das Attribut auftreten muss (#REQUIRED, #IMPLIED oder #FIXED) oder einen optionalen Defaultwert (bei #FIXED ist dieser auch erforderlich) <!ATTLIST preis waehrung CDATA #REQUIRED> <!ATTLIST projekt id ID #REQUIRED> <!ATTLIST person projekt IDREF #REQUIRED> <!ATTLIST plz xml-sqltype CDATA #FIXED ´INTEGER´>