www.comelio-medien.com Oracle, PL/SQL und XML Marco Skulschus Marcus Wiederstein Oracle PL/SQL und XML Marco Skulschus Marcus Wiederstein Oracle, PL/SQL und XML Marco Skulschus Marcus Wiederstein Webseite zum Buch: http://www.comelio-medien.com/buch-katalog/oracle/oracle_und_xml © Comelio Medien 2011 Alle Rechte vorbehalten. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jeder Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für die Vervielfältigung, Übersetzung, Mikroverfilmung und die Einspeicherung und Verbreitung in elektronischen Systemen. © Comelio GmbH Comelio GmbH Goethestr. 34 D-13086 Berlin Fon:+49 (0) 30-8 14 56 22-00 Fax:+49 (0) 30-8 14 56 22-10 www.comelio-medien.com [email protected] Umschlaggestaltung, Comelio-Grafiken, Layout & Satz: Nadine Kilian Druck und Bindung: docupoint magdeburg, Otto-von-Guericke-Allee 14 39179 Barleben Printed in Germany ISBN 978-3-939701-51-4 Inhaltsverzeichnis Inhaltsverzeichnis 1.XML-Technologien 1. 1. Modellierung mit DTD 1. 1. 1. Elemente, Attribute 1. 1. 2. Komplexe Inhaltsmodelle 1. 1. 3. Schlüssel- und Schlüsselverweise 1. 2. Modellierung mit XML Schema 1. 2. 1. Globale/Lokale Elemente und Attribute 1. 2. 2. Datentypen 1. 2. 3. Globale komplexe Typen 1. 2. 4. Schlüssel und Schlüsselverweise 1. 3. Abfrage mit XPath 1. 3. 1. Achsen 1. 3. 2. Prädikate 1. 3. 3. Funktionen 1. 4. Abfrage mit XQuery 1. 4. 1. Einführung 1. 4. 2. FLWOR-Ausdrücke 1. 4. 3. XML-Erstellung 1. 4. 4. Variablen 1. 4. 5. Fallunterscheidungen 1. 5. Transformation mit XSLT 1. 5. 1. Vorlagen 1. 5. 2. Kontrollanweisungen 1. 5. 3. Variablen und Parameter 1. 5. 4. XSLT im Zusammenhang 2. Relationale Abfrageergebnisse als XML 2. 1. ISO-Standard: SQL/XML-Funktionen 2. 1. 1. Einfache Abfragen 2. 1. 2. Weitere Dokumentangaben 2. 1. 3. Komplexe Abfragen http://www.comelio-medien.com/buch-katalog/oracle/oracle_und_xml 27 28 28 33 35 38 40 46 52 55 60 60 67 68 71 72 74 76 80 80 81 82 89 91 95 98 99 102 108 112 5 Inhaltsverzeichnis 2. 1. 4. SQL/XML-Abfragen verarbeiten 2. 1. 5. Bewertung der SQL/XML-Funktionen 2. 2. Oracle 8i: Abfragen mit DBMS_XMLQUERY 2. 2. 1. Paketstruktur 2. 2. 2. Abfrageverarbeitung 2. 3. Oracle 9i/10g: Abfragen mit DBMS_XMLGEN 2. 3. 1. Paketstruktur 2. 3. 2. Abfrageverarbeitung 2. 3. 3. Komplexe Abfragen 2. 4. 9i/10g/11g: Oracle-spezifische SQL-Funktionen 2. 4. 1. Erzeugung von einfachen Elementen 2. 4. 2. Einsatz von Objekt- und Tabellentypen 2. 4. 3. Erzeugung von Aggregaten 2. 4. 4. XML-Dokumentvorgaben 119 124 125 126 131 133 133 135 138 146 146 147 152 153 3. XML Verarbeitung mit PL/SQL 3. 1. XML-Parser und das DBMS_XMLPARSER-Paket 3. 1. 1. Aufbau des Pakets 3. 1. 2. Beispiel 3. 2. Verwendung des DOM mit DBMS_XMLDOM 3. 2. 1. Allgemeiner Aufbau des Pakets 3. 2. 2. Methoden im Einsatz 3. 2. 3. Beispiele 3. 3. Verwendung von XSLT mit DBMS_XSLPROCESSOR 3. 3. 1. Aufbau des Pakets 3. 3. 2. Beispiel 158 158 159 161 163 163 168 210 220 221 226 4. XML in Oracle speichern 4. 1. Einführung 4. 1. 1. Zielsetzung 4. 1. 2. Struktur der Beispieldaten 4. 1. 3. Übersicht der Speichermöglichkeiten 4. 2. Realisierung einer Import-/Export-Schnittstelle 4. 2. 1. Export 4. 2. 2. Import 4. 3. Speicheransätze 4. 3. 1. Einsatz des Dateisystems 4. 3. 2. Relationale Speicherung 4. 3. 3. Objektrelationale Speicherung 237 237 238 240 245 246 247 252 257 257 258 260 6 http://www.comelio-medien.com/buch-katalog/oracle/oracle_und_xml Inhaltsverzeichnis 4. 3. 4. Einsatz von XMLType 4. 3. 5. De-/Serialisierung von Objekten 262 265 5. XML Schema-basiertes XML 5. 1. DBMS_XMLSCHEMA 5. 1. 1. XML Schema registrieren 5. 2. Speicherstrukturen und XML Schema generieren 5. 2. 1. XML Schema entwickeln 5. 2. 2. Katalog-Sichten 5. 3. Schemabasierte Speicherung 5. 3. 1. XML Schema und XML-Speicherung 5. 3. 2. Fortgeschrittene Speicheroptionen 5. 4. Einführung Oracle XDB 5. 4. 1. Grundsätzliches zur XML-Datenbank 5. 4. 2. Verwaltung mit dem Paket DBMS_XDB 5. 4. 3. Katalog-Sichten 5. 4. 4. RESOURCE_VIEW und PATH_VIEW 271 271 272 277 288 294 295 295 302 307 307 310 323 326 6. XML-Datentyp XMLType 6. 1. Einsatz in Tabellen und Spalten 6. 1. 1. Allgemeine Unterprogramme 6. 1. 2. Verwendung bei der Datenerfassung 6. 1. 3. Verwendung bei Abfragen 6. 1. 4. Verwendung bei Manipulation 6. 2. DBMS_XMLSTORE 6. 2. 1. Aufbau des Pakets 6. 2. 2. Beispiele 6. 3. XML Schema und XSLT 6. 3. 1. Transformation von XMLType 6. 3. 2. Validierung von XMLType 6. 4. XMLType-Sichten 6. 4. 1. Erzeugung von Sichten ohne XMLSchema 6. 4. 2. Erzeugung von Sichten mit XML Schema 334 335 335 338 339 345 353 354 356 362 363 367 371 372 373 7. Webservices 7. 1. Grundlagen und Architektur 7. 1. 1. Definition 7. 1. 2. Architektur 7. 1. 3. Technologien von Webservices 376 376 377 379 382 http://www.comelio-medien.com/buch-katalog/oracle/oracle_und_xml 7 Inhaltsverzeichnis 7. 1. 4. Einsatzmöglichkeiten und Szenarien 7. 1. 5. Webservice-Modelle 7. 2. Umsetzung in Oracle 7. 2. 1. Architektur 7. 2. 2. SOAP 7. 2. 3. WSDL 7. 3. Webdienste erstellen 7. 3. 1. Einrichtung 7. 3. 2. Funktionen/Prozeduren als Webservices 7. 3. 3. SQL-Anweisungen über Webservices 8 385 390 396 396 399 405 421 422 424 429 http://www.comelio-medien.com/buch-katalog/oracle/oracle_und_xml Vorwort Vorwort Vorwort Herzlich Willkommen zu einem Fachbuch aus dem Comelio Medien-Verlag. Wir sind stets bemüht, Ihnen aktuelle Informationen rund um IT-Technologien in beispielorientierter und verständlicher Weise zu liefern, damit Sie auf diesem Wege in die Lage versetzt werden, Anforderungen mit neueren Werkzeugen als den bisherigen umzusetzen. Zu dieser Reihe Diese Buchreihe widmet sich aus der Sicht der Softwareentwicklung dem Datenbanksystem Oracle, wobei in Büchern, die nicht notwendigerweise das Format von großen Betonblöcken erreichen sollen, wie dies bei zusammenfassenden Werken oft der Fall ist, spezielle Themen zum Oracle-Einsatz behandelt werden sollen. Dies betrifft die Themen XML-Verarbeitung, Internetanwendungen / Web Services und die Verwendung von PL/SQL und SQL sowie objektrelationale Techniken. In die einzelnen Themengebiete soll – je nach Notwendigkeit – kurz eingeführt werden, ohne eine Lektüre für Anfänger sein zu wollen. Stattdessen richten sich bis auf unser Oracle SQL-Buch alle Veröffentlichungen an Softwareentwickler, die bereits Kenntnisse mit dem Oracle-Datenbanksystem haben und sich spezialisierte Kenntnisse aus einzelnen Bereichen aneignen wollen. Zu dieser Reihe gehören die folgenden Bücher: ●● Oracle PL/SQL, ISBN 978-3-939701-40-8 ●● Oracle SQL, ISBN 978-3-939701-41-5 ●● Oracle PL/SQL - Objekte und Objektrelationale Techniken, ISBN 978-3-939701-42-2 ●● PHP und Oracle, ISBN 978-3-939701-01-9 10 Vorwort Zu diesem Buch In diesem Buch stellen wir Ihnen den Einsatz von XML im Oracle-Datenbanksystem vor, wobei wir davon ausgehen, dass Sie mit SQL und PL/SQL schon Erfahrung haben, XML für Sie allerdings eine neue Welt ist und Sie nun die Aufgabe erhalten haben, für eine Anwendung XML in verschiedenen Varianten mit der Datenbank zu verwenden. Vorteile von XML XML bietet eine Reihe von Vorteilen, welche die schnelle und umfassende Verbreitung sehr gefördert haben. Teilweise befürchten insbesondere Datenbankprogrammierer und Administratoren, XML könnte in irgendeiner Weise eine Datenbank ersetzen. Ab und an trifft man auch auf Verantwortliche, die eine solche Überlegung pflegen oder wenigstens grundsätzlich erwogen haben. Dazu wird es nicht kommen. Vielmehr haben sich, wie man in den letzten Jahren gut gesehen hat, die großen DB-Hersteller wie Oracle, Microsoft und IBM in ihren Datenbanksystemen einen neuen XML-Datentyp eingeführt, der es den DB-Produkten ermöglicht, sich diese neue Technologie der Datenspeicherung und –abbildung gleichfalls einzuverleiben. Zu den gerade genannten Vorteilen von XML im Gegensatz zu CSV und insbesondere sonstigen Protokollformaten zählen u.a. die folgenden: ●● Einfachheit: XML ist, wenn man sich grundlegend damit beschäftigt, ein sehr einfacher Standard, der durch die starke Verbreitung von HTML nur wenig Neues für HTML-versierte Entwickler bietet. Damit ist allerdings auch schon die erste Problemstelle aufgedeckt, denn mehr als die spitzen Klammern, die Verwendung von Attributen und der korrekten Verschachtelung haben HTML und XML nichts gemeinsam. Stattdessen dient XML dem allgemeinen Datenaustausch und der ebenso allgemeinen Datenmodellierung. Doch die Ähnlichkeit mit einer noch einfacheren Syntax und die gute Lesbarkeit von XML-Strukturen im Gegensatz zu Protokollen begünstigen eine starke und vor allen Dingen schnelle Verbreitung. HTML bzw. seine wohlgeformte Variante XHTML dagegen entspricht einer gegebenen Modellierung von Strukturen in XML, die für die Inhaltspräsenation in so genannten Browser-Programmen eingesetzt werden kann. 11 Vorwort ●● Vielseitiger Einsatz: Da – wie gerade schon erwähnt – XML für die Datenmodellierung und den Datenaustausch eingesetzt werden kann, ist es ebenso vielseitig verwendbar wie eine Datenbank. Praktisch überall dort, wo Daten anfallen, ausgetauscht und verarbeitet werden, lässt sich eine Lösung grundsätzlich auch in XML denken. Aus technischen Einschränkungen heraus oder aufgrund von zusätzlichen Anforderungen ist dies nicht immer die endgültige Wahl, doch ließe sich wenigstens eine Alternativ-Lösung in XML denken. Dies liegt nicht daran, dass XML besondere Fähigkeiten hat, sondern schlichtweg daran, dass es eine gute Möglichkeit ist, Daten zu verarbeiten. Nichtsdestotrotz wird man für allereinfachste Datenaustauschziele weiterhin auch kommagetrennte Werte verwenden oder aus XML heraus solche CSV-Werte erstellen oder den umgekehrten Weg beschreiten und aus CSV-Daten XMLStrukturen generieren müssen. Vielseitige Verwendung für Daten in Textform oder mit notwendigen Verschachtelungen und komplexen Strukturen, die in relationalen Datenbanken nicht akzeptabel abgebildet werden können, zeichnen XML aus. Gerade hinsichtlich des Datenaustauschs zwischen verschiedenen Datenbanken gibt es viele gemischte Lösungen, die gleichzeitig XML und Text in Form von CSV oder auch SQL verwenden. Dabei werden oft die verschiedenen Textformate aus XML-Srukturen heraus generiert. ●● Gute Lesbarkeit: Im Gegensatz zu kommagetrennten Werten oder gar Protokollen, welche Daten durch XML-ähnliche Steuerzeichen trennen, bietet XML im Normalfall eine schnell zu verstehende Lesbarkeit. Lange Dokumente oder tief verschachtelte Strukturen eignen sich zwar nicht notwendigerweise für eine direkte Lektüre ohne Transformation in ein tabellen- oder listenorientiertes Format, aber bei gut gewählten Bezeichnern und einem grundlegenden Verständnis des Themas oder der modellierten Datenstrukturen wird eine XML-Datei durch die Auszeichnung mit Hilfe der XML-Tags immer einfacher und besser zu lesen sein als kommagetrennte Werte ohne Auszeichnung oder Protokolldaten mit kryptischen Steuerzeichen. Ein frühes Gegenargument, das bei der Verwendung von XML auftauchte, beruhte darauf, dass durch die Auszeichnung der Daten sehr viel Speicherplatz einer Datei allein für die Datendarstellung und –aufbereitung verwendet wird. Dies ist unter den beiden Stichwörtern Nutzdaten und Beschreibungsdaten bekannt. Sind dazu diese Daten auch noch sehr kurz, kann der Fall eintreten, dass sogar mehr Dateispeicherplatz für die XML-Strukturen verwendet wird als für die eigentlichen Daten. Dies sollte allerdings bei heutiger Festplattengröße sowie Netzwerkübertragungsgeschwindigkeit einen zu vernachlässigenden Aspekt darstellen. XML-Daten sind natürlich nur dann gut lesbar, wenn die XML-Tags, welche 12 Vorwort die Daten auszeichnen, für den Leser verständlch sind. Gerade in speziellen Anwendungen im Finanz-, Wissenschafts- oder Technikbereich benötigt ein dem Gebiet grundsätzlich fern stehender Leser dann eine entsprechende Übersetzungshilfe in Form einer Dokumentation des Datenmodells. Es entfällt allerdings das bei CSV-Daten übliche Zählen (und vor allen Dingen Verzählen) von Positionen, was gerade bei breiten Strukturen mit vielen einzelnen Feldern Hürden für die Datenzugänglichkeit aufbaut. ●● Standardisierung: Protokolldaten in unterschiedlichen Systemen bzw. Industriezweigen beruhten und beruhen natürlich auch heute noch auf Standardisierungsabkommen zwischen Unternehmen und Organisationen. XML oder das W3C bieten auch keine Möglichkeiten, Datenstrukturen für jedweden Einsatzbereich einfach von der W3C-Webseite herunterzuladen und direkt weiterzuverwenden, aber der Grundansatz und das theoretische Fundament von XML sowie angrenzende Technologien wie XML Schema, XSLT, RDF oder XML Topic Maps liegen jeweils als Standards vor. Viele Industriezweige besitzen Schemata für ihre Datenstrukturen, welche weit verbreitet sind und sich auch gut verwenden lassen. Im Gegensatz zu Protokollen, in denen zumindest dieser Zustand auch vorherrscht(e), bietet die Verwendung von XML mit XSLT eine wirklich sehr einfache Möglichkeit, Daten auszutauschen und in andere Formate zu transformieren bzw. über das gesamte Namensraumkonzept auch Daten mit gleicher Auszeichnung oder fremden Strukturen zu mischen und weiterhin getrennt zu adressieren und zu verarbeiten. Die Vorteile der Standardisierung bei XML liegen also im Wesentlichen nicht darin, dass es eine große Auswahl an Standard-Schemata gibt, sondern vielmehr, dass die Grundkonzeption (XML selbst), die einfache Datenmodellierung (XML Schema), die semantische Datenmodellierung (RDF, XTM, OWL), die Adressierung (XPath, XQL) sowie die Transformation (XSLT, XSL-FO) herstellerungebunden vom W3C durchgeführt werden. Die Herstellerungebundenheit darf natürlich nicht überschätzt werden, weil die bedeutenden IT-Unternehmen mit entsprechender Marktmacht selbstverständlich alle auch im W3C Mitglied sind und dort auch Einfluss ausüben. Doch zumindest handelt es sich um ein Gremium, das nicht durch schiere Marktmacht dominiert wird, sondern seine Entscheidungen in einem Prozess trifft, in dem viele Parteien eingebunden sind. Neben dieser Standardisierung, welche die Basisarchitektur und damit die allgemeinen Bereiche Modellierung, Validierung, Abfrage und Umwandlung betrifft, gibt es eine Reihe von Versuchen, für bestimmte Sinnzusammenhänge Referenzmodelle und sogar feste Standards zu etablieren, welche den Datenaustausch noch weiter vereinfachen, da eine Umwandlung komplett entfällt. 13 Vorwort Man kann nicht erwarten, dass jeder Datenbereich überhaupt beschrieben wurde oder gar so gut modelliert wurde, dass die Modellierung exakt für das eigene Problem genutzt werden kann. Doch lohnt sich immer die Überlegung, ob möglicherweise ein solcher Standard existiert, um wenigstens Anregungen und Denkanstöße zu erhalten. Teilweise droht man allerdings auch, das Rad neu zu erfinden, sodass eine Kontrolle, ob ein Modellierungsversuch vorliegt, teilweise auch zu der Erkenntnis führt, dass andere Organisationen (Unternehmen, Regierungen und sonstige Körperschaften) bereits umfangreiche Modellierungsarbeiten geleistet haben und daher die Entscheidung, einen eigenen Weg zu gehen, bereits erfordert, für dieses Verhalten eine gute Begründung zu finden. Aufgabenstellungen mit XML-Einsatz Als Programmierer oder Administrator müssen Sie sich zu verschiedenen Gelegenheiten mit dem Thema dieses Buchs beschäftigen. In den Seminaren, die wir zu diesem Thema durchführen, nennen Teilnehmer immer wieder die nachfolgenden Aufgabenstellungen. Besonders auffällig ist, dass nur eine diffuse Vorstellung über den Sinn und Zweck von XML besteht und – was erschwerend für die Lösung der Aufgabe hinzukommt – neues Wissen sowohl im Bereich von allgemeinen XMLTechnologien und –Denkansätzen wie zwangsläufig auch bei der Verwendung in Oracle erworben werden muss. ●● Erstellung einer Import-/Export-Schnittstelle auf Basis von XML, wobei aus relationalen Daten XML-Daten in einem bestimmten Format aus der Datenbank exportiert und XML-Daten in einem bestimmten Format in die Datenbank importiert werden sollen. Dabei müssen Sie für den Export-Vorgang mit Hilfe von Abfragen oder geeigneten Programmen relationale Daten mit sich wiederholenden Datensätzen, Verknüpfungen und Hierarchien in Form von XML zusammensetzen, während beim Import-Vorgang dagegen eine Zerlegung von XML stattfinden muss, um die vorhandenen relationalen Strukturen direkt aus XML zu befüllen. ●● Integration von XML in der Datenbank, wobei nun einzelne Felder oder der gesamte Datensatz einer Tabelle in Form von XML aus einer Anwendung oder einem Import-Vorgang übernommen werden. Hierbei liegt die Aufgabenstellung so, dass man für ausgewählte Datenelemente keine relationale Zerlegung wünscht oder aufgrund von eher dokumentenorientierten Strukturen 14 Vorwort auch nicht erreichen kann und XML hier anstelle von binären großen Objekten oder langen Zeichenketten zum Einsatz kommt, da die XML-Verwendung für die Anwendungsentwicklung eine Reihe von Vorteilen bringt. ●● Erstellung und Bereitstellung von Webservices direkt aus der Datenbarnk heraus, wobei gerade vermieden werden soll, dass in Java, .NET oder .PHP eine eigene Webservice-Anwendung programmiert wird, die dann wiederum auf die Datenbak zugreift. In diesem Fall kann man Webservices direkt mit Hilfe des Oracle-Systems erstellen und veröffentlichen. ●● Verwendung der Oracle XML-Datenbank zur Speicherung von umfangreichen Text- und Datensammlungen in XML, wobei hier gerade keine selbst geschriebene Verwaltungssoftware oder gar eine von einem anderen Hersteller zusätzlich gekaufte XML-Datenbank verwendet werden soll. In disem Aufgabenfeld geht es darum, für ein Redaktionssystem oder ähnliche Systeme, die Artikel oder sonstige Texte in XML-Form speichern, geeignete Datenstrukturen zu finden und diese ordnerorientiert, mit Sicherheit und Prüfmechanismen versehen anzubieten. ●● Allgemeine Verarbeitung von XML, wobei in diesem Aufgabengebiet eine Reihe von allgemeinen Arbeiten durchgeführt werden, die sich typischerweise bei XML-Anwendungen stellen und in diesem Fall mit Hilfe der Programmiersprache PL/SQL und teilweise sogar nur Oracle SQL umgesetzt werden können. Zu diesen Standardaufgaben gehören: Validierung von XML-Daten auf Basis von XML Schema-Datenstrukturen und –regeln, Transformation und Verarbeitung von gespeicherten oder übernommenen XML-Inhalten mit den Werkzeugen DOM (Document Object Model) oder XSLT (eXtensible Stylesheet Language for Transformations) sowie die Durchführung von Abfragen auf XML-Daten unter Verwendung von XPath oder XQuery. Zusätzlich bietet das Oracle-System noch weitere eigene Werkzeuge an, welche die gerade genannten Standard-Werkzeuge, die in vielen Programmiersprachen und Datenbanken umgesetzt sind, ergänzen und für jede Anforderungen in der einen oder anderen Weise eine Lösung bieten. 15 Vorwort Themen nach Kapiteln Die Themen der einzelnen Kapitel werden im Folgenden kurz aufgelistet: 1. Das erste Kapitel stellt als Einstiegskapitel XML-Technologien allgemein mit den Daten der Beispieldatenbank dar. Es startet mit der klassischen DTD (Document Type Definition) als erster Modellierungs- und Beschreibungstechnik für XML-Daten und stellt dann auf Basis der Technik der DTD die Unterschiede, Vorteile und neuartigen Ansätze von XML Schema dar. XML Schema ist auch die Technologie, mit der in Oracle XML-Daten beschrieben und validiert werden können, wenn man sich dafür entscheidet, typisiertes XML zu verwenden und nicht einfach beliebige XML-Strukturen zuzulassen. Für die Abfrage von XML-Daten folgen dann die Pfadbeschreibungssprache XPath und die relativ komplexe Abfragesprache XQuery. Mit XPath ist es möglich, innerhalb von XML-Dokumenten zu navigieren und entweder vom Wurzelelement oder jedem beliebigen Knoten aus andere Knoten zu lokalisieren, zu filtern und eine Reihe von Funktionen einzusetzen. Die XPath-Ausdrücke können in SQL eingesetzt werden, um Teile von XML-Daten abzurufen oder komplexe Filter vorzugeben. Man setzt diese Technik allerdings auch in XML Schema für die Angabe von Schlüsseln und Fremdschlüsseln ein. Die Umwandlung von XML-Daten mit Hilfe des DOM (Document Object Model) und XSLT (eXtensible Stylesheet Language for Transformations) lässt sich ebenso einsetzen. Es dient in vielen Anwendungen als Ausdruckssprache, um dem Benutzer komplexe Filter oder Bedingungen zu ermöglichen. XQuery dagegen kombiniert Filterung und Auswahl mit einer verkürzten und nicht XML-basierten Syntax, um die gefundenen Strukturen auch unmittelbar wieder in XML umzuwandeln. Während XPath eine Ergebnismenge mit unterschiedlichen Inhalten in Form von Knoten, Knotensätzen oder Zeichenketten und Zahlen liefert, kann man mit XQuery unmittelbar ein XML-Ergebnis erzeugen. Schließlich stellt dieses Kapitel noch die Technik XSLT vor, mit der es möglich ist, neue Dokumente in Form von XML, HTML oder Text zu erzeugen. Dabei setzt man eine programmiersprachenähnliche Syntax in XML-Form ein, die man als deklarative Sprache bezeichnet. 2. Das zweite Kapitel beschreibt, wie eine der wesentlichen Anforderungen beim XML-Einsatz in Oracle umgesetzt wird: den Datenabruf von relationalen Daten und die Erzeugung von XML-Ausgabedaten in einer ad-hoc-Abfrage oder einer Sicht. Oracle bietet in diesem Bereich verschiedene Möglichkeiten, die sich hinsichtlich Geschwindigkeit und Komplexität der Formulierung un- 16 Vorwort terscheiden. In diesem Kapitel lernt man sowol die Techniken kennen, die sofort aus einer SQL-Abfrage heraus XML erzeugen, wie auch die Durchführung der gleichen Aufgabenstellung in PL/SQL. 3. Das dritte Kapitel konzentriert sich ganz auf PL/SQL und die Verarbeitung von XML. Hier gibt es eine Vielzahl an möglichen Techniken, von denen insbesondere die beiden W3C-Techniken DOM und XSLT ins Auge fallen, die in PL/SQL genauso umgesetzt sind wie in vielen anderen Programmiersprachen. Dazu gibt es allerdings auch eine Reihe von PL/SQL-Paketen, die entweder für den Einsatz der beiden genannten Standardtechnologien notwendig sind, oder die ein eigenes Angebot bieten, mit XML-Daten zu arbeiten, sie zu manipulieren und sie umzuwandeln. 4. Das vierte Kapitel setzt den Fokus auf das wichtige Thema Import und Export. Es gibt eine Reihe von traditionellen und nicht nur in Oracle einsetzbaren Techniken, mit XML umzugehen und insbesondere XML somit relational oder objektrelational zu zerlegen, sodass man noch nicht direkt XML in einer traditionellen Datenbank speichern muss. Das Kapitel diskutiert verschiedene Speicheransätze, in denen XML relational zerlegt wird oder in denen mehr oder weniger große Teile in speziellen Datentypen und selbstverständlich auch den XML-Datentyp gespeichert werden. Die Erläuterungen in diesem Kapitel sollen eine Sensibilität für den großen Gestaltungsspielraum bewirken, mit der dann in der konkreten Modellierungssituation eine passende Variante ausgewählt wird. 5. Das fünfte Kapitel setzt die Überlegungen des vierten Kapitels insoweit fort, als dass die Oracle XDB (XML Datenbank) als eigenständige Möglichkeit zur direkten, nativen und nicht auf Tabellen basierenden Speicherung von XMLDaten (Dateien, Dokumenten) vorgeführt wird. Für dokumentenorientierte Systeme (Redaktionssysteme, Archive) ist dies eine geeignete Möglichkeit, mit Oracle eine XML-Datenbank im ursprünglichen Sinne aufzubauen und eine Reihe von Oracle-Techniken für Sicherheit und Geschwindigkeit zu verwenden und sich darüber hinaus in der gewohnten Umgebung zu bewegen. 6. Das sechste Kapitel rückt den wesentlichen Datentyp, mit dem die XML-Verwendung in Oracle mit PL/SQL und SQL überhaupt erst denkbar ist, in den Mittelpunkt: XMLType. Im Gegensatz zu einer langen Zeichenkette oder einem großen Binärobjekt erlaubt XMLType die Abfrage und Filterung mit XPath und XQuery, die Umwandlung mit XSLT, die Validierung mit XML Schema so- 17 Vorwort wie die Verarbeitung mit einer Reihe von speziellen SQL-Funktionen und PL/ SQL-Paketen. Seine Fähigkeiten sind schon in den vorherigen Kapiteln immer mal wieder in Beispielen vorgeführt worden, doch im sechsten Kapitel erhält XMLType eine Bühne, in der die verschiedenen Möglichkeiten und Vorteile gesammelt, erläutert und zusammengefasst werden. 7. Das siebte Kapitel schließt das Buch mit dem neu in Oracle 11g eingeführten Thema Webservices ab. Es beginnt mit einer Einführung in den Grundgedanken, der hinter dem Themenkomplex serviceorientierte Anwendungsentwicklung und verteilte Software steht und beschreibt dann kurz Einsatzbereiche sowie die beiden entscheidenden Standards, die auch in Oracle zum Einsatz kommen. Neben XML Schema, das auch für die Validierung der zwischen Service und Klient ausgetauschten XML-Nachrichten Verwendung findet und bereits eingeführt wurde, handelt es sich dabei um die Standards WSDL (WebServices Description Language) und SOAP (Akronym ohne offizielle Auflösung). WSDL-Dokumente beschreiben in technischer und inhaltlicher Sicht einen Webdienst, werden typischerweise vom Server generiert und in Klienten-Programmen verwendet, um die Struktur von Nachrichten und Kommunikationsadressen auszulesen und korrekt zu verwenden. In vielen Programmiersprachen stehen auf Basis dieser Datei Hilfsmittel zur Verfügung, die Nachrichten nicht direkt in XML, sondern vielmehr in Form von Methoden/ Funktionen aufzurufen und so den Webdienst quasi in die eigene Anwendung zu integrieren. SOAP dagegen ist ein einfaches XML-Format, welches Nachrichten sammelt und sie im Wesentlichen in einen strukturierten Kopf- und Hauptabschnitt unterteilt. 18 Vorwort Beispieldatenbank-Installation Dieses Buch richtet sich ausdrücklich an Programmierer und möchte ein wirklich praktischer Helfer sein. Das bedeutet, dass natürlich die einzelnen Skripte für den Leser auf der Webseite zum Buch verfügbar sind. Manchmal reicht es sogar, nur die Beispiele zu lesen und sie als Vorgabe für die eigene Aufgabenstellung zu verwenden und nur bei Bedarf die Erklärungen und teilweise auch grafischen Ausführungen heranzuziehen. Inhalte der Beispieldatenbank Wir haben uns für dieses Buch – wie auch für unsere anderen Bücher – eine eigene Beispieldatenbank ausgedacht: Die Firma Kurse NRW GmbH bietet EDV- und IT-Seminare in Bereichen wie Programmierung, Datenbanken oder Webdesign an. Informationen, die den Bereich der Schulungs- und Anmeldeverwaltung betreffen, sollen automatisch verwaltet werden. Abbildung 0.1: Datenmodell Kurse NRW 19