Start
Unternehmen
Buch-Katalog
Seminare
Leserservice
Comelio-Blog
Datenbanken
SQL
MS SQL Server
Oracle

Trigger

Module

Pakete

SQLX

SysXMLGen

XDB: Sichten

XDB: XML Schema

XDB: XSLT

XDB: XMLType

XDB: Konzepte

XDB: PL/SQL

XML-Speicheransätze

SQLJ

PHP
UML
C#.NET
XML Schema
XSLT

Übersicht

Comelio GmbH
Rellinghauser Straße 10
D-45128 Essen
Deutschland
Fon: 0201-437517-0
Fax: 0201-437517-10
info@comelio.com

Comelio GmbH
Goethestraße 34
D-13086 Berlin
Deutschland
info@comelio.com

Comelio GmbH (Ecos)
Glockengießerwall 17
D-20095 Hamburg
Deutschland
info@comelio.com

Comelio GmbH (Ecos)
Mainzer Landstraße 27-31
D-60329 Frankfurt
Deutschland
info@comelio.com

Comelio GmbH (Ecos)
Stiglmaierplatz/Dachauer Str. 37
D-80335 München
Deutschland
info@comelio.com

Comelio GmbH (Ecos)
Liebknechtstr. 33
D-70565 Stuttgart
Deutschland
info@comelio.com

Comelio GmbH
Nevinghoff 16
D-48147 Münster
Deutschland

Comelio GmbH
Friedrich - List - Platz 1
D-04103 Leipzig
Deutschland

Comelio GmbH
St. Johanner Strasse 41-43
D-66111 Saarbrücken
Deutschland

Comelio GmbH
Kaiser-Wilhem-Ring 27–29
D-50672 Köln
Deutschland

Comelio GmbH
Münsterstraße 248
D-40470 Düsseldorf
Deutschland

Comelio GmbH
Fürther Strasse
D-90429 Nürnberg
Deutschland

Comelio GmbH

Bremen
Deutschland

Comelio-Blog > Oracle > XDB: Sichten

XML DB - Sichten

Für die Bereitstellung von XML-Strukturen auf Basis von relationalen oder auch bereits vorhandenen XML-Daten lassen sich individuelle Abfragen gestalten. Wenn allerdings Abfragen in Anwendungen mehrfach ausgeführt werden sollen oder spezielle Rechte berücksichtigt werden müssen, eignen sich vorgefertigte Sichten auf die Daten. Diese lassen sich mit Hilfe des speziellen Datentyps XMLType auch in so genannten XMLType-Sichten erstellen, die gewöhnlichen Sichten ähneln und in diesem Artikel beispielhaft vorgestellt werden sollen.

Kontakt

Anrede* Herr Frau
Vorname*
Nachname*
Firma
E-Mail*
Tel-Nr.
Bereich*
Freitext

Oracle XDB: XMLType-Sichten

Die XMLType-Sichten ähneln in vielerlei Hinsicht den Objektsichten. Sie eignen sich, um auf XML-Daten, die aus relationalen Daten zusammengestellt bzw. erzeugt werden, schneller zuzugreifen, weil die entsprechenden Abfragestrukturen (entweder über SQLX oder mit Hilfe von Objekttypen und Tabellentypen) bereits in der Sicht hinterlegt sind.

Erzeugung von Sichten ohne XMLSchema

Die einfachste Möglichkeit, eine XMLType-Sicht zu erstellen, besteht darin, auf XML Schema und eine zusätzliche Validierung zu verzichten. Mit Hilfe der extract()-Funktion lässt sich ein Schlüssel für die Sicht anlegen, die dann über einen einfachen SQL-Befehl aufgerufen wird, der entsprechendes XML erzeugt.

CREATE OR REPLACE VIEW Kurs_V OF XMLTYPE WITH OBJECT ID
 (EXTRACT(sys_nc_rowinfo$,'/Kurs/@Nr').getnumberval())
  AS
    SELECT XMLELEMENT("Kurs", XMLAttributes(K_Nr AS "Nr"),
            XMLForest(K_Titel AS "Titel",
                      K_Untertitel AS "Untertitel",
                      K_Dauer AS "Dauer")) AS "XML"
FROM kurs;

Erzeugung von Sichten mit XML Schema

Bei der Erzeugung von Sichten, die sich auf ein XML Schema beziehen, das in der Datenbank registriert ist, verwendet man zunächst ebenfalls die SQLX-Funktionen oder die Oracle-spezifischen Funktionen zur Erzeugung von XML, die sich auf Objekttypen und Tabellentypen beziehen. Bevor die Sicht angelegt wird, muss man ein XML Schema bei der Datenbank registrieren, für das die erstellte Abfrage eine gültige XML-Datei erzeugt. Die Registrierung und Löschung von XML Schema-Dateien erfolgt über das Paket DBMS_XMLSCHEMA.

Zunächst muss man das Schema registrieren.

DECLARE
BEGIN
 -- Schema registrieren
 dbms_xmlschema.registerSchema(schemaurl=>'http://www.kurse-nrw.de/kurs.xsd', 
 schemadoc=>'<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="Kurs">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Titel" type="xs:string"/>
        <xs:element name="Untertitel" type="xs:string"/>
        <xs:element name="Dauer" type="xs:byte"/>
      </xs:sequence>
      <xs:attribute name="Nr" type="xs:int" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>',local=>FALSE, gentypes=>TRUE, genbean=>FALSE,
 gentables=>TRUE, force=>FALSE, owner=>'SCOTT');
END;

Die Sicht erstellt man dann unter Verwendung der gezeigten Techniken für die XML-Erzeugung aus relationalen Daten sowie unter Verweis auf das Schema-Dokument.

