miércoles, 18 de marzo de 2009

Oracle: registrar esquema XSD

Para registrar un esquema:
1) Nos aseguramos que tenemos los permisos adecuados otorgandolos como system:
grant create any directory, drop any directory, connect, resource, alter session, create view to usuario_oracle

PD: quizá tambien necesitemos el rol de XDBADMIN
grant XDBADMIN to usuario_oracle

2) Creamos en oracle un directorio, que apunte donde tenemos nuestro esquema
create or replace directory XMLDIR as '/home/dieguz2/xsd'

3) Registramos el esquema:
BEGIN
DBMS_XMLSCHEMA.registerSchema(
SCHEMAURL => 'esquema.xsd',
SCHEMADOC => bfilename('XMLDIR','esquema.xsd'),
CSID => nls_charset_id('AL32UTF8'));
END;

4) Ejemplo de como crear una tabla
create table TABLA_XML of xmltype XMLSchema "esquema.xsd" element "elemento_raiz_xml";

5) Ejemplo de inserción de un elemento:
Insert into TABLA_XML values( XMLType(bfilename('XMLDIR','archivoxml.xml') ,nls_charset_id('AL32UTF8')));