Back To Top

XML DB: XMLType und XML Schema

Oracle XDB: Validierung von XMLType mit XML Schema

Comelio Oracle XMLType XSLTDie gleiche Vereinfachung wie für die Transformation ist auch für die Validierung mit Hilfe von XML Schema möglich. Hier kann man mit Hilfe der Methode isSchemaValid() herausfinden, ob eine XML-Datei in Hinblick auf das angegebene Schema gültig ist. Zusätzlich lässt sich mit isSchemaBased() herausfinden, ob für das angegebene XML-Dokument ein Schema vorliegt bzw. eine Schema-Verknüpfung vorhanden ist. Dann lässt sich mit getSchemaURL() genau diese Verknüpfung aus einem XML-Dokument filtern.

Die allgemeinte Syntax XMLIsValid ( XMLType_inst [, schemaurl [, elem]]) zeigt, dass neben dem XML-Dokument die Schema-URL für die XML Schema-Datei und – bei mehrdeutigen Wurzelelementen im Schema – das Wurzelelement des Instanzdokuments angegeben werden können.

Auch hier lässt sich leicht eine PL/SQL-Variante vorstellen, in der nicht Spaltenwerte, sondern Variablenwerte auf Gültigkeit geprüft werden und die benötigten Variablen für XML Schema und XML selbst jeweils als XMLType-Daten vorliegen.

-- Werte einfügen
INSERT INTO termin_d VALUES(1015068, XMLType('<Termin Nr="498">
  <Beginn>10.06.03</Beginn>
  <Ende>13.06.03</Ende>
  <Kurs>1015068</Kurs>
</Termin>'),
XMLType('<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="Termin">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Beginn" type="xs:string"/>
        <xs:element name="Ende" type="xs:string"/>
        <xs:element name="Kurs" type="xs:int"/>
      </xs:sequence>
      <xs:attribute name="Nr" type="xs:short" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
'));
/
SELECT XMLIsValid(t_xml, t_schema), t_xml, t_schema
 FROM termin_d;

» 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