CREATE OR REPLACE VIEW Kurs_VS OF XMLTYPE
XMLSCHEMA "http://www.kurse-nrw.de/kurs.xsd" ELEMENT "Kurs"
WITH OBJECT ID
 (EXTRACT(sys_nc_rowinfo$,'/Kurs/@Nr').getnumberval())
  AS
    SELECT XMLELEMENT("Kurs", XMLAttributes(K_Nr AS "Nr"),
            XMLForest(K_Titel AS "Titel",
                      K_Untertitel AS "Untertitel",
                      K_Dauer AS "Dauer")) AS "XML"
FROM kurs;

    Comelio GmbH Oracle XDB: XML DB - Oracle XMLType-Sichten PL/SQL SQLJ Programmierung Datenbank-Entwicklung XML Anleitung Tutorial Oracle Manual Java Ludwigshafen Andernach Koblenz Kiel Hamburg Kassel Leipzig Würzuburg Freiburg Erlangen Koblenz Ingolstadt Berlin Bremen Ol München Hannover Rügen Stuttgart Heidelberg Bonn Köln Frankfurt Aachen Göttingen Wolfsburg Lübeck Mannheim Bochum Magdeburg ZwickauComelio GmbH Oracle XDB: XML DB - Oracle XMLType-Sichten PL/SQL SQLJ Programmierung Datenbank-Entwicklung XML Anleitung Tutorial Oracle Manual Java Ludwigshafen Andernach Koblenz Kiel Hamburg Kassel Leipzig Würzuburg Freiburg Erlangen Koblenz Ingolstadt Berlin Bremen Ol München Hannover Rügen Stuttgart Heidelberg Bonn Köln Frankfurt Aachen Göttingen Wolfsburg Lübeck Mannheim Bochum Magdeburg ZwickauComelio GmbH Oracle XDB: XML DB - Oracle XMLType-Sichten PL/SQL SQLJ Programmierung Datenbank-Entwicklung XML Anleitung Tutorial Oracle Manual Java Ludwigshafen Andernach Koblenz Kiel Hamburg Kassel Leipzig Würzuburg Freiburg Erlangen Koblenz Ingolstadt Berlin Bremen Ol München Hannover Rügen Stuttgart Heidelberg Bonn Köln Frankfurt Aachen Göttingen Wolfsburg Lübeck Mannheim Bochum Magdeburg ZwickauComelio GmbH Oracle XDB: XML DB - Oracle XMLType-Sichten PL/SQL SQLJ Programmierung Datenbank-Entwicklung XML Anleitung Tutorial Oracle Manual Java Ludwigshafen Andernach Koblenz Kiel Hamburg Kassel Leipzig Würzuburg Freiburg Erlangen Koblenz Ingolstadt Berlin Bremen Ol München Hannover Rügen Stuttgart Heidelberg Bonn Köln Frankfurt Aachen Göttingen Wolfsburg Lübeck Mannheim Bochum Magdeburg ZwickauComelio GmbH Oracle XDB: XML DB - Oracle XMLType-Sichten PL/SQL SQLJ Programmierung Datenbank-Entwicklung XML Anleitung Tutorial Oracle Manual Java Ludwigshafen Andernach Koblenz Kiel Hamburg Kassel Leipzig Würzuburg Freiburg Erlangen Koblenz Ingolstadt Berlin Bremen Ol München Hannover Rügen Stuttgart Heidelberg Bonn Köln Frankfurt Aachen Göttingen Wolfsburg Lübeck Mannheim Bochum Magdeburg ZwickauComelio GmbH Oracle XDB: XML DB - Oracle XMLType-Sichten PL/SQL SQLJ Programmierung Datenbank-Entwicklung XML Anleitung Tutorial Oracle Manual Java Ludwigshafen Andernach Koblenz Kiel Hamburg Kassel Leipzig Würzuburg Freiburg Erlangen Koblenz Ingolstadt Berlin Bremen Ol München Hannover Rügen Stuttgart Heidelberg Bonn Köln Frankfurt Aachen Göttingen Wolfsburg Lübeck Mannheim Bochum Magdeburg ZwickauComelio GmbH Oracle XDB: XML DB - Oracle XMLType-Sichten PL/SQL SQLJ Programmierung Datenbank-Entwicklung XML Anleitung Tutorial Oracle Manual Java Ludwigshafen Andernach Koblenz Kiel Hamburg Kassel Leipzig Würzuburg Freiburg Erlangen Koblenz Ingolstadt Berlin Bremen Ol München Hannover Rügen Stuttgart Heidelberg Bonn Köln Frankfurt Aachen Göttingen Wolfsburg Lübeck Mannheim Bochum Magdeburg ZwickauComelio GmbH Oracle XDB: XML DB - Oracle XMLType-Sichten PL/SQL SQLJ Programmierung Datenbank-Entwicklung XML Anleitung Tutorial Oracle Manual Java Ludwigshafen Andernach Koblenz Kiel Hamburg Kassel Leipzig Würzuburg Freiburg Erlangen Koblenz Ingolstadt Berlin Bremen Ol München Hannover Rügen Stuttgart Heidelberg Bonn Köln Frankfurt Aachen Göttingen Wolfsburg Lübeck Mannheim Bochum Magdeburg ZwickauComelio GmbH Oracle XDB: XML DB - Oracle XMLType-Sichten PL/SQL SQLJ Programmierung Datenbank-Entwicklung XML Anleitung Tutorial Oracle Manual Java Ludwigshafen Andernach Koblenz Kiel Hamburg Kassel Leipzig Würzuburg Freiburg Erlangen Koblenz Ingolstadt Berlin Bremen Ol München Hannover Rügen Stuttgart Heidelberg Bonn Köln Frankfurt Aachen Göttingen Wolfsburg Lübeck Mannheim Bochum Magdeburg Zwickau
Seminare