Back To Top

XML DB - Sichten

Oracle XDB: XMLType-Sichten

Comelio Oracle XDB SichtenDie 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

Comelio Oracle XDB SichtenDie 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

Comelio Oracle XDB SichtenBei 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;

» Kontaktformular










comelio.com

mail address

mail address

  • Berlin | Comelio GmbH
    Fon: +49(0)30-8145622-00
    Fax: +49(0)30-8145622-10
  • München | Comelio GmbH
    Fon: +49(0)89-38156860-0
    Fax: +49(0)89-38156860-9
  • Hamburg | Comelio GmbH
    Fon: +49(0)40-20934996-0
    Fax: +49(0)40-20934996-9
  • Wien | Comelio GmbH
    Fon: +43-720-2097-97
    Fax: +43-720-2097-98