MINI MINI MANI MO
Rem
Rem $Header: rdbms/admin/catxdbdt.sql /main/33 2016/01/09 02:11:00 ckavoor Exp $
Rem
Rem catxdbdt.sql
Rem
Rem Copyright (c) 1900, 2015, Oracle and/or its affiliates.
Rem All rights reserved.
Rem
Rem NAME
Rem catxdbdt.sql - XDB initialization DaTa
Rem
Rem DESCRIPTION
Rem Initialization data (schema for schema) for XDB
Rem
Rem NOTES
Rem
Rem
Rem BEGIN SQL_FILE_METADATA
Rem SQL_SOURCE_FILE: rdbms/admin/catxdbdt.sql
Rem SQL_SHIPPED_FILE: rdbms/admin/catxdbdt.sql
Rem SQL_PHASE: CATXDBDT
Rem SQL_STARTUP_MODE: NORMAL
Rem SQL_IGNORABLE_ERRORS: NONE
Rem SQL_CALLING_FILE: rdbms/admin/catqm_int.sql
Rem END SQL_FILE_METADATA
Rem
Rem MODIFIED (MM/DD/YY)
Rem ckavoor 01/30/15 - Add id attribute to XDB$ANNOTATION_LIST_T
Rem raeburns 08/01/14 - move procedures to dbms script for reload
Rem surman 01/22/14 - 13922626: Update SQL metadata
Rem qyu 03/18/13 - Common start and end scripts
Rem mrafiq 09/22/06 - remove default value for translate
Rem mrafiq 09/20/06 - Fix typeid default value
Rem smalde 02/16/06 - Translations.
Rem nkandalu 12/06/05 - 4751888: add substitution to derivationChoice
Rem abagrawa 10/05/05 - Add sqltype to simpletype
Rem abagrawa 09/29/05 - Add typeID
Rem rmurthy 02/17/05 - populate namespace array
Rem rmurthy 10/16/03 - temp fix for timefacet
Rem njalali 02/18/03 - putting ABSTRACT back in
Rem abagrawa 01/15/03 - Fix simpletype
Rem njalali 10/29/02 - removing null annotation varray
Rem bkhaladk 09/13/02 - add text type
Rem sichandr 07/31/02 - rename simplecontent to simplecont
Rem esedlar 06/25/02 - Fix memtype for binary
Rem sichandr 07/17/02 - choice instead of sequence
Rem bkhaladk 04/02/02 - baseProp should be system_qmtp TRUE
Rem abagrawa 05/28/02 - Add ID attribute to facets
Rem rmurthy 03/15/02 - add notation, unique, key, keyref
Rem sichandr 02/25/02 - add owner parameter to xdb$ExtName2IntName
Rem mkrishna 01/28/02 - pass namespace to inserAny
Rem spannala 12/27/01 - not switching users in xdb install
Rem rmurthy 01/02/02 - change targetNamespace to XMLSchema
Rem rmurthy 12/27/01 - remove userPrivilege and add defaultXSL
Rem rmurthy 12/17/01 - set system=true for XDB specific attrs
Rem rmurthy 12/07/01 - add PD columns to all types
Rem njalali 12/04/01 - transient and base proprties
Rem rmurthy 11/30/01 - dont insert empty varrays
Rem sichandr 12/05/01 - fix annotation SQLCollType
Rem sichandr 11/28/01 - set global flag in bootstrap schemas
Rem mkrishna 11/01/01 - change xmldata to xmldata
Rem rmurthy 11/20/01 - specify coll type info
Rem sichandr 10/31/01 - add ID attribute
Rem njalali 10/27/01 - adding T_TIMESTAMP constant
Rem sichandr 10/29/01 - authid current_user for xdb$ExtName2IntName
Rem sichandr 10/18/01 - add xdb$extname2intname
Rem rmurthy 09/19/01 - fix maintainDOM
Rem rmurthy 09/13/01 - change documentation/appinfo to mixed types
Rem sichandr 09/18/01 - support storeVarrayAsTable
Rem rmurthy 08/26/01 - add support for substitutionGroup, named group
Rem njalali 08/06/01 - added QMXT_XOBD
Rem rmurthy 08/03/01 - support for inheritance
Rem tsingh 06/30/01 - XDB: XML Database merge
Rem rmurthy 05/31/01 - fix ctype decl. for schema/include
Rem spannala 05/18/01 - xmltype_p -> xmltype
Rem rmurthy 05/09/01 - remove conn stmt
Rem rmurthy 04/25/01 - annotation, appinfo, documentation
Rem rmurthy 04/20/01 - support for any, anyAttribute
Rem rmurthy 03/27/01 - add use,value attrs for attribute
Rem rmurthy 02/22/01 - major changes for new xml schemas
Rem rmurthy 02/02/01 - add support for element ref
Rem rmurthy 01/12/01 - consistently uppercase all schema object names
Rem mkrishna 12/03/00 - change sys_nc values to xmldata
Rem rmurthy 12/04/00 - uppercase type & schema names
Rem njalali 11/16/00 - sqlschema/sqltype order switch
Rem esedlar 11/01/00 - Add SQL schema
Rem njalali 09/25/00 - Add typename for <schema> XML type
Rem esedlar 07/12/00 - Created
Rem
@@?/rdbms/admin/sqlsessstart.sql
create or replace library xdb.XMLSchema_lib trusted as static
/
Rem Function that converts namespace array to internal pickled
Rem format. Used to bootstrap the schema for schemas and
Rem also the resource schema
create or replace function xdb.xdb$getPickledNS
(nsuri IN VARCHAR2, pfx IN VARCHAR2)
return raw is
external
name "GET_PICKLED_NS"
language C
library XMLSCHEMA_LIB
with context
parameters (context,
nsuri STRING,
nsuri INDICATOR sb4,
nsuri LENGTH sb4,
pfx STRING,
pfx INDICATOR sb4,
pfx LENGTH sb4,
return LENGTH sb4,
return INDICATOR sb4,
return);
/
Rem Bootstrap for schema for schemas
create or replace package xdb.xdb$bootstrap as
SIMPLE_SQL CONSTANT VARCHAR2(256) :=
'insert into xdb.xdb$simple_type s (xmldata) ' ||
'values (:1) returning ref(s) into :2';
SEQUENCE_SQL CONSTANT VARCHAR2(256) :=
'insert into xdb.xdb$sequence_model c (xmldata) ' ||
'values (:1) returning ref(c) into :2';
CHOICE_SQL CONSTANT VARCHAR2(256) :=
'insert into xdb.xdb$choice_model c (xmldata) ' ||
'values (:1) returning ref(c) into :2';
COMPLEX_SQL CONSTANT VARCHAR2(256) :=
'insert into xdb.xdb$complex_type c (xmldata) ' ||
'values (:1) returning ref(c) into :2';
COMPLEX_UPDATE_SQL CONSTANT VARCHAR2(256) :=
'update xdb.xdb$complex_type c set xmldata = :1 ' ||
'where ref(c) = :2';
ATTR_SQL CONSTANT VARCHAR2(256) :=
'insert into xdb.xdb$attribute a (xmldata) ' ||
'values (:1) returning ref(a) into :2';
ELEM_SQL CONSTANT vARCHAR2(256) :=
'insert into xdb.xdb$element e (xmldata) ' ||
'values (:1) returning ref(e) into :2';
ANY_SQL CONSTANT VARCHAR2(256) :=
'insert into xdb.xdb$any a (xmldata) ' ||
'values (:1) returning ref(a) into :2';
LPXELEMENT CONSTANT INTEGER :=1;
LPXATTR CONSTANT INTEGER :=2;
TD_EXTENSION CONSTANT xdb.xdb$derivationChoice :=
xdb.xdb$derivationChoice('0001');
TD_RESTRICTION CONSTANT xdb.xdb$derivationChoice :=
xdb.xdb$derivationChoice('0002');
TD_LIST CONSTANT xdb.xdb$derivationChoice :=
xdb.xdb$derivationChoice('0003');
TD_ALL CONSTANT xdb.xdb$derivationChoice :=
xdb.xdb$derivationChoice('0004');
TD_SUBSTITUTION CONSTANT xdb.xdb$derivationChoice :=
xdb.xdb$derivationChoice('0005');
TD_UNION CONSTANT xdb.xdb$derivationChoice :=
xdb.xdb$derivationChoice('0006');
TRANSIENT_GENERATED CONSTANT xdb.xdb$transientChoice :=
xdb.xdb$transientChoice('01');
TRANSIENT_MANIFESTED CONSTANT xdb.xdb$transientChoice :=
xdb.xdb$transientChoice('02');
FC_UNQUAL CONSTANT xdb.xdb$formChoice := xdb.xdb$formChoice('00');
FC_QUAL CONSTANT xdb.xdb$formChoice := xdb.xdb$formChoice('01');
T_JAVASTRING CONSTANT RAW(2) :='101';
T_XOB CONSTANT RAW(2) :='102';
T_ENUM CONSTANT RAW(2) :='103';
T_QNAME CONSTANT RAW(2) :='104';
T_XOBD CONSTANT RAW(2) :='105';
T_CSTRING CONSTANT RAW(2) :='1'; /* DTYCHR */
T_NUMBER CONSTANT RAW(2) :='2'; /* DTYNUM */
T_INTEGER CONSTANT RAW(2) :='3'; /* DTYINT */
T_FLOAT CONSTANT RAW(2) :='4'; /* DTYFLT */
T_DATE CONSTANT RAW(2) :='c'; /* DTYDAT */
T_TIMESTAMP CONSTANT RAW(2) :='b4'; /* DTYSTAMP */
T_BINARY CONSTANT RAW(2) :='17'; /* DTYBIN */
T_UNSIGNINT CONSTANT RAW(2) :='44'; /* DTYINT */
T_REF CONSTANT RAW(2) :='6e'; /* DTYREF */
T_BOOLEAN CONSTANT RAW(2) :='fc'; /* DTYBOL */
T_BLOB CONSTANT RAW(2) :='71'; /* DTYBLOB */
T_CLOB CONSTANT RAW(2) :='70'; /* DTYBLOB */
JT_STRING CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('0');
JT_INT CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('1');
JT_LONG CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('2');
JT_SHORT CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('3');
JT_BYTE CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('4');
JT_FLOAT CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('5');
JT_DOUBLE CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('6');
JT_BIGDECIMAL CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('6');
JT_BOOLEAN CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('8');
JT_BYTEARRAY CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('9');
JT_STREAM CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('a');
JT_CHARSTREAM CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('b');
JT_TIMESTAMP CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('c');
JT_REFERENCE CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('d');
JT_QNAME CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('e');
JT_ENUM CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('f');
JT_XMLTYPE CONSTANT xdb.xdb$javatype := xdb.xdb$javatype('10');
TR_STRING CONSTANT xdb.xdb$qname := xdb.xdb$qname('00', 'string');
TR_BOOLEAN CONSTANT xdb.xdb$qname := xdb.xdb$qname('00', 'boolean');
TR_BINARY CONSTANT xdb.xdb$qname := xdb.xdb$qname('00', 'hexBinary');
TR_INT CONSTANT xdb.xdb$qname := xdb.xdb$qname('00', 'integer');
TR_NNEGINT CONSTANT xdb.xdb$qname := xdb.xdb$qname('00',
'nonNegativeInteger');
FALSE CONSTANT RAW(1) := '0';
TRUE CONSTANT RAW(1) := '1';
PN_TOTAL_PROPNUMS CONSTANT INTEGER := 277;
PN_SCHEMA_LANG CONSTANT INTEGER := 212;
PN_NOTATION_ANNOTATION CONSTANT INTEGER := 213;
PN_NOTATION_NAME CONSTANT INTEGER := 214;
PN_NOTATION_PUBLIC CONSTANT INTEGER := 215;
PN_NOTATION_SYSTEM CONSTANT INTEGER := 216;
PN_SCHEMA_NOTATION CONSTANT INTEGER := 217;
PN_XPATHSPEC_ANNOTATION CONSTANT INTEGER := 218;
PN_XPATHSPEC_XPATH CONSTANT INTEGER := 219;
PN_KEYBASE_ANNOTATION CONSTANT INTEGER := 220;
PN_KEYBASE_NAME CONSTANT INTEGER := 221;
PN_KEYBASE_REFER CONSTANT INTEGER := 222;
PN_KEYBASE_SELECTOR CONSTANT INTEGER := 223;
PN_KEYBASE_FIELD CONSTANT INTEGER := 224;
PN_ELEMENT_UNIQUE CONSTANT INTEGER := 225;
PN_ELEMENT_KEY CONSTANT INTEGER := 226;
PN_ELEMENT_KEYREF CONSTANT INTEGER := 227;
PN_SCHEMA_MAPTONCHAR CONSTANT INTEGER := 162;
PN_SCHEMA_MAPTOLOB CONSTANT INTEGER := 194;
PN_SCHEMA_GROUP CONSTANT INTEGER := 192;
PN_SCHEMA_ATTRGROUP CONSTANT INTEGER := 193;
PN_SCHEMA_ID CONSTANT INTEGER := 206;
PN_SCHEMA_VARRAYTAB CONSTANT INTEGER := 209;
PN_SCHEMA_OWNER CONSTANT INTEGER := 210;
PN_FACET_FIXED CONSTANT INTEGER := 86;
PN_NUMFACET_FIXED CONSTANT INTEGER := 87;
PN_TIMEFACET_FIXED CONSTANT INTEGER := 88;
PN_WHITESPACE_FIXED CONSTANT INTEGER := 89;
PN_FACET_ANNOTATION CONSTANT INTEGER := 228;
PN_NUMFACET_ANNOTATION CONSTANT INTEGER := 229;
PN_TIMEFACET_ANNOTATION CONSTANT INTEGER := 230;
PN_WHITESPACE_ANNOTATION CONSTANT INTEGER := 231;
PN_FACET_ID CONSTANT INTEGER := 234;
PN_NUMFACET_ID CONSTANT INTEGER := 235;
PN_TIMEFACET_ID CONSTANT INTEGER := 236;
PN_WHITESPACE_ID CONSTANT INTEGER := 237;
PN_SIMPLE_PARENTSCHEMA CONSTANT INTEGER := 4;
PN_SIMPLE_NAME CONSTANT INTEGER := 6;
PN_SIMPLE_ABSTRACT CONSTANT INTEGER := 8;
PN_SIMPLE_FINAL CONSTANT INTEGER := 270;
PN_SIMPLE_BASETYPE CONSTANT INTEGER := 5;
PN_SIMPLE_BASE CONSTANT INTEGER := 7;
PN_SIMPLE_PRECISION CONSTANT INTEGER := 11;
PN_SIMPLE_SCALE CONSTANT INTEGER := 12;
PN_SIMPLE_MINLENGTH CONSTANT INTEGER := 13;
PN_SIMPLE_MAXLENGTH CONSTANT INTEGER := 14;
PN_SIMPLE_WHITESPACE CONSTANT INTEGER := 15;
PN_SIMPLE_PERIOD CONSTANT INTEGER := 16;
PN_SIMPLE_DURATION CONSTANT INTEGER := 17;
PN_SIMPLE_MININCLUSIVE CONSTANT INTEGER := 18;
PN_SIMPLE_MAXINCLUSIVE CONSTANT INTEGER := 19;
PN_SIMPLE_PATTERN CONSTANT INTEGER := 20;
PN_SIMPLE_ENUMERATION CONSTANT INTEGER := 21;
PN_SIMPLE_MINEXCLUSIVE CONSTANT INTEGER := 90;
PN_SIMPLE_MAXEXCLUSIVE CONSTANT INTEGER := 91;
PN_SIMPLE_LENGTH CONSTANT INTEGER := 92;
PN_SIMPLE_ID CONSTANT INTEGER := 196;
PN_SIMPLEDER_SIMPLETYPE CONSTANT INTEGER := 9;
PN_SIMPLEDER_ANNOTATION CONSTANT INTEGER := 144;
PN_SIMPLEDER_ID CONSTANT INTEGER := 195;
PN_SIMPLE_RESTRICTION CONSTANT INTEGER := 10;
PN_SIMPLE_LIST CONSTANT INTEGER := 117;
PN_SIMPLE_UNION CONSTANT INTEGER := 124;
PN_SIMPLE_TYPEID CONSTANT INTEGER := 271;
PN_SIMPLE_SQLTYPE CONSTANT INTEGER := 273;
PN_LIST_ITEMTYPE CONSTANT INTEGER := 118;
PN_LIST_TYPEREF CONSTANT INTEGER := 119;
PN_LIST_SIMPLETYPE CONSTANT INTEGER := 120;
PN_LIST_ANNOTATION CONSTANT INTEGER := 232;
PN_UNION_MEMBERTYPES CONSTANT INTEGER := 121;
PN_UNION_SIMPLETYPE CONSTANT INTEGER := 122;
PN_UNION_TYPEREF CONSTANT INTEGER := 123;
PN_UNION_ANNOTATION CONSTANT INTEGER := 233;
PN_MODEL_PARENTSCHEMA CONSTANT INTEGER := 93;
PN_MODEL_MINOCCURS CONSTANT INTEGER := 94;
PN_MODEL_MAXOCCURS CONSTANT INTEGER := 95;
PN_MODEL_ELEMENT CONSTANT INTEGER := 96;
PN_MODEL_CHOICE CONSTANT INTEGER := 97;
PN_MODEL_SEQUENCE CONSTANT INTEGER := 98;
PN_MODEL_ANY CONSTANT INTEGER := 127;
PN_MODEL_ANNOTATION CONSTANT INTEGER := 143;
PN_MODEL_ID CONSTANT INTEGER := 201;
PN_MODEL_GROUP CONSTANT INTEGER := 165;
PN_COMPLEXDERIVATION_BASE CONSTANT INTEGER := 99;
PN_COMPLEXDERIVATION_ATTRIBUTE CONSTANT INTEGER := 101;
PN_COMPLEXDERIVATION_ALL CONSTANT INTEGER := 102;
PN_COMPLEXDERIVATION_CHOICE CONSTANT INTEGER := 103;
PN_COMPLEXDERIVATION_SEQUENCE CONSTANT INTEGER := 104;
PN_COMPLEXDERIVATION_ANYATTR CONSTANT INTEGER := 128;
PN_COMPLEXDERIVATION_ANNOT CONSTANT INTEGER := 145;
PN_COMPLEXDERIVATION_GROUP CONSTANT INTEGER := 166;
PN_COMPLEXDERIVATION_ATTRGROUP CONSTANT INTEGER := 167;
PN_COMPLEXDERIVATION_ID CONSTANT INTEGER := 202;
PN_CONTENT_MIXED CONSTANT INTEGER := 105;
PN_CONTENT_RESTRICTION CONSTANT INTEGER := 106;
PN_CONTENT_EXTENSION CONSTANT INTEGER := 107;
PN_CONTENT_ANNOTATION CONSTANT INTEGER := 146;
PN_CONTENT_ID CONSTANT INTEGER := 203;
PN_COMPLEXTYPE_PARENTSCHEMA CONSTANT INTEGER := 23;
PN_COMPLEXTYPE_FINAL CONSTANT INTEGER := 24;
PN_COMPLEXTYPE_BLOCK CONSTANT INTEGER := 25;
PN_COMPLEXTYPE_MIXED CONSTANT INTEGER := 108;
PN_COMPLEXTYPE_ABSTRACT CONSTANT INTEGER := 109;
PN_COMPLEXTYPE_NAME CONSTANT INTEGER := 110;
PN_COMPLEXTYPE_SIMPLECONTENT CONSTANT INTEGER := 26;
PN_COMPLEXTYPE_COMPLEXCONTENT CONSTANT INTEGER := 27;
PN_COMPLEXTYPE_ATTRIBUTE CONSTANT INTEGER := 28;
PN_COMPLEXTYPE_ALL CONSTANT INTEGER := 111;
PN_COMPLEXTYPE_CHOICE CONSTANT INTEGER := 112;
PN_COMPLEXTYPE_SEQUENCE CONSTANT INTEGER := 113;
PN_COMPLEXTYPE_ANYATTR CONSTANT INTEGER := 129;
PN_COMPLEXTYPE_SQLTYPE CONSTANT INTEGER := 159;
PN_COMPLEXTYPE_SQLSCHEMA CONSTANT INTEGER := 160;
PN_COMPLEXTYPE_MAINTAINDOM CONSTANT INTEGER := 161;
PN_COMPLEXTYPE_SUBTYPEREF CONSTANT INTEGER := 163;
PN_COMPLEXTYPE_BASETYPE CONSTANT INTEGER := 100;
PN_COMPLEXTYPE_GROUP CONSTANT INTEGER := 168;
PN_COMPLEXTYPE_ATTRGROUP CONSTANT INTEGER := 169;
PN_COMPLEXTYPE_ID CONSTANT INTEGER := 204;
PN_COMPLEXTYPE_TYPEID CONSTANT INTEGER := 272;
PN_APPINFO_SOURCE CONSTANT INTEGER := 130;
PN_APPINFO_ANY CONSTANT INTEGER := 131;
PN_DOCUMENTATION_SOURCE CONSTANT INTEGER := 132;
PN_DOCUMENTATION_LANG CONSTANT INTEGER := 133;
PN_DOCUMENTATION_ANY CONSTANT INTEGER := 134;
PN_ANNOTATION_APPINFO CONSTANT INTEGER := 135;
PN_ANNOTATION_DOCUMENTATION CONSTANT INTEGER := 136;
PN_SCHEMA_ANNOTATION CONSTANT INTEGER := 137;
PN_ATTRIBUTE_ANNOTATION CONSTANT INTEGER := 138;
PN_ANNOTATION_ID CONSTANT INTEGER := 276;
PN_SIMPLE_ANNOTATION CONSTANT INTEGER := 139;
PN_COMPLEXTYPE_ANNOTATION CONSTANT INTEGER := 140;
PN_ELEMENT_DEFAULTXSL CONSTANT INTEGER := 114;
PN_ELEMENT_DEFTABLESCHEMA CONSTANT INTEGER := 147;
PN_ELEMENT_ISFOLDER CONSTANT INTEGER := 155;
PN_ELEMENT_MAINTAINORDER CONSTANT INTEGER := 156;
PN_ELEMENT_COLUMNPROPS CONSTANT INTEGER := 157;
PN_ELEMENT_DEFAULTACL CONSTANT INTEGER := 158;
PN_ELEMENT_HEADELEM_REF CONSTANT INTEGER := 164;
PN_ELEMENT_ISTRANSLATABLE CONSTANT INTEGER := 274;
PN_ELEMENT_XDBMAXOCCURS CONSTANT INTEGER := 275;
PN_ATTRIBUTE_USE CONSTANT INTEGER := 115;
PN_ATTRIBUTE_FIXED CONSTANT INTEGER := 116;
PN_ATTR_SQLCOLLTYPE CONSTANT INTEGER := 148;
PN_ATTR_SQLCOLLSCHEMA CONSTANT INTEGER := 149;
PN_ATTR_HIDDEN CONSTANT INTEGER := 153;
PN_ATTR_TRANSIENT CONSTANT INTEGER := 154;
PN_ATTR_ID CONSTANT INTEGER := 205;
PN_ATTR_BASEPROP CONSTANT INTEGER := 211;
PN_ANYTYPE_MINOCCURS CONSTANT INTEGER := 141;
PN_ANYTYPE_MAXOCCURS CONSTANT INTEGER := 142;
PN_ANYTYPE_NAMESPACE CONSTANT INTEGER := 125;
PN_ANYTYPE_PROCESSCONTENTS CONSTANT INTEGER := 126;
PN_INCLUDE_ANNOTATION CONSTANT INTEGER := 150;
PN_INCLUDE_ID CONSTANT INTEGER := 207;
PN_INCLUDE_SCHEMALOCATION CONSTANT INTEGER := 151;
PN_IMPORT_ANNOTATION CONSTANT INTEGER := 152;
PN_IMPORT_ID CONSTANT INTEGER := 208;
PN_GROUPDEF_PARENTSCHEMA CONSTANT INTEGER := 170;
PN_GROUPDEF_NAME CONSTANT INTEGER := 171;
PN_GROUPDEF_ANNOTATION CONSTANT INTEGER := 172;
PN_GROUPDEF_ID CONSTANT INTEGER := 197;
PN_GROUPDEF_ALL CONSTANT INTEGER := 173;
PN_GROUPDEF_CHOICE CONSTANT INTEGER := 174;
PN_GROUPDEF_SEQUENCE CONSTANT INTEGER := 175;
PN_GROUPREF_PARENTSCHEMA CONSTANT INTEGER := 176;
PN_GROUPREF_MINOCCURS CONSTANT INTEGER := 177;
PN_GROUPREF_MAXOCCURS CONSTANT INTEGER := 178;
PN_GROUPREF_NAME CONSTANT INTEGER := 179;
PN_GROUPREF_REF CONSTANT INTEGER := 180;
PN_GROUPREF_ANNOTATION CONSTANT INTEGER := 181;
PN_GROUPREF_ID CONSTANT INTEGER := 198;
PN_ATTRGROUPDEF_PARENTSCHEMA CONSTANT INTEGER := 182;
PN_ATTRGROUPDEF_NAME CONSTANT INTEGER := 183;
PN_ATTRGROUPDEF_ANNOTATION CONSTANT INTEGER := 184;
PN_ATTRGROUPDEF_ID CONSTANT INTEGER := 199;
PN_ATTRGROUPDEF_ATTRIBUTE CONSTANT INTEGER := 185;
PN_ATTRGROUPDEF_ANYATTR CONSTANT INTEGER := 186;
PN_ATTRGROUPDEF_ATTRGROUP CONSTANT INTEGER := 187;
PN_ATTRGROUPREF_PARENTSCHEMA CONSTANT INTEGER := 188;
PN_ATTRGROUPREF_NAME CONSTANT INTEGER := 189;
PN_ATTRGROUPREF_REF CONSTANT INTEGER := 190;
PN_ATTRGROUPREF_ANNOTATION CONSTANT INTEGER := 191;
PN_ATTRGROUPREF_ID CONSTANT INTEGER := 200;
/* simpleContent -> extension */
PN_SIMPLECONTEXT_BASE CONSTANT INTEGER := 238;
PN_SIMPLECONTEXT_ID CONSTANT INTEGER := 239;
PN_SIMPLECONTEXT_ANNOTATION CONSTANT INTEGER := 240;
PN_SIMPLECONTEXT_ATTRIBUTE CONSTANT INTEGER := 241;
PN_SIMPLECONTEXT_ANYATTR CONSTANT INTEGER := 242;
PN_SIMPLECONTEXT_ATTRGROUP CONSTANT INTEGER := 243;
/* simpleContent -> restriction */
PN_SIMPLECONTRES_BASE CONSTANT INTEGER := 244;
PN_SIMPLECONTRES_ID CONSTANT INTEGER := 245;
PN_SIMPLECONTRES_ATTRIBUTE CONSTANT INTEGER := 246;
PN_SIMPLECONTRES_ANYATTR CONSTANT INTEGER := 247;
PN_SIMPLECONTRES_ATTRGROUP CONSTANT INTEGER := 248;
PN_SIMPLECONTRES_ANNOTATION CONSTANT INTEGER := 249;
PN_SIMPLECONTRES_FRACDIGITS CONSTANT INTEGER := 250;
PN_SIMPLECONTRES_TOTALDIGITS CONSTANT INTEGER := 251;
PN_SIMPLECONTRES_MINLENGTH CONSTANT INTEGER := 252;
PN_SIMPLECONTRES_MAXLENGTH CONSTANT INTEGER := 253;
PN_SIMPLECONTRES_WHITESPACE CONSTANT INTEGER := 254;
PN_SIMPLECONTRES_PERIOD CONSTANT INTEGER := 255;
PN_SIMPLECONTRES_DURATION CONSTANT INTEGER := 256;
PN_SIMPLECONTRES_MININCLUSIVE CONSTANT INTEGER := 257;
PN_SIMPLECONTRES_MAXINCLUSIVE CONSTANT INTEGER := 258;
PN_SIMPLECONTRES_PATTERN CONSTANT INTEGER := 259;
PN_SIMPLECONTRES_ENUMERATION CONSTANT INTEGER := 260;
PN_SIMPLECONTRES_MINEXCLUSIVE CONSTANT INTEGER := 261;
PN_SIMPLECONTRES_MAXEXCLUSIVE CONSTANT INTEGER := 262;
PN_SIMPLECONTRES_LENGTH CONSTANT INTEGER := 263;
PN_SIMPLECONTRES_SIMPLETYPE CONSTANT INTEGER := 264;
/* simpleContent */
PN_SIMPLECONTENT_ID CONSTANT INTEGER := 265;
PN_SIMPLECONTENT_ANNOTATION CONSTANT INTEGER := 266;
PN_SIMPLECONTENT_RESTRICTION CONSTANT INTEGER := 267;
PN_SIMPLECONTENT_EXTENSION CONSTANT INTEGER := 268;
function xdb$enums2facet(vals xdb.xdb$enum_values_t)
return xdb.xdb$facet_list_t;
function xdb$getNumFacet(val integer) return xdb.xdb$numfacet_t;
function xdb$getWhitespaceFacet(val xdb.xdb$whitespaceChoice)
return xdb.xdb$whitespace_t;
function xdb$getTimeFacet(val date) return xdb.xdb$timefacet_t;
function xdb$getFacet(val varchar2) return xdb.xdb$facet_t;
function xdb$insertSimple(
parent_schema ref sys.xmltype,
base_type ref sys.xmltype,
name varchar2,
base xdb.xdb$qname,
final_info xdb.xdb$derivationChoice,
derived_by xdb.xdb$derivationChoice,
flags raw,
precision integer,
scale integer,
minlength integer,
maxlength integer,
whitespace xdb.xdb$whitespaceChoice,
period date,
duration date,
minInclusive varchar2,
maxInclusive varchar2,
pattern varchar2,
enumeration xdb.xdb$enum_values_t
) return ref sys.xmltype;
function xdb$insertSimpleList(
parent_schema ref sys.xmltype,
name varchar2,
final_info xdb.xdb$derivationChoice,
itemtype xdb.xdb$qname,
itemref ref sys.xmltype) return ref sys.xmltype;
function xdb$insertSequence (
parent_schema ref sys.xmltype,
elements xdb.xdb$xmltype_ref_list_t,
anyelems xdb.xdb$xmltype_ref_list_t := null,
choice_list xdb.xdb$xmltype_ref_list_t := null
) return ref sys.xmltype;
function xdb$insertChoice (
parent_schema ref sys.xmltype,
elements xdb.xdb$xmltype_ref_list_t,
anyelems xdb.xdb$xmltype_ref_list_t := null,
maxoccurs varchar2 := 'unbounded'
) return ref sys.xmltype;
function xdb$insertEmptyComplex return ref sys.xmltype;
function xdb$insertComplex(
parent_schema ref sys.xmltype,
base_type ref sys.xmltype,
name varchar2,
base xdb.xdb$qname,
abstract raw,
derived_by xdb.xdb$derivationChoice,
flags raw,
precision integer,
scale integer,
minlength integer,
maxlength integer,
whitespace xdb.xdb$whitespaceChoice,
period date,
duration date,
min_bound varchar2,
max_bound varchar2,
pattern varchar2,
enumeration xdb.xdb$enum_values_t,
dummy varchar2,
final_info xdb.xdb$derivationChoice,
block xdb.xdb$derivationChoice,
glob_elements xdb.xdb$xmltype_ref_list_t,
local_elements xdb.xdb$xmltype_ref_list_t,
attributes xdb.xdb$xmltype_ref_list_t,
anyelems xdb.xdb$xmltype_ref_list_t := null,
mixed raw := FALSE,
model_ref ref sys.xmltype := null
) return ref sys.xmltype;
procedure xdb$updateComplex(
complex_ref ref sys.xmltype,
parent_schema ref sys.xmltype,
base_type ref sys.xmltype,
name varchar2,
base xdb.xdb$qname,
abstract raw,
derived_by xdb.xdb$derivationChoice,
dummy varchar2,
final_info xdb.xdb$derivationChoice,
block xdb.xdb$derivationChoice,
glob_elements xdb.xdb$xmltype_ref_list_t,
local_elements xdb.xdb$xmltype_ref_list_t,
attributes xdb.xdb$xmltype_ref_list_t,
model_ref ref sys.xmltype := null
);
function xdb$insertAttr(
parent_schema ref sys.xmltype,
prop_number integer,
name varchar2,
typename xdb.xdb$qname,
min_occurs integer,
max_occurs integer,
mem_byte_length raw,
mem_type_code raw,
system raw,
mutable raw,
fixed raw,
sqlname varchar2,
sqltype varchar2,
sqlschema varchar2,
java_type xdb.xdb$javatype,
default_value varchar2,
smpl_type_decl ref sys.xmltype,
type_ref ref sys.xmltype,
propref_name xdb.xdb$qname,
propref_ref ref sys.xmltype,
sqlcolltype varchar2 := null,
sqlcollschema varchar2 := null,
hidden raw := null,
transient xdb.xdb$transientChoice := null,
baseprop raw := null
) return ref sys.xmltype;
function xdb$insertElement(
parent_schema ref sys.xmltype,
prop_number integer,
name varchar2,
typename xdb.xdb$qname,
min_occurs integer,
max_occurs integer,
mem_byte_length raw,
mem_type_code raw,
system raw,
mutable raw,
fixed raw,
sqlname varchar2,
sqltype varchar2,
sqlschema varchar2,
java_type xdb.xdb$javatype,
default_value varchar2,
smpl_type_decl ref sys.xmltype,
type_ref ref sys.xmltype,
propref_name xdb.xdb$qname,
propref_ref ref sys.xmltype,
subs_group xdb.xdb$qname,
num_cols integer,
nillable raw,
final_info xdb.xdb$derivationChoice,
block xdb.xdb$derivationChoice,
abstract raw,
mem_inline raw,
sql_inline raw,
java_inline raw,
maintain_dom raw,
default_table varchar2,
table_storage varchar2,
java_classname varchar2,
bean_classname varchar2,
global raw,
base_sqlname varchar2,
cplx_type_decl ref sys.xmltype,
subs_group_refs xdb.xdb$xmltype_ref_list_t,
sqlcolltype varchar2 := null,
sqlcollschema varchar2 := null,
hidden raw := null,
transient xdb.xdb$transientChoice := null,
baseprop raw := null
) return ref sys.xmltype;
function xdb$insertAny(
parent_schema ref sys.xmltype,
prop_number integer,
name varchar2,
typename xdb.xdb$qname,
anynamespace varchar2,
min_occurs integer,
max_occurs integer,
mem_byte_length raw,
mem_type_code raw,
system raw,
mutable raw,
fixed raw,
sqlname varchar2,
sqltype varchar2,
sqlschema varchar2,
java_type xdb.xdb$javatype,
default_value varchar2,
smpl_type_decl ref sys.xmltype,
type_ref ref sys.xmltype,
propref_name xdb.xdb$qname,
propref_ref ref sys.xmltype,
sqlcolltype varchar2 := null,
sqlcollschema varchar2 := null
) return ref sys.xmltype;
procedure driver;
end;
/
show errors
create or replace package body xdb.xdb$bootstrap is
function xdb$enums2facet(vals xdb.xdb$enum_values_t)
return xdb.xdb$facet_list_t is
facet_list xdb.xdb$facet_list_t := xdb.xdb$facet_list_t();
begin
if vals is null then
return null;
end if;
facet_list.extend(vals.count);
for i in 1..vals.count loop
facet_list(i) := xdb.xdb$facet_t(null, null, vals(i), FALSE, null);
end loop;
return facet_list;
end;
function xdb$getNumFacet(val integer) return xdb.xdb$numfacet_t is
begin
if val is null then
return null;
else
return xdb.xdb$numfacet_t(null, null, val, FALSE, null);
end if;
end;
function xdb$getWhitespaceFacet(val xdb.xdb$whitespaceChoice)
return xdb.xdb$whitespace_t is
begin
if val is null then
return null;
else
return xdb.xdb$whitespace_t(null, null, val, FALSE, null);
end if;
end;
function xdb$getTimeFacet(val date) return xdb.xdb$timefacet_t is
begin
if val is null then
return null;
else
return xdb.xdb$timefacet_t(null, null, val, FALSE, null);
end if;
end;
function xdb$getFacet(val varchar2) return xdb.xdb$facet_t is
begin
if val is null then
return null;
else
return xdb.xdb$facet_t(null, null, val, FALSE, null);
end if;
end;
function xdb$insertSimple(
parent_schema ref sys.xmltype,
base_type ref sys.xmltype,
name varchar2,
base xdb.xdb$qname,
final_info xdb.xdb$derivationChoice,
derived_by xdb.xdb$derivationChoice,
flags raw,
precision integer,
scale integer,
minlength integer,
maxlength integer,
whitespace xdb.xdb$whitespaceChoice,
period date,
duration date,
minInclusive varchar2,
maxInclusive varchar2,
pattern varchar2,
enumeration xdb.xdb$enum_values_t
) return ref sys.xmltype is
simple_i xdb.xdb$simple_t;
simple_ref ref sys.xmltype;
begin
simple_i := xdb.xdb$simple_t(
null,
parent_schema,
name,
null,
xdb.xdb$simple_derivation_t(
null,
base_type,
base,
null,
xdb$getNumFacet(precision),
xdb$getNumFacet(scale),
xdb$getNumFacet(minlength),
xdb$getNumFacet(maxlength),
null,
xdb$getWhitespaceFacet(whitespace),
xdb$getTimeFacet(period),
xdb$getTimeFacet(duration),
xdb$getFacet(minInclusive),
xdb$getFacet(maxInclusive),
null,null,
null,
xdb$enums2facet(enumeration), null, null),
null, null, null, null,
final_info, null, null);
execute immediate SIMPLE_SQL using simple_i
returning into simple_ref;
return simple_ref;
end;
function xdb$insertSimpleList(
parent_schema ref sys.xmltype,
name varchar2,
final_info xdb.xdb$derivationChoice,
itemtype xdb.xdb$qname,
itemref ref sys.xmltype) return ref sys.xmltype
is
simple_i xdb.xdb$simple_t;
simple_ref ref sys.xmltype;
begin
simple_i := xdb.xdb$simple_t(
null,
parent_schema,
name,
null,
null,
xdb.xdb$list_t(null,null,itemtype,itemref,null),
null, null, null,
final_info, null, null);
execute immediate SIMPLE_SQL using simple_i
returning into simple_ref;
return simple_ref;
end;
function xdb$insertSequence (
parent_schema ref sys.xmltype,
elements xdb.xdb$xmltype_ref_list_t,
anyelems xdb.xdb$xmltype_ref_list_t := null,
choice_list xdb.xdb$xmltype_ref_list_t := null
) return ref sys.xmltype
is
model_i xdb.xdb$model_t;
model_ref ref sys.xmltype;
begin
if (elements is null and anyelems is null) then
return null;
else
model_i := xdb.xdb$model_t(null, parent_schema, 1, '1', elements,
choice_list, null,
anyelems, null, null, null);
execute immediate SEQUENCE_SQL using model_i
returning into model_ref;
return model_ref;
end if;
end;
function xdb$insertChoice (
parent_schema ref sys.xmltype,
elements xdb.xdb$xmltype_ref_list_t,
anyelems xdb.xdb$xmltype_ref_list_t := null,
maxoccurs varchar2 := 'unbounded'
) return ref sys.xmltype
is
model_i xdb.xdb$model_t;
model_ref ref sys.xmltype;
begin
if (elements is null and anyelems is null) then
return null;
else
model_i := xdb.xdb$model_t(null, parent_schema, 0, maxoccurs,
elements, null, null,
anyelems, null, null, null);
execute immediate CHOICE_SQL using model_i
returning into model_ref;
return model_ref;
end if;
end;
function xdb$insertEmptyComplex return ref sys.xmltype is
complex_i xdb.xdb$complex_t;
complex_ref ref sys.xmltype;
begin
complex_i := xdb.xdb$complex_t(null,null,null,null,null,null,null,null,
null,null,null,null,null,null, null,null,
null,null,null,null,null,null,null,null);
execute immediate COMPLEX_SQL using complex_i
returning into complex_ref;
return complex_ref;
end;
function xdb$insertComplex(
parent_schema ref sys.xmltype,
base_type ref sys.xmltype,
name varchar2,
base xdb.xdb$qname,
abstract raw,
derived_by xdb.xdb$derivationChoice,
flags raw,
precision integer,
scale integer,
minlength integer,
maxlength integer,
whitespace xdb.xdb$whitespaceChoice,
period date,
duration date,
min_bound varchar2,
max_bound varchar2,
pattern varchar2,
enumeration xdb.xdb$enum_values_t,
dummy varchar2,
final_info xdb.xdb$derivationChoice,
block xdb.xdb$derivationChoice,
glob_elements xdb.xdb$xmltype_ref_list_t,
local_elements xdb.xdb$xmltype_ref_list_t,
attributes xdb.xdb$xmltype_ref_list_t,
anyelems xdb.xdb$xmltype_ref_list_t := null,
mixed raw := FALSE,
model_ref ref sys.xmltype := null
) return ref sys.xmltype is
complex_i xdb.xdb$complex_t;
complex_ref ref sys.xmltype;
model_r ref sys.xmltype;
begin
if model_ref is null then
model_r := xdb$insertSequence(parent_schema, local_elements,
anyelems);
else
model_r := model_ref;
end if;
if base_type is null then
complex_i := xdb.xdb$complex_t(null,parent_schema,base_type,name,
abstract,mixed,final_info, block,
attributes,null,null,null,null,model_r,null,
null,null,null,null,null,null,null,null,null);
else
complex_i := xdb.xdb$complex_t(null,parent_schema,base_type,name,
abstract,mixed,final_info,block,
null, null, null, null, null,null,null,
xdb.xdb$content_t(null, FALSE, null,
xdb.xdb$complex_derivation_t(
null, base, attributes, null, null,
null,null,model_r,null,null,null), null,null),
null, null,null,FALSE,null,null,null,null);
end if;
execute immediate COMPLEX_SQL using complex_i
returning into complex_ref;
return complex_ref;
end;
procedure xdb$updateComplex(
complex_ref ref sys.xmltype,
parent_schema ref sys.xmltype,
base_type ref sys.xmltype,
name varchar2,
base xdb.xdb$qname,
abstract raw,
derived_by xdb.xdb$derivationChoice,
dummy varchar2,
final_info xdb.xdb$derivationChoice,
block xdb.xdb$derivationChoice,
glob_elements xdb.xdb$xmltype_ref_list_t,
local_elements xdb.xdb$xmltype_ref_list_t,
attributes xdb.xdb$xmltype_ref_list_t,
model_ref ref sys.xmltype := null
) is
complex_i xdb.xdb$complex_t;
model_r ref sys.xmltype;
begin
if model_ref is null then
model_r := xdb$insertSequence(parent_schema, local_elements);
else
model_r := model_ref;
end if;
if base_type is null then
complex_i := xdb.xdb$complex_t(null,parent_schema,base_type,name,
abstract,FALSE,final_info, block,
attributes,null,null,null,null,model_r,null,
null,null,null,null,null,null,null,null,null);
else
complex_i := xdb.xdb$complex_t(null,parent_schema,base_type,name,
abstract,FALSE,final_info,block,
null, null, null, null, null,null,null,
xdb.xdb$content_t(null,FALSE, null,
xdb.xdb$complex_derivation_t(
null,base, attributes, null, null,
null,null,model_r,null,null,null), null,null),
null, null,null,FALSE,null,null,null,null);
end if;
execute immediate COMPLEX_UPDATE_SQL
using complex_i, complex_ref;
end;
function xdb$insertAttr(
parent_schema ref sys.xmltype,
prop_number integer,
name varchar2,
typename xdb.xdb$qname,
min_occurs integer,
max_occurs integer,
mem_byte_length raw,
mem_type_code raw,
system raw,
mutable raw,
fixed raw,
sqlname varchar2,
sqltype varchar2,
sqlschema varchar2,
java_type xdb.xdb$javatype,
default_value varchar2,
smpl_type_decl ref sys.xmltype,
type_ref ref sys.xmltype,
propref_name xdb.xdb$qname,
propref_ref ref sys.xmltype,
sqlcolltype varchar2 := null,
sqlcollschema varchar2 := null,
hidden raw := null,
transient xdb.xdb$transientChoice := null,
baseprop raw := null
) return ref sys.xmltype is
attr_i xdb.xdb$property_t;
attr_ref ref sys.xmltype;
begin
attr_i := xdb.xdb$property_t(null,parent_schema,prop_number,name,
typename,
mem_byte_length,mem_type_code,
system,mutable,null,
sqlname,sqltype,sqlschema,java_type,
default_value,smpl_type_decl,type_ref,
propref_name, propref_ref,
null, null,null,null,sqlcolltype,sqlcollschema,
hidden, transient, null, baseprop);
execute immediate ATTR_SQL using attr_i
returning into attr_ref;
return attr_ref;
end;
function xdb$insertElement(
parent_schema ref sys.xmltype,
prop_number integer,
name varchar2,
typename xdb.xdb$qname,
min_occurs integer,
max_occurs integer,
mem_byte_length raw,
mem_type_code raw,
system raw,
mutable raw,
fixed raw,
sqlname varchar2,
sqltype varchar2,
sqlschema varchar2,
java_type xdb.xdb$javatype,
default_value varchar2,
smpl_type_decl ref sys.xmltype,
type_ref ref sys.xmltype,
propref_name xdb.xdb$qname,
propref_ref ref sys.xmltype,
subs_group xdb.xdb$qname,
num_cols integer,
nillable raw,
final_info xdb.xdb$derivationChoice,
block xdb.xdb$derivationChoice,
abstract raw,
mem_inline raw,
sql_inline raw,
java_inline raw,
maintain_dom raw,
default_table varchar2,
table_storage varchar2,
java_classname varchar2,
bean_classname varchar2,
global raw,
base_sqlname varchar2,
cplx_type_decl ref sys.xmltype,
subs_group_refs xdb.xdb$xmltype_ref_list_t,
sqlcolltype varchar2 := null,
sqlcollschema varchar2 := null,
hidden raw := null,
transient xdb.xdb$transientChoice := null,
baseprop raw := null
) return ref sys.xmltype is
elem_i xdb.xdb$element_t;
elem_ref ref sys.xmltype;
begin
elem_i := xdb.xdb$element_t(
xdb.xdb$property_t(null,parent_schema,prop_number,
name,typename,
mem_byte_length,mem_type_code,system,
mutable,null,
sqlname,sqltype,sqlschema,java_type,
default_value,smpl_type_decl,type_ref,
propref_name,propref_ref,
null, null, global,null,
sqlcolltype, sqlcollschema,
hidden, transient, null, baseprop),
subs_group,num_cols,nillable,
final_info,block,abstract,
mem_inline,sql_inline,java_inline,
maintain_dom,default_table,'XDB',
table_storage,java_classname,bean_classname,
base_sqlname,cplx_type_decl,
subs_group_refs, null,
min_occurs,to_char(max_occurs),
null,null,null,null,null,null,null,null,null,null);
execute immediate ELEM_SQL using elem_i
returning into elem_ref;
return elem_ref;
end;
function xdb$insertAny(
parent_schema ref sys.xmltype,
prop_number integer,
name varchar2,
typename xdb.xdb$qname,
anynamespace varchar2,
min_occurs integer,
max_occurs integer,
mem_byte_length raw,
mem_type_code raw,
system raw,
mutable raw,
fixed raw,
sqlname varchar2,
sqltype varchar2,
sqlschema varchar2,
java_type xdb.xdb$javatype,
default_value varchar2,
smpl_type_decl ref sys.xmltype,
type_ref ref sys.xmltype,
propref_name xdb.xdb$qname,
propref_ref ref sys.xmltype,
sqlcolltype varchar2 := null,
sqlcollschema varchar2 := null
) return ref sys.xmltype is
any_i xdb.xdb$any_t;
any_ref ref sys.xmltype;
begin
any_i := xdb.xdb$any_t(
xdb.xdb$property_t(null,parent_schema,prop_number,
name,typename,
mem_byte_length,mem_type_code,
system,mutable,null,
sqlname,sqltype,sqlschema,java_type,
default_value,smpl_type_decl,type_ref,
propref_name,propref_ref,
null, null, null, null,
sqlcolltype,sqlcollschema,
null, null, null, null),
anynamespace, null,min_occurs,to_char(max_occurs));
execute immediate ANY_SQL using any_i
returning into any_ref;
return any_ref;
end;
procedure driver is
ellist xdb.xdb$xmltype_ref_list_t;
ellist2 xdb.xdb$xmltype_ref_list_t;
simplelist xdb.xdb$xmltype_ref_list_t;
complexlist xdb.xdb$xmltype_ref_list_t;
schels xdb.xdb$xmltype_ref_list_t;
attlist xdb.xdb$xmltype_ref_list_t;
attlist2 xdb.xdb$xmltype_ref_list_t;
anylist xdb.xdb$xmltype_ref_list_t;
choice_list xdb.xdb$xmltype_ref_list_t;
schref ref sys.xmltype;
ctyperef ref sys.xmltype;
styperef ref sys.xmltype;
list_t_ref ref sys.xmltype;
union_t_ref ref sys.xmltype;
simplederv_t_ref ref sys.xmltype;
simple_t_ref ref sys.xmltype;
attr_t_ref ref sys.xmltype;
complex_t_ref ref sys.xmltype;
model_t_ref ref sys.xmltype;
complexderv_t_ref ref sys.xmltype;
content_t_ref ref sys.xmltype;
any_t_ref ref sys.xmltype;
appinfo_t_ref ref sys.xmltype;
documentation_t_ref ref sys.xmltype;
annotation_t_ref ref sys.xmltype;
notation_t_ref ref sys.xmltype;
xpathspec_t_ref ref sys.xmltype;
keybase_t_ref ref sys.xmltype;
groupdef_t_ref ref sys.xmltype;
groupref_t_ref ref sys.xmltype;
attrgroupdef_t_ref ref sys.xmltype;
attrgroupref_t_ref ref sys.xmltype;
simplecontExt_t_ref ref sys.xmltype;
simplecontRes_t_ref ref sys.xmltype;
smplcont_t_ref ref sys.xmltype;
drv_choice_ref ref sys.xmltype;
form_choice_ref ref sys.xmltype;
content_ref ref sys.xmltype;
javatype_ref ref sys.xmltype;
whitespace_ref ref sys.xmltype;
use_choice_ref ref sys.xmltype;
process_choice_ref ref sys.xmltype;
transient_choice_ref ref sys.xmltype;
facet_ref ref sys.xmltype;
num_facet_ref ref sys.xmltype;
time_facet_ref ref sys.xmltype;
schel_ref ref sys.xmltype;
simple_i xdb.xdb$simple_t;
complex_i xdb.xdb$complex_t;
elem_i xdb.xdb$element_t;
attr_i xdb.xdb$property_t;
schema_i xdb.xdb$schema_t;
extras_i sys.xmltypeextra;
seq_ref ref sys.xmltype;
element_propnum integer;
attr_propnum integer;
stype_propnum integer;
ctype_propnum integer;
colcount integer;
attr_colcount integer;
elem_colcount integer;
any_colcount integer;
appinfo_colcount integer;
documentation_colcount integer;
annotation_colcount integer;
notation_colcount integer;
xpathspec_colcount integer;
keybase_colcount integer;
groupdef_colcount integer;
groupref_colcount integer;
attrgroupdef_colcount integer;
attrgroupref_colcount integer;
simple_colcount integer;
complex_colcount integer;
model_colcount integer;
list_colcount integer;
union_colcount integer;
simpleder_colcount integer;
complexder_colcount integer;
content_colcount integer;
simplecontRes_colcount integer;
simplecontExt_colcount integer;
smplcont_colcount integer;
st xdb.xdb$simple_t;
BEGIN
schema_i := xdb.xdb$schema_t('http://xmlns.oracle.com/xdb/XDBSchema.xsd',
'http://www.w3.org/2001/XMLSchema',
'1.0', 0, null, TD_ALL, FC_QUAL, null, null, null, null, null,
null, null, '17', null, null,FALSE,FALSE,
null,null,null,FALSE,'XDB',null,null);
extras_i :=
sys.xmltypeextra(
sys.xmltypepi(
xdb.xdb$getpickledns(
'http://www.w3.org/2001/XMLSchema',
null),
xdb.xdb$getpickledns(
'http://xmlns.oracle.com/xdb',
'xdb'),
xdb.xdb$getpickledns(
'http://xmlns.oracle.com/xdb/XDBResource.xsd',
'xdbres')
),
null);
execute immediate 'insert into xdb.xdb$schema s
(sys_nc_oid$, xmlextra, xmldata) values (:1, :2, :3)
returning ref(s) into :4'
using '6C3FCF2D9D354DC1E03408002087A0B7', extras_i, schema_i
returning into schref;
simplelist := xdb.xdb$xmltype_ref_list_t();
simplelist.extend(7);
complexlist := xdb.xdb$xmltype_ref_list_t();
complexlist.extend(29);
select attributes into simple_colcount from all_types
where type_name in ('XDB$SIMPLE_T') and owner = 'XDB';
select sum(attributes) - 1 into elem_colcount from all_types
where type_name in ('XDB$ELEMENT_T', 'XDB$PROPERTY_T')
and owner = 'XDB';
select attributes into attr_colcount from all_types
where type_name in ('XDB$PROPERTY_T') and owner = 'XDB';
select attributes into complex_colcount from all_types
where type_name in ('XDB$COMPLEX_T') and owner = 'XDB';
select attributes into model_colcount from all_types
where type_name in ('XDB$MODEL_T') and owner = 'XDB';
select attributes into list_colcount from all_types
where type_name in ('XDB$LIST_T') and owner = 'XDB';
select attributes into union_colcount from all_types
where type_name in ('XDB$UNION_T') and owner = 'XDB';
select attributes into simpleder_colcount from all_types
where type_name in ('XDB$SIMPLE_DERIVATION_T') and owner = 'XDB';
select attributes into complexder_colcount from all_types
where type_name in ('XDB$COMPLEX_DERIVATION_T') and owner = 'XDB';
select attributes into content_colcount from all_types
where type_name in ('XDB$CONTENT_T') and owner = 'XDB';
select attributes into simplecontRes_colcount from all_types
where type_name in ('XDB$SIMPLECONT_RES_T') and owner = 'XDB';
select attributes into simplecontExt_colcount from all_types
where type_name in ('XDB$SIMPLECONT_EXT_T') and owner = 'XDB';
select attributes into smplcont_colcount from all_types
where type_name in ('XDB$SIMPLECONTENT_T') and owner = 'XDB';
select sum(attributes) - 1 into any_colcount from all_types
where type_name in ('XDB$ANY_T', 'XDB$PROPERTY_T') and owner = 'XDB';
select attributes into appinfo_colcount from all_types
where type_name in ('XDB$APPINFO_T') and owner = 'XDB';
select attributes into documentation_colcount from all_types
where type_name in ('XDB$DOCUMENTATION_T') and owner = 'XDB';
select attributes into annotation_colcount from all_types
where type_name in ('XDB$ANNOTATION_T') and owner = 'XDB';
select attributes into notation_colcount from all_types
where type_name in ('XDB$NOTATION_T') and owner = 'XDB';
select attributes into xpathspec_colcount from all_types
where type_name in ('XDB$XPATHSPEC_T') and owner = 'XDB';
select attributes into keybase_colcount from all_types
where type_name in ('XDB$KEYBASE_T') and owner = 'XDB';
select attributes into groupdef_colcount from all_types
where type_name in ('XDB$GROUP_DEF_T') and owner = 'XDB';
select attributes into groupref_colcount from all_types
where type_name in ('XDB$GROUP_REF_T') and owner = 'XDB';
select attributes into attrgroupdef_colcount from all_types
where type_name in ('XDB$ATTRGROUP_DEF_T') and owner = 'XDB';
select attributes into attrgroupref_colcount from all_types
where type_name in ('XDB$ATTRGROUP_REF_T') and owner = 'XDB';
/*--------------------------------------------------------------------------*/
/* Forward declarations (of some complex types) */
/*--------------------------------------------------------------------------*/
/* Forward decl for "simpleType" */
simple_t_ref := xdb$insertEmptyComplex();
/* Forward decl for "anyType" */
any_t_ref := xdb$insertEmptyComplex();
/*--------------------------------------------------------------------------*/
/* Simple type definition for "derivationChoice" */
/*--------------------------------------------------------------------------*/
drv_choice_ref := xdb$insertSimple(schref, null, 'derivationChoice',
TR_STRING, null, TD_LIST, '0',null, null, null, null, null,
null, null, null, null, null,
xdb.xdb$enum_values_t('','extension', 'restriction', 'list',
'#all', 'substitution', 'union'));
simplelist(1) := drv_choice_ref;
/*--------------------------------------------------------------------------*/
/* Simple type definition for "formChoice" */
/*--------------------------------------------------------------------------*/
form_choice_ref := xdb$insertSimple(schref, null, 'formChoice', TR_STRING,
null, TD_RESTRICTION, '0',null, null, null, null, null,
null, null, null, null, null,
xdb.xdb$enum_values_t('unqualified', 'qualified'));
simplelist(2) := form_choice_ref;
/*--------------------------------------------------------------------------*/
/* Simple type definition for "content" */
/*--------------------------------------------------------------------------*/
content_ref := xdb$insertSimple(schref, null, 'content', TR_STRING,
null, TD_RESTRICTION, '0', null, null, null, null, null, null,
null, null, null, null,
xdb.xdb$enum_values_t('elementOnly','textOnly','mixed','empty'));
simplelist(3) := content_ref;
/*--------------------------------------------------------------------------*/
/* Simple type definition for "javatype" */
/*--------------------------------------------------------------------------*/
javatype_ref := xdb$insertSimple(schref, null, 'javatype', TR_STRING,
null, TD_RESTRICTION, '0',null, null, null, null, null, null,
null, null, null, null,
xdb.xdb$enum_values_t('String','int','long','short','byte','float',
'double','BigDecimal','boolean','byteArray',
'Stream','CharStream','TimeStamp',
'Reference','QNAme','Enum','XMLType'));
simplelist(4) := javatype_ref;
/*--------------------------------------------------------------------------*/
/* Simple type definition for "useChoice" */
/*--------------------------------------------------------------------------*/
use_choice_ref := xdb$insertSimple(schref, null, 'useChoice',
TR_STRING,
null, TD_LIST, '0',null, null, null, null, null, null, null,
null, null, null,
xdb.xdb$enum_values_t('optional','required','prohibited'));
simplelist(5) := use_choice_ref;
/*--------------------------------------------------------------------------*/
/* Simple type definition for "processChoice" */
/*--------------------------------------------------------------------------*/
process_choice_ref := xdb$insertSimple(schref, null, 'processChoice',
TR_STRING,
null, TD_LIST, '0',null, null, null, null, null, null, null,
null, null, null,
xdb.xdb$enum_values_t('skip','lax','strict'));
simplelist(6) := process_choice_ref;
/*--------------------------------------------------------------------------*/
/* Simple type definition for "transientChoice" */
/*--------------------------------------------------------------------------*/
transient_choice_ref := xdb$insertSimple(schref, null,
'transientChoice', TR_STRING,
null, TD_LIST, '0',null, null, null, null, null, null, null,
null, null, null,
xdb.xdb$enum_values_t('','generated','manifested'));
simplelist(7) := transient_choice_ref;
/*--------------------------------------------------------------------------*/
/* Complex type definition for "annotation", and its related */
/* "appInfo", "documentation" */
/*--------------------------------------------------------------------------*/
/* appInfo complextype */
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(1);
attlist(1) := xdb$insertAttr(schref, PN_APPINFO_SOURCE,
'source', TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE,
'SOURCE', 'VARCHAR2', null,
JT_STRING, null, null, null,null,null);
anylist := xdb.xdb$xmltype_ref_list_t();
anylist.extend(1);
anylist(1) := xdb$insertAny(schref, PN_APPINFO_ANY, null,
null, null, 0, 1000, null,
T_XOB , FALSE, FALSE, FALSE,
'ANYPART', 'VARCHAR2', null,
JT_XMLTYPE, null, null, null, null, null);
appinfo_t_ref := xdb$insertComplex(schref, null, 'appinfo',
null, FALSE, null, '0',
null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, attlist,
anylist, TRUE);
complexlist(16) := appinfo_t_ref;
/* documentation complextype */
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(2);
attlist(1) := xdb$insertAttr(schref, PN_DOCUMENTATION_SOURCE,
'source', TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE,
'SOURCE', 'VARCHAR2', null,
JT_STRING, null, null, null,null,null);
attlist(2) := xdb$insertAttr(schref, PN_DOCUMENTATION_LANG,
'lang', TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE,
'LANG', 'VARCHAR2', null,
JT_STRING, null, null, null,null,null);
anylist := xdb.xdb$xmltype_ref_list_t();
anylist.extend(1);
anylist(1) := xdb$insertAny(schref, PN_DOCUMENTATION_ANY, null,
null, null, 0, 1000, null,
T_XOB, FALSE, FALSE, FALSE,
'ANYPART', 'VARCHAR2', null,
JT_XMLTYPE, null, null, null, null, null);
documentation_t_ref := xdb$insertComplex(schref, null,'documentation',
null, FALSE, null, '0',
null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, attlist,
anylist, TRUE);
complexlist(17) := documentation_t_ref;
/* annotation complextype */
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(2);
ellist(1) := xdb$insertElement(schref, PN_ANNOTATION_APPINFO,
'appinfo',
xdb.xdb$qname('01', 'appinfo'),
0, 1000, null,
T_XOB, FALSE, FALSE, FALSE,
'APPINFO',
'XDB$APPINFO_T', 'XDB',
JT_XMLTYPE,
null, null, appinfo_t_ref,null,null,
null, appinfo_colcount,
FALSE, null, null, FALSE, FALSE,
TRUE, FALSE, FALSE,
null, null,
'oracle.xdb.appinfoBean',
'oracle.xdb.appinfoBean',
FALSE, null, null, null,
'XDB$APPINFO_LIST_T', 'XDB');
ellist(2) := xdb$insertElement(schref, PN_ANNOTATION_DOCUMENTATION,
'documentation',
xdb.xdb$qname('01', 'documentation'),
0, 1000, null,
T_XOB, FALSE, FALSE, FALSE,
'DOCUMENTATION',
'XDB$DOCUMENTATION_T', 'XDB',
JT_XMLTYPE,
null, null, documentation_t_ref,
null,null,
null, documentation_colcount,
FALSE, null, null, FALSE, FALSE,
TRUE, FALSE, FALSE,
null, null,
'oracle.xdb.documentationBean',
'oracle.xdb.documentationBean',
FALSE, null, null, null,
'XDB$DOCUMENTATION_LIST_T','XDB');
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(1);
attlist(1) := xdb$insertAttr(schref, PN_ANNOTATION_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
annotation_t_ref := xdb$insertComplex(schref, null,'annotation',
null, FALSE, null, '0',
null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, ellist, attlist);
complexlist(18) := annotation_t_ref;
/*--------------------------------------------------------------------------*/
/* Complex type definition for "notation" */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(3);
attlist(1) := xdb$insertAttr(schref, PN_NOTATION_NAME, 'name',
TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'NAME',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(2) := xdb$insertAttr(schref, PN_NOTATION_PUBLIC, 'public',
TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'PUBLICVAL',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(3) := xdb$insertAttr(schref, PN_NOTATION_SYSTEM, 'system',
TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'SYSTEM',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref, PN_NOTATION_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
notation_t_ref := xdb$insertComplex(schref, null,'notation',
null, FALSE, null, '0',
null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, ellist, attlist);
complexlist(24) := notation_t_ref;
/*--------------------------------------------------------------------------*/
/* Complex type definition for "xpathspec", "keybase" */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(1);
attlist(1) := xdb$insertAttr(schref, PN_XPATHSPEC_XPATH, 'xpath',
TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'XPATH',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref, PN_XPATHSPEC_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
xpathspec_t_ref := xdb$insertComplex(schref, null,'xpathspec',
null, FALSE, null, '0',
null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, ellist, attlist);
complexlist(25) := xpathspec_t_ref;
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(2);
attlist(1) := xdb$insertAttr(schref, PN_KEYBASE_NAME, 'name',
TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'NAME',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(2) := xdb$insertAttr(schref, PN_KEYBASE_REFER, 'refer',
xdb.xdb$qname('00', 'QName'), 0, 1, null,
T_QNAME, FALSE, FALSE, FALSE, 'REFER',
'XDB$QNAME', 'XDB', JT_QNAME, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(3);
ellist(1) := xdb$insertElement(schref, PN_KEYBASE_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, PN_KEYBASE_SELECTOR,
'selector',
xdb.xdb$qname('01', 'xpathspec'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'SELECTOR',
'XDB$XPATHSPEC_T', 'XDB',
JT_XMLTYPE,
null, null, xpathspec_t_ref,null,null,
null, xpathspec_colcount,
FALSE, null, null, FALSE, FALSE,
TRUE, FALSE, FALSE,
null, null, null, null,
FALSE, null, null, null);
ellist(3) := xdb$insertElement(schref, PN_KEYBASE_FIELD,
'field',
xdb.xdb$qname('01', 'xpathspec'),
0, 1000, null,
T_XOB, FALSE, FALSE, FALSE,
'FIELDS',
'XDB$XPATHSPEC_T', 'XDB',
JT_XMLTYPE,
null, null, xpathspec_t_ref,null,null,
null, xpathspec_colcount,
FALSE, null, null, FALSE, FALSE,
TRUE, FALSE, FALSE,
null, null, null, null,
FALSE, null, null, null,
'XDB$XPATHSPEC_LIST_T','XDB');
keybase_t_ref := xdb$insertComplex(schref, null,'keybase',
null, FALSE, null, '0',
null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, ellist, attlist);
complexlist(26) := keybase_t_ref;
/*--------------------------------------------------------------------------*/
/* Complex type definition for "facet" (strings only) */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(3);
attlist(1) := xdb$insertAttr(schref, 0, 'value', TR_STRING,
1, 1, null, T_CSTRING, FALSE, FALSE, FALSE,
'VALUE', 'VARCHAR2', null, JT_STRING, null,
null,null,null,null);
attlist(2) := xdb$insertAttr(schref, PN_FACET_FIXED, 'fixed', TR_BOOLEAN,
0, 1, null, T_BOOLEAN, FALSE, FALSE, FALSE,
'FIXED', 'RAW', null, JT_BOOLEAN, 'false',
null,null,null,null);
attlist(3) := xdb$insertAttr(schref, PN_FACET_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref, PN_FACET_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
facet_ref := xdb$insertComplex(schref, null, 'facet',
null, FALSE, null, '0', null, null,
null, null, null, null, null, null, null, null, null,
null, null, null, null, ellist, attlist);
complexlist(1) := facet_ref;
/*--------------------------------------------------------------------------*/
/* Complex type definition for "numFacet" */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(3);
attlist(1) := xdb$insertAttr(schref, 1, 'value', TR_NNEGINT,
1, 1, '02', T_INTEGER, FALSE, FALSE, FALSE,
'VALUE', 'NUMBER', null, JT_INT, null, null,
null,null,null);
attlist(2) := xdb$insertAttr(schref, PN_NUMFACET_FIXED, 'fixed', TR_BOOLEAN,
0, 1, null, T_BOOLEAN, FALSE, FALSE, FALSE,
'FIXED', 'RAW', null, JT_BOOLEAN, 'false',
null,null,null,null);
attlist(3) := xdb$insertAttr(schref, PN_NUMFACET_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref, PN_NUMFACET_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
num_facet_ref := xdb$insertComplex(schref, null, 'numFacet',
null, FALSE, null, '0', null, null,
null, null, null, null, null, null, null, null, null,
null, null, null, null, ellist, attlist);
complexlist(2) := num_facet_ref;
/*--------------------------------------------------------------------------*/
/* Complex type definition for "timeFacet" */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(3);
attlist(1) := xdb$insertAttr(schref, 2, 'value',
xdb.xdb$qname('00', 'dateTime'),
1, 1, null, T_DATE, FALSE, FALSE, FALSE,
'VALUE', 'DATE', null, JT_TIMESTAMP, null,
null,null,null,null);
attlist(2) := xdb$insertAttr(schref, PN_TIMEFACET_FIXED, 'fixed', TR_BOOLEAN,
0, 1, null, T_BOOLEAN, FALSE, FALSE, FALSE,
'FIXED', 'RAW', null, JT_BOOLEAN, 'false',
null,null,null,null);
attlist(3) := xdb$insertAttr(schref, PN_TIMEFACET_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref, PN_TIMEFACET_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
time_facet_ref := xdb$insertComplex(schref, null, 'timeFacet',
null, FALSE, null, '0',
null, null, null, null, null, null, null, null, null,
null, null,
null, null, null, null, ellist, attlist);
complexlist(3) := time_facet_ref;
/*--------------------------------------------------------------------------*/
/* Anonymous type for "whitespace"--derived from facet */
/*--------------------------------------------------------------------------*/
/* Anonymous type for "value" attribute for enumeration */
styperef := xdb$insertSimple(schref, null,null,xdb.xdb$qname('00', 'NMTOKEN'),
null, TD_RESTRICTION, '0', null, null, null, null, null, null,
null, null, null, null, xdb.xdb$enum_values_t('preserve','replace','collapse'));
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(3);
attlist(1) := xdb$insertAttr(schref, 3, 'value', null, 1, 1, null,
T_ENUM, FALSE, FALSE, FALSE, 'VALUE',
'XDB$WHITESPACECHOICE', 'XDB', JT_ENUM,
null, styperef, styperef,null,null);
attlist(2) := xdb$insertAttr(schref, PN_WHITESPACE_FIXED, 'fixed', TR_BOOLEAN,
0, 1, null, T_BOOLEAN, FALSE, FALSE, FALSE,
'FIXED', 'RAW', null, JT_BOOLEAN, 'false',
null,null,null,null);
attlist(3) := xdb$insertAttr(schref, PN_WHITESPACE_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref, PN_WHITESPACE_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
whitespace_ref := xdb$insertComplex(schref, null, 'whiteSpace',
null, FALSE, null, '0',
null, null, null, null, null, null, null, null, null,
null, null,
null, null, null, null, ellist, attlist);
complexlist(4) := whitespace_ref;
/* VARRAY tracking top-level schema elements */
schels := xdb.xdb$xmltype_ref_list_t();
schels.extend(14);
/*--------------------------------------------------------------------------*/
/* Definition of "annotation" global element */
/*--------------------------------------------------------------------------*/
schels(1) := xdb$insertElement(schref, PN_SCHEMA_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATIONS', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null,
'XDB$ANNOTATION_LIST_T','XDB');
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:listType" complex type */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(2);
attlist(1) := xdb$insertAttr(schref, PN_LIST_ITEMTYPE, 'itemType',
xdb.xdb$qname('00', 'QName'), 0, 1, null,
T_QNAME, FALSE, FALSE, FALSE, 'ITEM_TYPE',
'XDB$QNAME', 'XDB', JT_QNAME, null, null,
null,null,null);
attlist(2) := xdb$insertAttr(schref, PN_LIST_TYPEREF, 'typeRef',
xdb.xdb$qname('00', 'REF'), 0, 1,null,
T_REF, TRUE, FALSE, FALSE, 'TYPE_REF',
'REF', null, JT_REFERENCE, null, null, null,
null,null,null,null,'01');
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(2);
ellist(1) := xdb$insertElement(schref, PN_LIST_SIMPLETYPE,
'simpleType', xdb.xdb$qname('01','simpleType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'SIMPLE_TYPE',
'XDB$SIMPLE_T', 'XDB', JT_XMLTYPE, null, null,
simple_t_ref,null,null,
null, simple_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$SIMPLE_TYPE', null, 'oracle.xdb.SimpleType',
'oracle.xdb.SimpleTypeBean', FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, PN_LIST_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
list_t_ref := xdb$insertComplex(schref, null,
'listType',
null, FALSE, null, '0',
null, null, null, null, null, null, null, null, null,
null, null,
null, null, null, null, ellist, attlist);
complexlist(13) := list_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:unionType" complex type */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(1);
attlist(1) := xdb$insertAttr(schref, PN_UNION_MEMBERTYPES,
'memberTypes', xdb.xdb$qname('00', 'QNames'),
0, 1, null, T_CSTRING, FALSE, FALSE, FALSE,
'MEMBER_TYPES', 'VARCHAR2', null,
JT_QNAME, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(3);
ellist(1) := xdb$insertElement(schref, PN_UNION_SIMPLETYPE,
'simpleType', xdb.xdb$qname('01','simpleType'),
0, 1000, null,
T_XOB, FALSE, FALSE, FALSE, 'SIMPLE_TYPES',
'XDB$SIMPLE_T', 'XDB', JT_XMLTYPE, null, null,
simple_t_ref,null,null,
null, simple_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$SIMPLE_TYPE', null, 'oracle.xdb.SimpleType',
'oracle.xdb.SimpleTypeBean', FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(2) := xdb$insertElement(schref, PN_UNION_TYPEREF,
'typeRef', xdb.xdb$qname('00', 'REF'), 0, 1000,null,
T_REF, TRUE, FALSE, FALSE, 'TYPE_REFS',
'REF', null, JT_REFERENCE, null, null, null,null,null,
null, 0, FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB', '01');
ellist(3) := xdb$insertElement(schref, PN_UNION_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
union_t_ref := xdb$insertComplex(schref, null, 'unionType',
null, FALSE, null, '0',
null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, ellist, attlist);
complexlist(14) := union_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:simpleDerivationType" XML element */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(3);
attlist(1) := xdb$insertAttr(schref, PN_SIMPLE_BASETYPE, 'baseType',
xdb.xdb$qname('00', 'REF'), 0, 1,null,
T_REF, TRUE, FALSE, FALSE, 'BASE_TYPE',
'REF', null, JT_REFERENCE, null, null, null,
null,null,null,null,'01');
attlist(2) := xdb$insertAttr(schref, PN_SIMPLE_BASE, 'base',
xdb.xdb$qname('00', 'QName'), 0, 1, null,
T_QNAME, FALSE, FALSE, FALSE, 'BASE',
'XDB$QNAME', 'XDB', JT_QNAME, null, null,
null,null,null);
attlist(3) := xdb$insertAttr(schref, PN_SIMPLEDER_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(16);
ellist(1) := xdb$insertElement(schref, PN_SIMPLEDER_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, PN_SIMPLE_PRECISION,
'fractionDigits',
xdb.xdb$qname('01', 'numFacet'), 0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'FRACTIONDIGITS',
'XDB$NUMFACET_T', 'XDB', JT_SHORT, null, null,
num_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(3) := xdb$insertElement(schref, PN_SIMPLE_SCALE, 'totalDigits',
xdb.xdb$qname('01', 'numFacet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'TOTALDIGITS', 'XDB$NUMFACET_T', 'XDB', JT_SHORT, null,null,
num_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(4) := xdb$insertElement(schref,PN_SIMPLE_MINLENGTH,
'minLength',
xdb.xdb$qname('01', 'numFacet'), 0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'MINLENGTH',
'XDB$NUMFACET_T', 'XDB', JT_INT, null, null,
num_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null) ;
ellist(5) := xdb$insertElement(schref, PN_SIMPLE_MAXLENGTH,
'maxLength', xdb.xdb$qname('01', 'numFacet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'MAXLENGTH', 'XDB$NUMFACET_T', 'XDB', JT_INT, null,
null, num_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(6) := xdb$insertElement(schref, PN_SIMPLE_WHITESPACE, 'whiteSpace',
xdb.xdb$qname('01', 'whiteSpace'), 0, 1, '1',
T_XOB, FALSE, FALSE, FALSE, 'WHITESPACE',
'XDB$WHITESPACE_T', 'XDB', JT_ENUM, null, null,
whitespace_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(7) := xdb$insertElement(schref, PN_SIMPLE_PERIOD, 'period',
xdb.xdb$qname('01', 'timeFacet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE, 'PERIOD',
'XDB$TIMEFACET_T', 'XDB', JT_TIMESTAMP, null, null,
time_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(8) := xdb$insertElement(schref, PN_SIMPLE_DURATION,'duration',
xdb.xdb$qname('01', 'timeFacet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE, 'DURATION',
'XDB$TIMEFACET_T','XDB',JT_TIMESTAMP, null, null,
time_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(9) := xdb$insertElement(schref, PN_SIMPLE_MININCLUSIVE,
'minInclusive',
xdb.xdb$qname('01', 'facet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE, 'MIN_INCLUSIVE',
'XDB$FACET_T', 'XDB', JT_INT, null, null, facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(10) := xdb$insertElement(schref, PN_SIMPLE_MAXINCLUSIVE,
'maxInclusive',
xdb.xdb$qname('01', 'facet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'MAX_INCLUSIVE', 'XDB$FACET_T', 'XDB', JT_INT, null, null,
facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(11) := xdb$insertElement(schref, PN_SIMPLE_PATTERN, 'pattern',
xdb.xdb$qname('01', 'facet'),
0, 65535, null, T_XOB, FALSE, FALSE, FALSE, 'PATTERN',
'XDB$FACET_T', 'XDB', JT_STRING, null, null, facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, FALSE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null,
'XDB$FACET_LIST_T','XDB');
ellist(12) := xdb$insertElement(schref, PN_SIMPLE_ENUMERATION,
'enumeration', xdb.xdb$qname('01', 'facet'),
0, 65535, null, T_XOB, FALSE, FALSE, FALSE,
'ENUMERATION', 'XDB$FACET_T', 'XDB',
JT_STRING, null, null, facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, FALSE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null,
'XDB$FACET_LIST_T','XDB');
ellist(13) := xdb$insertElement(schref, PN_SIMPLE_MINEXCLUSIVE,
'minExclusive', xdb.xdb$qname('01', 'facet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE, 'MIN_EXCLUSIVE',
'XDB$FACET_T', 'XDB', JT_INT, null, null, facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(14) := xdb$insertElement(schref, PN_SIMPLE_MAXEXCLUSIVE,
'maxExclusive', xdb.xdb$qname('01', 'facet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'MAX_EXCLUSIVE', 'XDB$FACET_T', 'XDB', JT_INT, null, null,
facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(15) := xdb$insertElement(schref, PN_SIMPLE_LENGTH,
'length', xdb.xdb$qname('01', 'numFacet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'LENGTH', 'XDB$NUMFACET_T', 'XDB', JT_INT, null,
null, num_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(16) := xdb$insertElement(schref, PN_SIMPLEDER_SIMPLETYPE,
'simpleType', xdb.xdb$qname('01','simpleType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'LCL_SMPL_DECL',
'XDB$SIMPLE_T', 'XDB', JT_XMLTYPE, null, null,
simple_t_ref,null,null,
null, simple_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$SIMPLE_TYPE', null, 'oracle.xdb.SimpleType',
'oracle.xdb.SimpleTypeBean', FALSE, null, null, null);
simplederv_t_ref := xdb$insertComplex(schref, null,
'simpleDerivationType',
null, FALSE, null, '0',
null, null, null, null, null, null, null, null, null,
null, null,
null, null, null, null, ellist, attlist);
complexlist(12) := simplederv_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:simpleType" XML element */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(7);
attlist(1) := xdb$insertAttr(schref, PN_SIMPLE_PARENTSCHEMA,
'parent_schema',
xdb.xdb$qname('00', 'REF'), 0, 1,null,
T_REF, TRUE, FALSE, FALSE, 'PARENT_SCHEMA',
'REF', null, JT_REFERENCE, null, null,
null,null,null,null,null,'01');
attlist(2) := xdb$insertAttr(schref, PN_SIMPLE_NAME, 'name',
TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'NAME',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(3) := xdb$insertAttr(schref, PN_SIMPLE_ABSTRACT, 'abstract',
TR_BOOLEAN, 0, 1,null,
T_BOOLEAN, FALSE, FALSE, FALSE, 'ABSTRACT',
'RAW', null, JT_BOOLEAN, 'false', null,
null,null,null);
attlist(4) := xdb$insertAttr(schref, PN_SIMPLE_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(5) := xdb$insertAttr(schref, PN_SIMPLE_FINAL, 'final',
xdb.xdb$qname('01', 'derivationChoice'), 0, 1,
null, T_ENUM, FALSE, FALSE, FALSE, 'FINAL_INFO',
'XDB$DERIVATIONCHOICE', 'XDB', JT_ENUM,
null, null, drv_choice_ref,null,null);
attlist(6) := xdb$insertAttr(schref, PN_SIMPLE_TYPEID, 'typeID',
TR_INT, 0, 1, null,
T_UNSIGNINT, TRUE, FALSE, FALSE, 'TYPEID',
'NUMBER', null, JT_INT, null, null, null,null,
null);
attlist(7) := xdb$insertAttr(schref, PN_SIMPLE_SQLTYPE,
'SQLType', TR_STRING, 1, 1,null,
T_CSTRING, TRUE, FALSE, FALSE, 'SQLTYPE',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(4);
ellist(1) := xdb$insertElement(schref, PN_SIMPLE_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, PN_SIMPLE_RESTRICTION,
'restriction',
xdb.xdb$qname('01', 'simpleDerivationType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'RESTRICTION',
'XDB$SIMPLE_DERIVATION_T', 'XDB',
JT_XMLTYPE,
null, null, simplederv_t_ref,null,null,
null, simpleder_colcount,
FALSE, null, null, FALSE, TRUE,
TRUE, FALSE, FALSE,
null, null,
'oracle.xdb.simpleDerivation',
'oracle.xdb.simpleDerivationBean',
FALSE, null, null, null);
ellist(3) := xdb$insertElement(schref, PN_SIMPLE_LIST,
'list',
xdb.xdb$qname('01', 'listType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'LIST_TYPE',
'XDB$LIST_T', 'XDB',
JT_XMLTYPE,
null, null, list_t_ref,null,null,
null, list_colcount,
FALSE, null, null, FALSE, TRUE,
TRUE, FALSE, FALSE,
null, null,
'oracle.xdb.listBean',
'oracle.xdb.listBean',
FALSE, null, null, null);
ellist(4) := xdb$insertElement(schref, PN_SIMPLE_UNION,
'union',
xdb.xdb$qname('01', 'unionType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'UNION_TYPE',
'XDB$UNION_T', 'XDB',
JT_XMLTYPE,
null, null, union_t_ref,null,null,
null, union_colcount,
FALSE, null, null, FALSE, TRUE,
TRUE, FALSE, FALSE,
null, null,
'oracle.xdb.unionBean',
'oracle.xdb.unionBean',
FALSE, null, null, null);
xdb$updateComplex(simple_t_ref, schref, null, 'simpleType',
null, FALSE, null, null,
null, null, null,
ellist, attlist);
complexlist(5) := simple_t_ref;
stype_propnum := 22;
schels(2) := xdb$insertElement(schref, stype_propnum,
'simpleType',
xdb.xdb$qname('01', 'simpleType'), 0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'SIMPLE_TYPE',
'XDB$SIMPLE_T', 'XDB', JT_XMLTYPE, null, null,
simple_t_ref,null,null,
xdb.xdb$qname('01', 'schemaTop'), simple_colcount, FALSE, null, null,
FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$SIMPLE_TYPE', null, 'oracle.xdb.SimpleType',
'oracle.xdb.SimpleTypeBean', TRUE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
/*--------------------------------------------------------------------------*/
/* Forward definitions of "xdb:groupRefType" and "xdb:attrGroupRefType" */
/*--------------------------------------------------------------------------*/
groupref_t_ref := xdb$insertEmptyComplex();
attrgroupref_t_ref := xdb$insertEmptyComplex();
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:modelType" XML element */
/*
* modelType := -- annotation (0..1)
* |
* sequence ----
* (1..1) |
* -- choice (0..unb)
* -- all (0..1)
* -- choice (0..1)
* -- sequence (0..1)
* -- any (0..1)
* -- group (0..1)
*/
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(4);
/* Forward definition of modelType */
model_t_ref := xdb$insertEmptyComplex();
attlist(1) := xdb$insertAttr(schref, PN_MODEL_PARENTSCHEMA,
'parentSchema',
xdb.xdb$qname('00','REF'), 0, 1,
null, T_REF, TRUE, FALSE, FALSE,
'PARENT_SCHEMA', 'REF', null,
JT_REFERENCE,
null, null, null,null,null,
null,null,'01');
attlist(2) := xdb$insertAttr(schref, PN_MODEL_MINOCCURS,
'minOccurs', TR_INT, 0, 1, null,
T_INTEGER, FALSE, FALSE, FALSE,
'MIN_OCCURS', 'NUMBER', null,
JT_INT, '0', null, null,null,null);
attlist(3) := xdb$insertAttr(schref, PN_MODEL_MAXOCCURS,
'maxOccurs', TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE,
'MAX_OCCURS', 'VARCHAR2', null,
JT_STRING, null, null, null,null,null);
attlist(4) := xdb$insertAttr(schref, PN_MODEL_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(5);
ellist(1) := xdb$insertElement(schref, PN_MODEL_ELEMENT,
'element', xdb.xdb$qname('01', 'element'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'ELEMENTS',
'XDB$ELEMENT_T', 'XDB', JT_XMLTYPE,
null, null, null,null,null,
null, elem_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$ELEMENT', null, 'oracle.xdb.Element',
'oracle.xdb.ElementBean', FALSE, 'PROPERTY', null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(2) := xdb$insertElement(schref, PN_MODEL_CHOICE,
'choice', xdb.xdb$qname('01', 'modelType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'CHOICE_KIDS',
'XDB$MODEL_T', 'XDB', JT_XMLTYPE,
null, null, model_t_ref,null,null,
null, model_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$CHOICE_MODEL', null, 'oracle.xdb.Model',
'oracle.xdb.ModelBean', FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(3) := xdb$insertElement(schref, PN_MODEL_SEQUENCE,
'sequence', xdb.xdb$qname('01', 'modelType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'SEQUENCE_KIDS',
'XDB$MODEL_T', 'XDB', JT_XMLTYPE,
null, null, model_t_ref,null,null,
null, model_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$SEQUENCE_MODEL', null, 'oracle.xdb.Model',
'oracle.xdb.ModelBean', FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(4) := xdb$insertElement(schref, PN_MODEL_ANY,
'any', xdb.xdb$qname('01', 'anyType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'ANYS',
'XDB$ANY_T', 'XDB', JT_XMLTYPE,
null, null, any_t_ref,null,null,
null, any_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$ANY', null, 'oracle.xdb.Any',
'oracle.xdb.AnyBean', FALSE, 'PROPERTY', null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(5) := xdb$insertElement(schref, PN_MODEL_GROUP,
'group', xdb.xdb$qname('01', 'groupRefType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'GROUPS',
'XDB$GROUP_REF_T', 'XDB', JT_XMLTYPE,
null, null, groupref_t_ref,null,null,
null, groupref_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$GROUP_REF', null, 'oracle.xdb.Group',
'oracle.xdb.GroupBean', FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
/* choice 0..unbounded of above elements */
choice_list := xdb.xdb$xmltype_ref_list_t();
choice_list.extend(1);
choice_list(1) := xdb$insertChoice(schref, ellist);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref, PN_MODEL_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
/* sequence of annotation and choice */
seq_ref := xdb$insertSequence(schref, ellist, null, choice_list);
xdb$updateComplex(model_t_ref, schref, null,
'modelType', null, FALSE,
null, null, null, null, null, null, attlist, seq_ref);
complexlist(9) := model_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:simpleContentResType"
* This captures the simpleContent -> restriction case.
* Strictly speaking, the W3C schema allows the facets like minInclusive
* etc to appear in any order. They really should be part of the choice (unb)
* but that would map them to arrays. Since we know there can be only one
* minInclusive it seems to be an overkill to map them to arrays. Hence
* we make them as a sequence
*
* simpleContRes :=
* -- annotation (0..1)
* |
* -- simpleType (0..1)
* |
* |-- minExclusive (0..1)
* |-- minInclusive (0..1)
* | ....
* sequence ---------|-- pattern (0..1)
* |
* |
* | attribute (0..1)
* -- choice -- attributeGrp (0..1)
* (0..unb) anyAttribute (0..1)
*
*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(2);
attlist(1) := xdb$insertAttr(schref, PN_SIMPLECONTRES_BASE,
'base', xdb.xdb$qname('00', 'QName'), 0,1,
null, T_QNAME, FALSE, FALSE, FALSE,
'BASE', 'XDB$QNAME', 'XDB',
JT_QNAME, null, null, null,null,null);
attlist(2) := xdb$insertAttr(schref, PN_SIMPLECONTRES_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
/* Construct choice of <attribute>, <attributeGroup>, <anyAttrib> */
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(3);
ellist(1) := xdb$insertElement(schref, PN_SIMPLECONTRES_ATTRIBUTE,
'attribute',
xdb.xdb$qname('01', 'attribute'),
0, 1, null, T_XOB, FALSE, FALSE,
FALSE, 'ATTRIBUTES',
'XDB$PROPERTY_T','XDB',
JT_XMLTYPE, null, null, null,null,null,
null, attr_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ATTRIBUTE', null,
'oracle.xdb.Attribute',
'oracle.xdb.AttributeBean',
FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(2) := xdb$insertElement(schref, PN_SIMPLECONTRES_ANYATTR,
'anyAttribute',
xdb.xdb$qname('01', 'anyType'),
0, 1, null, T_XOB, FALSE, FALSE,
FALSE, 'ANY_ATTRS',
'XDB$ANY_T','XDB',
JT_XMLTYPE, null, null, any_t_ref,null,null,
null, any_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ANYATTR', null,
'oracle.xdb.anyAttribute',
'oracle.xdb.anyAttributeBean',
FALSE, 'PROPERTY', null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(3) := xdb$insertElement(schref, PN_SIMPLECONTRES_ATTRGROUP,
'attributeGroup',
xdb.xdb$qname('01', 'attrGroupRefType'),
0, 1, null, T_XOB, FALSE, FALSE,
FALSE, 'ATTR_GROUPS',
'XDB$ATTRGROUP_REF_T','XDB',
JT_XMLTYPE, null, null,
attrgroupref_t_ref,null,null,
null, attrgroupref_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ATTRGROUP_REF', null,
'oracle.xdb.attributeGroup',
'oracle.xdb.attributeGroupBean',
FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
/* insert choice of above */
choice_list := xdb.xdb$xmltype_ref_list_t();
choice_list.extend(1);
choice_list(1) := xdb$insertChoice(schref, ellist);
/* Construct sequence of <annotation>...<minExclusive> etc */
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(16);
ellist(1) := xdb$insertElement(schref, PN_SIMPLECONTRES_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, PN_SIMPLECONTRES_FRACDIGITS,
'fractionDigits',
xdb.xdb$qname('01', 'numFacet'), 0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'FRACTIONDIGITS',
'XDB$NUMFACET_T', 'XDB', JT_SHORT, null, null,
num_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(3) := xdb$insertElement(schref, PN_SIMPLECONTRES_TOTALDIGITS, 'totalDigits',
xdb.xdb$qname('01', 'numFacet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'TOTALDIGITS', 'XDB$NUMFACET_T', 'XDB', JT_SHORT, null,null,
num_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(4) := xdb$insertElement(schref,PN_SIMPLECONTRES_MINLENGTH,
'minLength',
xdb.xdb$qname('01', 'numFacet'), 0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'MINLENGTH',
'XDB$NUMFACET_T', 'XDB', JT_INT, null, null,
num_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null) ;
ellist(5) := xdb$insertElement(schref, PN_SIMPLECONTRES_MAXLENGTH,
'maxLength', xdb.xdb$qname('01', 'numFacet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'MAXLENGTH', 'XDB$NUMFACET_T', 'XDB', JT_INT, null,
null, num_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(6) := xdb$insertElement(schref, PN_SIMPLECONTRES_WHITESPACE, 'whiteSpace',
xdb.xdb$qname('01', 'whiteSpace'), 0, 1, '1',
T_XOB, FALSE, FALSE, FALSE, 'WHITESPACE',
'XDB$WHITESPACE_T', 'XDB', JT_ENUM, null, null,
whitespace_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(7) := xdb$insertElement(schref, PN_SIMPLECONTRES_PERIOD, 'period',
xdb.xdb$qname('01', 'timeFacet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE, 'PERIOD',
'XDB$TIMEFACET_T', 'XDB', JT_TIMESTAMP, null, null,
time_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(8) := xdb$insertElement(schref, PN_SIMPLECONTRES_DURATION,'duration',
xdb.xdb$qname('01', 'timeFacet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE, 'DURATION',
'XDB$TIMEFACET_T','XDB',JT_TIMESTAMP, null, null,
time_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(9) := xdb$insertElement(schref, PN_SIMPLECONTRES_MININCLUSIVE,
'minInclusive',
xdb.xdb$qname('01', 'facet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE, 'MIN_INCLUSIVE',
'XDB$FACET_T', 'XDB', JT_INT, null, null, facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(10) := xdb$insertElement(schref, PN_SIMPLECONTRES_MAXINCLUSIVE,
'maxInclusive',
xdb.xdb$qname('01', 'facet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'MAX_INCLUSIVE', 'XDB$FACET_T', 'XDB', JT_INT, null, null,
facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(11) := xdb$insertElement(schref, PN_SIMPLECONTRES_PATTERN, 'pattern',
xdb.xdb$qname('01', 'facet'),
0, 65535, null, T_XOB, FALSE, FALSE, FALSE, 'PATTERN',
'XDB$FACET_T', 'XDB', JT_STRING, null, null, facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, FALSE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null,
'XDB$FACET_LIST_T','XDB');
ellist(12) := xdb$insertElement(schref, PN_SIMPLECONTRES_ENUMERATION,
'enumeration', xdb.xdb$qname('01', 'facet'),
0, 65535, null, T_XOB, FALSE, FALSE, FALSE,
'ENUMERATION', 'XDB$FACET_T', 'XDB',
JT_STRING, null, null, facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, FALSE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null,
'XDB$FACET_LIST_T','XDB');
ellist(13) := xdb$insertElement(schref, PN_SIMPLECONTRES_MINEXCLUSIVE,
'minExclusive', xdb.xdb$qname('01', 'facet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE, 'MIN_EXCLUSIVE',
'XDB$FACET_T', 'XDB', JT_INT, null, null, facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(14) := xdb$insertElement(schref, PN_SIMPLECONTRES_MAXEXCLUSIVE,
'maxExclusive', xdb.xdb$qname('01', 'facet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'MAX_EXCLUSIVE', 'XDB$FACET_T', 'XDB', JT_INT, null, null,
facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(15) := xdb$insertElement(schref, PN_SIMPLECONTRES_LENGTH,
'length', xdb.xdb$qname('01', 'numFacet'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'LENGTH', 'XDB$NUMFACET_T', 'XDB', JT_INT, null,
null, num_facet_ref,null,null,
null, 2, FALSE, null, null, FALSE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(16) := xdb$insertElement(schref, PN_SIMPLECONTRES_SIMPLETYPE,
'simpleType', xdb.xdb$qname('01','simpleType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'LCL_SMPL_DECL',
'XDB$SIMPLE_T', 'XDB', JT_XMLTYPE, null, null,
simple_t_ref,null,null,
null, simple_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$SIMPLE_TYPE', null, 'oracle.xdb.SimpleType',
'oracle.xdb.SimpleTypeBean', FALSE, null, null, null);
/* insert sequence of above */
seq_ref := xdb$insertSequence(schref, ellist, null, choice_list);
simplecontRes_t_ref := xdb$insertComplex(schref, null,
'simpleContentResType',
null, FALSE, null, '0',
null, null, null, null, null,
null, null, null, null,
null, null,
null, null,
null, null, null, attlist,
null, FALSE, seq_ref);
complexlist(27) := simplecontRes_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:simpleContentExtType"
* This captures the simpleContent -> extension case.
* It allows a superset of W3C schemas.
*
* simpleContExt := -- annotation (0..1)
* |
* sequence ----
* (1..1) |
* -- choice (0..unb)
* -- attribute (0..1)
* -- attributeGroup (0..1)
* -- anyAttribute (0..1)
*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(2);
attlist(1) := xdb$insertAttr(schref, PN_SIMPLECONTEXT_BASE,
'base', xdb.xdb$qname('00', 'QName'), 0,1,
null, T_QNAME, FALSE, FALSE, FALSE,
'BASE', 'XDB$QNAME', 'XDB',
JT_QNAME, null, null, null,null,null);
attlist(2) := xdb$insertAttr(schref, PN_SIMPLECONTEXT_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
/* Construct choice of <attribute>, <attributeGroup>, <anyAttrib> */
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(3);
ellist(1) := xdb$insertElement(schref, PN_SIMPLECONTEXT_ATTRIBUTE,
'attribute',
xdb.xdb$qname('01', 'attribute'),
0, 1, null, T_XOB, FALSE, FALSE,
FALSE, 'ATTRIBUTES',
'XDB$PROPERTY_T','XDB',
JT_XMLTYPE, null, null, null,null,null,
null, attr_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ATTRIBUTE', null,
'oracle.xdb.Attribute',
'oracle.xdb.AttributeBean',
FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(2) := xdb$insertElement(schref, PN_SIMPLECONTEXT_ANYATTR,
'anyAttribute',
xdb.xdb$qname('01', 'anyType'),
0, 1, null, T_XOB, FALSE, FALSE,
FALSE, 'ANY_ATTRS',
'XDB$ANY_T','XDB',
JT_XMLTYPE, null, null, any_t_ref,null,null,
null, any_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ANYATTR', null,
'oracle.xdb.anyAttribute',
'oracle.xdb.anyAttributeBean',
FALSE, 'PROPERTY', null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(3) := xdb$insertElement(schref, PN_SIMPLECONTEXT_ATTRGROUP,
'attributeGroup',
xdb.xdb$qname('01', 'attrGroupRefType'),
0, 1, null, T_XOB, FALSE, FALSE,
FALSE, 'ATTR_GROUPS',
'XDB$ATTRGROUP_REF_T','XDB',
JT_XMLTYPE, null, null,
attrgroupref_t_ref,null,null,
null, attrgroupref_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ATTRGROUP_REF', null,
'oracle.xdb.attributeGroup',
'oracle.xdb.attributeGroupBean',
FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
/* insert choice of above */
choice_list := xdb.xdb$xmltype_ref_list_t();
choice_list.extend(1);
choice_list(1) := xdb$insertChoice(schref, ellist);
/* build annotation element */
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref,PN_SIMPLECONTEXT_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
/* insert sequence of above */
seq_ref := xdb$insertSequence(schref, ellist, null, choice_list);
simplecontExt_t_ref := xdb$insertComplex(schref, null,
'simpleContentExtType',
null, FALSE, null, '0',
null, null, null, null, null,
null, null, null, null,
null, null,
null, null,
null, null, null, attlist,
null, FALSE, seq_ref);
complexlist(28) := simplecontExt_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:complexDerivationType" XML element
* Again, this does not strictly reflect the W3C schema for schemas but
* only serves to define our O-R mapping and allow a superset.
*
* complexDerivation :=
* -- annotation (0..1)
* |
* | choice (0..1)
* -- choice -- sequence (0..1)
* | group (0..1)
* sequence ---------| all (0..1)
* |
* |
* | attribute (0..1)
* -- choice -- attributeGrp (0..1)
* (0..unb) anyAttribute (0..1)
*
*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(2);
attlist(1) := xdb$insertAttr(schref, PN_COMPLEXDERIVATION_BASE,
'base', xdb.xdb$qname('00', 'QName'), 0, 1,
null, T_QNAME, FALSE, FALSE, FALSE,
'BASE', 'XDB$QNAME', 'XDB',
JT_QNAME, null, null, null,null,null);
attlist(2) := xdb$insertAttr(schref, PN_COMPLEXDERIVATION_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
/* Construct choice of <group>, <choice>, <all>, <sequence> */
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(4);
ellist(1) := xdb$insertElement(schref, PN_COMPLEXDERIVATION_ALL,
'all', xdb.xdb$qname('01', 'modelType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'ALL_KID', 'XDB$MODEL_T', 'XDB',
JT_XMLTYPE,
null, null, model_t_ref,null,null,
null, model_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ALL_MODEL', null,
'oracle.xdb.Model',
'oracle.xdb.ModelBean',
FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, PN_COMPLEXDERIVATION_CHOICE,
'choice', xdb.xdb$qname('01', 'modelType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'CHOICE_KID', 'XDB$MODEL_T', 'XDB',
JT_XMLTYPE,
null, null, model_t_ref,null,null,
null, model_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$CHOICE_MODEL', null,
'oracle.xdb.Model',
'oracle.xdb.ModelBean',
FALSE, null, null, null);
ellist(3) := xdb$insertElement(schref, PN_COMPLEXDERIVATION_SEQUENCE,
'sequence', xdb.xdb$qname('01', 'modelType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'SEQUENCE_KID', 'XDB$MODEL_T', 'XDB',
JT_XMLTYPE,
null, null, model_t_ref,null,null,
null, model_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$SEQUENCE_MODEL', null,
'oracle.xdb.Model',
'oracle.xdb.ModelBean',
FALSE, null, null, null);
ellist(4) := xdb$insertElement(schref, PN_COMPLEXDERIVATION_GROUP,
'group', xdb.xdb$qname('01', 'groupRefType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'GROUP_KID', 'XDB$GROUP_REF_T', 'XDB',
JT_XMLTYPE,
null, null, groupref_t_ref,null,null,
null, groupref_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$GROUP_REF', null,
'oracle.xdb.Group',
'oracle.xdb.GroupBean',
FALSE, null, null, null);
/* insert choice */
choice_list := xdb.xdb$xmltype_ref_list_t();
choice_list.extend(2);
choice_list(1) := xdb$insertChoice(schref, ellist, null, '1');
/* construct choice of <attribute>, <anyAttribute> and <attribGrp> */
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(3);
ellist(1) := xdb$insertElement(schref, PN_COMPLEXDERIVATION_ATTRIBUTE,
'attribute',
xdb.xdb$qname('01', 'attribute'),
0, 1, null, T_XOB, FALSE, FALSE,
FALSE, 'ATTRIBUTES',
'XDB$PROPERTY_T','XDB',
JT_XMLTYPE, null, null, null,null,null,
null, attr_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ATTRIBUTE', null,
'oracle.xdb.Attribute',
'oracle.xdb.AttributeBean',
FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(2) := xdb$insertElement(schref, PN_COMPLEXDERIVATION_ANYATTR,
'anyAttribute',
xdb.xdb$qname('01', 'anyType'),
0, 1, null, T_XOB, FALSE, FALSE,
FALSE, 'ANY_ATTRS',
'XDB$ANY_T','XDB',
JT_XMLTYPE, null, null, any_t_ref,null,null,
null, any_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ANYATTR', null,
'oracle.xdb.anyAttribute',
'oracle.xdb.anyAttributeBean',
FALSE, 'PROPERTY', null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(3) := xdb$insertElement(schref, PN_COMPLEXDERIVATION_ATTRGROUP,
'attributeGroup',
xdb.xdb$qname('01', 'attrGroupRefType'),
0, 1, null, T_XOB, FALSE, FALSE,
FALSE, 'ATTR_GROUPS',
'XDB$ATTRGROUP_REF_T','XDB',
JT_XMLTYPE, null, null,
attrgroupref_t_ref,null,null,
null, attrgroupref_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ATTRGROUP_REF', null,
'oracle.xdb.attributeGroup',
'oracle.xdb.attributeGroupBean',
FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
/* insert choice of above */
choice_list(2) := xdb$insertChoice(schref, ellist);
/* build annotation element */
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref,PN_COMPLEXDERIVATION_ANNOT,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
/* insert sequence of above */
seq_ref := xdb$insertSequence(schref, ellist, null, choice_list);
complexderv_t_ref := xdb$insertComplex(schref, null,
'complexDerivationType',
null, FALSE, null, '0',
null, null, null, null, null,
null, null, null, null,
null, null,
null, null,
null, null, null, attlist,
null, FALSE, seq_ref);
complexlist(10) := complexderv_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:smplcontentType" XML element */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(1);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(3);
attlist(1) := xdb$insertAttr(schref, PN_SIMPLECONTENT_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist(1) := xdb$insertElement(schref,PN_SIMPLECONTENT_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, PN_SIMPLECONTENT_RESTRICTION,
'restriction',
xdb.xdb$qname('01', 'simpleContentResType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'RESTRICTION',
'XDB$SIMPLECONT_RES_T', 'XDB',
JT_XMLTYPE,
null, null, simplecontRes_t_ref,null,null,
null, simplecontRes_colcount,
FALSE, null, null, FALSE, FALSE,
TRUE, FALSE, FALSE,
null, null,
'oracle.xdb.simpleContentRestriction',
'oracle.xdb.simpleContentRestrictionBean',
FALSE, null, null, null);
ellist(3) := xdb$insertElement(schref, PN_SIMPLECONTENT_EXTENSION,
'extension',
xdb.xdb$qname('01', 'simpleContentExtType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'EXTENSION',
'XDB$SIMPLECONT_EXT_T', 'XDB',
JT_XMLTYPE,
null, null, simplecontExt_t_ref,null,null,
null, simplecontExt_colcount,
FALSE, null, null, FALSE, FALSE,
TRUE, FALSE, FALSE,
null, null,
'oracle.xdb.simpleContentExtension',
'oracle.xdb.simpleContentExtensionBean',
FALSE, null, null, null);
smplcont_t_ref := xdb$insertComplex(schref, null,
'smplcontentType',
null, FALSE, null, '0',
null, null, null, null, null,
null, null, null, null,
null, null,
null, null,
null, null, ellist, attlist);
complexlist(29) := smplcont_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:cplxcontentType" XML element */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(2);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(3);
attlist(1) := xdb$insertAttr(schref, PN_CONTENT_MIXED,
'mixed', TR_BOOLEAN, 0, 1,null,
T_BOOLEAN, FALSE, FALSE, FALSE,
'MIXED', 'RAW', null, JT_BOOLEAN,
'false', null, null,null,null);
attlist(2) := xdb$insertAttr(schref, PN_CONTENT_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist(1) := xdb$insertElement(schref,PN_CONTENT_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, PN_CONTENT_RESTRICTION,
'restriction',
xdb.xdb$qname('01', 'complexDerivationType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'RESTRICTION',
'XDB$COMPLEX_DERIVATION_T', 'XDB',
JT_XMLTYPE,
null, null, complexderv_t_ref,null,null,
null, complexder_colcount,
FALSE, null, null, FALSE, FALSE,
TRUE, FALSE, FALSE,
null, null,
'oracle.xdb.complexDerivation',
'oracle.xdb.complexDerivationBean',
FALSE, null, null, null);
ellist(3) := xdb$insertElement(schref, PN_CONTENT_EXTENSION,
'extension',
xdb.xdb$qname('01', 'complexDerivationType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'EXTENSION',
'XDB$COMPLEX_DERIVATION_T', 'XDB',
JT_XMLTYPE,
null, null, complexderv_t_ref,null,null,
null, complexder_colcount,
FALSE, null, null, FALSE, FALSE,
TRUE, FALSE, FALSE,
null, null,
'oracle.xdb.complexDerivation',
'oracle.xdb.complexDerivationBean',
FALSE, null, null, null);
content_t_ref := xdb$insertComplex(schref, null,
'cplxcontentType',
null, FALSE, null, '0',
null, null, null, null, null,
null, null, null, null,
null, null,
null, null,
null, null, ellist, attlist);
complexlist(11) := content_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:complexType" XML element.
* Note that this does not strictly match the W3C schema for schemas. We
* will accept a superset of W3C schemas but schema validator will catch these.
*
* complexType :=
* -- annotation (0..1)
* |
* | simpleContent (0..1)
* -- choice -- complexContent (0..1)
* | group (0..1)
* sequence ---------| all (0..1)
* | sequence (0..1)
* | choice (0..1)
* |
* | attribute (0..1)
* -- choice -- attributeGrp (0..1)
* (0..unb) anyAttribute (0..1)
*
*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(12);
attlist(1) := xdb$insertAttr(schref, PN_COMPLEXTYPE_PARENTSCHEMA,
'parentSchema',
xdb.xdb$qname('00','REF'), 0, 1,
null, T_REF, TRUE, FALSE, FALSE,
'PARENT_SCHEMA', 'REF', null,
JT_REFERENCE,
null, null, null,null,null,
null, null, '01');
attlist(2) := xdb$insertAttr(schref, PN_COMPLEXTYPE_NAME,
'name', TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'NAME',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(3) := xdb$insertAttr(schref, PN_COMPLEXTYPE_ABSTRACT,
'abstract', TR_BOOLEAN, 0, 1,null,
T_BOOLEAN, FALSE, FALSE, FALSE,
'ABSTRACT', 'RAW', null, JT_BOOLEAN,
'false', null, null,null,null);
attlist(4) := xdb$insertAttr(schref, PN_COMPLEXTYPE_MIXED,
'mixed', TR_BOOLEAN, 0, 1,null,
T_BOOLEAN, FALSE, FALSE, FALSE,
'MIXED', 'RAW', null, JT_BOOLEAN,
'false', null, null,null,null);
attlist(5) := xdb$insertAttr(schref, PN_COMPLEXTYPE_FINAL, 'final',
xdb.xdb$qname('01', 'derivationChoice'), 0, 1,
null, T_ENUM, FALSE, FALSE, FALSE, 'FINAL_INFO',
'XDB$DERIVATIONCHOICE', 'XDB', JT_ENUM,
null, null, drv_choice_ref,null,null);
attlist(6) := xdb$insertAttr(schref, PN_COMPLEXTYPE_BLOCK, 'block',
xdb.xdb$qname('01', 'derivationChoice'), 0, 1,
null, T_ENUM, FALSE, FALSE, FALSE, 'BLOCK',
'XDB$DERIVATIONCHOICE', 'XDB', JT_ENUM,
null, null, drv_choice_ref,null,null);
attlist(7) := xdb$insertAttr(schref, PN_COMPLEXTYPE_SQLTYPE,
'SQLType', TR_STRING, 1, 1,null,
T_CSTRING, TRUE, FALSE, FALSE, 'SQLTYPE',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(8) := xdb$insertAttr(schref, PN_COMPLEXTYPE_SQLSCHEMA,
'SQLSchema', TR_STRING, 1, 1,null,
T_CSTRING, TRUE, FALSE, FALSE, 'SQLSCHEMA',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(9) := xdb$insertAttr(schref, PN_COMPLEXTYPE_MAINTAINDOM,
'maintainDOM', TR_BOOLEAN, 0,1,
null, T_BOOLEAN, TRUE, FALSE, FALSE,
'MAINTAIN_DOM', 'RAW', null, JT_BOOLEAN,
'true', null, null,null,null);
attlist(10) := xdb$insertAttr(schref, PN_COMPLEXTYPE_BASETYPE,
'baseType', xdb.xdb$qname('00', 'REF'), 0, 1,
null, T_REF, TRUE, FALSE, FALSE,
'BASE_TYPE', 'REF', null, JT_REFERENCE,
null, null, null,null,null,
null, null, '01');
attlist(11) := xdb$insertAttr(schref, PN_COMPLEXTYPE_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(12) := xdb$insertAttr(schref, PN_COMPLEXTYPE_TYPEID, 'typeID',
TR_INT, 0, 1, null,
T_UNSIGNINT, TRUE, FALSE, FALSE, 'TYPEID',
'NUMBER', null, JT_INT, null, null, null,null,
null);
/* construct a choice of <simpleContent>, <complexContent>,
* <group>, <all>, <seq>, <choice>
*/
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(6);
ellist(1) := xdb$insertElement(schref, PN_COMPLEXTYPE_CHOICE,
'choice', xdb.xdb$qname('01','modelType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'CHOICE_KID', 'XDB$MODEL_T', 'XDB',
JT_XMLTYPE,
null, null, model_t_ref,null,null,
null, model_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$CHOICE_MODEL', null,
'oracle.xdb.Model',
'oracle.xdb.ModelBean',
FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, PN_COMPLEXTYPE_SEQUENCE,
'sequence', xdb.xdb$qname('01', 'modelType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'SEQUENCE_KID', 'XDB$MODEL_T', 'XDB',
JT_XMLTYPE,
null, null, model_t_ref,null,null,
null, model_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$SEQUENCE_MODEL', null,
'oracle.xdb.Model',
'oracle.xdb.ModelBean',
FALSE, null, null, null);
ellist(3) := xdb$insertElement(schref, PN_COMPLEXTYPE_GROUP,
'group', xdb.xdb$qname('01', 'groupRefType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'GROUP_KID', 'XDB$GROUP_REF_T', 'XDB',
JT_XMLTYPE,
null, null, groupref_t_ref,null,null,
null, groupref_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$GROUP_REF', null,
'oracle.xdb.Group',
'oracle.xdb.GroupBean',
FALSE, null, null, null);
ellist(4) := xdb$insertElement(schref, PN_COMPLEXTYPE_ALL,
'all', xdb.xdb$qname('01', 'modelType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'ALL_KID', 'XDB$MODEL_T', 'XDB',
JT_XMLTYPE,
null, null, model_t_ref,null,null,
null, model_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ALL_MODEL', null,
'oracle.xdb.Model',
'oracle.xdb.ModelBean',
FALSE, null, null, null);
ellist(5) := xdb$insertElement(schref, PN_COMPLEXTYPE_SIMPLECONTENT,
'simpleContent',
xdb.xdb$qname('01', 'smplcontentType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'SIMPLECONT',
'XDB$SIMPLECONTENT_T', 'XDB',
JT_XMLTYPE,
null, null, smplcont_t_ref,null,null,
null, smplcont_colcount,
FALSE, null, null, FALSE, FALSE,
TRUE, FALSE, FALSE,
null, null,
'oracle.xdb.simpleContent',
'oracle.xdb.simpleContent',
FALSE, null, null, null);
ellist(6) := xdb$insertElement(schref, PN_COMPLEXTYPE_COMPLEXCONTENT,
'complexContent',
xdb.xdb$qname('01', 'cplxcontentType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'COMPLEXCONTENT',
'XDB$CONTENT_T', 'XDB',
JT_XMLTYPE,
null, null, content_t_ref,null,null,
null, content_colcount,
FALSE, null, null, FALSE, FALSE,
TRUE, FALSE, FALSE,
null, null,
'oracle.xdb.content',
'oracle.xdb.content',
FALSE, null, null, null);
/* Insert these as a choice */
choice_list := xdb.xdb$xmltype_ref_list_t();
choice_list.extend(2);
choice_list(1) := xdb$insertChoice(schref, ellist, null, '1');
/* Construct a choice of <attribute>, <attributeGroup> and
* <anyAttribute>
*/
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(3);
ellist(1) := xdb$insertElement(schref, PN_COMPLEXTYPE_ATTRIBUTE,
'attribute',
xdb.xdb$qname('01', 'attribute'),
0, 1, null, T_XOB, FALSE,
FALSE, FALSE, 'ATTRIBUTES',
'XDB$PROPERTY_T','XDB',JT_XMLTYPE,
null, null, null,null,null,
null, attr_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ATTRIBUTE', null,
'oracle.xdb.Attribute',
'oracle.xdb.AttributeBean', FALSE,
null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(2) := xdb$insertElement(schref, PN_COMPLEXTYPE_ATTRGROUP,
'attributeGroup',
xdb.xdb$qname('01', 'attrGroupRefType'),
0, 1, null, T_XOB, FALSE, FALSE,
FALSE, 'ATTR_GROUPS',
'XDB$ATTRGROUP_REF_T','XDB',
JT_XMLTYPE, null, null,
attrgroupref_t_ref,null,null,
null, attrgroupref_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ATTRGROUP_REF', null,
'oracle.xdb.attributeGroup',
'oracle.xdb.attributeGroupBean',
FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(3) := xdb$insertElement(schref, PN_COMPLEXTYPE_ANYATTR,
'anyAttribute',
xdb.xdb$qname('01', 'anyType'),
0, 1, null, T_XOB, FALSE,
FALSE, FALSE, 'ANY_ATTRS',
'XDB$ANY_T','XDB',JT_XMLTYPE,
null, null, any_t_ref,null,null,
null, any_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ANYATTR', null,
'oracle.xdb.anyAttribute',
'oracle.xdb.anyAttributeBean', FALSE,
'PROPERTY', null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
/* Insert these as a choice */
choice_list(2) := xdb$insertChoice(schref, ellist);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(2);
ellist(1) := xdb$insertElement(schref, PN_COMPLEXTYPE_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, PN_COMPLEXTYPE_SUBTYPEREF,
'subtypeRef',xdb.xdb$qname('00', 'REF'), 0, 1000,null,
T_REF, TRUE, FALSE, FALSE, 'SUBTYPE_REFS',
'REF', null, JT_REFERENCE, null, null, null,null,null,
null, 0, FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB', '01');
/* insert the sequence */
seq_ref := xdb$insertSequence(schref, ellist, null, choice_list);
complex_t_ref := xdb$insertComplex(schref, null,
'complexType', null, FALSE,
null, '0', null, null, null, null, null, null,
null, null, null, null, null,
null, null, null, null, null, attlist, null, FALSE,
seq_ref);
complexlist(6) := complex_t_ref;
ctype_propnum := 29;
schels(3) := xdb$insertElement(schref, ctype_propnum,
'complexType',
xdb.xdb$qname('01','complexType'), 0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'COMPLEX_TYPES',
'XDB$COMPLEX_T', 'XDB', JT_XMLTYPE, null, null,
complex_t_ref,null,null,
xdb.xdb$qname('01', 'schemaTop'), complex_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$COMPLEX_TYPE', null, 'oracle.xdb.ComplexType',
'oracle.xdb.ComplexTypeBean', TRUE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:attribute" XML element */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(26);
attlist(1) := xdb$insertAttr(schref, 30, 'parentSchema',
xdb.xdb$qname('00','REF'), 0, 1,
null, T_REF, TRUE, FALSE, FALSE,
'PARENT_SCHEMA', 'REF', null, JT_REFERENCE,
null, null, null,null,null,
null, null, '01');
attlist(2) := xdb$insertAttr(schref, 31, 'propNumber', TR_INT, 0, 1, null,
T_UNSIGNINT, TRUE, FALSE, FALSE, 'PROP_NUMBER',
'NUMBER', null, JT_INT, '0', null, null,null,null);
attlist(3) := xdb$insertAttr(schref, 32, 'name', TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'NAME',
'VARCHAR2', null, JT_STRING, null, null, null,null,null);
attlist(4) := xdb$insertAttr(schref, 33, 'type',
xdb.xdb$qname('00', 'QName'), 0, 1, null,
T_QNAME, FALSE, FALSE, FALSE, 'TYPENAME',
'XDB$QNAME', 'XDB', JT_QNAME,
null, null, null,null,null);
attlist(5) := xdb$insertAttr(schref, 36, 'memByteLength', TR_INT, 0,
1, '2', T_INTEGER, TRUE, FALSE, FALSE,
'MEM_BYTE_LENGTH', 'RAW', null, JT_SHORT, null,
null, null,null,null);
attlist(6) := xdb$insertAttr(schref, 37, 'memType', TR_INT, 0,
1, '2', T_INTEGER, TRUE, FALSE, FALSE,
'MEM_TYPE_CODE', 'RAW', null, JT_SHORT, null,
null, null,null,null);
attlist(7) := xdb$insertAttr(schref, 38, 'system', TR_BOOLEAN, 0, 1, null,
T_BOOLEAN, TRUE, FALSE, FALSE, 'SYSTEM',
'RAW', null, JT_BOOLEAN, 'false', null, null,null,null);
attlist(8) := xdb$insertAttr(schref, 39, 'mutable', TR_BOOLEAN, 0, 1, null,
T_BOOLEAN, TRUE, FALSE, FALSE, 'MUTABLE',
'RAW', null, JT_BOOLEAN, 'false', null, null,null,null);
attlist(9) := xdb$insertAttr(schref, 40, 'form',
xdb.xdb$qname('01','formChoice'), 0, 1,
'01', T_ENUM, FALSE, FALSE, FALSE,
'FORM', 'XDB$FORMCHOICE', 'XDB',
JT_ENUM, null, null, form_choice_ref,null,null);
attlist(10) := xdb$insertAttr(schref, 41, 'SQLName', TR_STRING, 1, 1, null,
T_CSTRING, TRUE, FALSE, FALSE, 'SQLNAME',
'VARCHAR2', null, JT_STRING, null, null, null,null,null);
attlist(11) := xdb$insertAttr(schref, 42, 'SQLType', TR_STRING, 1, 1,null,
T_CSTRING, TRUE, FALSE, FALSE, 'SQLTYPE',
'VARCHAR2', null, JT_STRING, null, null, null,null,null);
attlist(12) := xdb$insertAttr(schref, 43, 'SQLSchema', TR_STRING, 1, 1,null,
T_CSTRING, TRUE, FALSE, FALSE, 'SQLSCHEMA',
'VARCHAR2', null, JT_STRING, null, null, null,null,null);
attlist(13) := xdb$insertAttr(schref, 44, 'JavaType',
xdb.xdb$qname('01', 'javatype'), 1, 1, null,
T_ENUM, TRUE, FALSE, FALSE, 'JAVA_TYPE',
'XDB$JAVATYPE', 'XDB', JT_ENUM, null, null,
javatype_ref,null,null);
attlist(14) := xdb$insertAttr(schref, 45, 'default', TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'DEFAULT_VALUE',
'VARCHAR2', null, JT_STRING, null, null, null,null,null);
attlist(15) := xdb$insertAttr(schref, 46, 'typeRef',
xdb.xdb$qname('00','REF'), 0, 1,
null, T_REF, TRUE, FALSE, FALSE,
'TYPE_REF', 'REF', null, JT_REFERENCE,
null, null, null,null,null,
null, null, '01');
attlist(16) := xdb$insertAttr(schref, 84, 'ref',
xdb.xdb$qname('00', 'QName'), 0,1, null,
T_QNAME, FALSE, FALSE, FALSE,
'PROPREF_NAME', 'XDB$QNAME', 'XDB',
JT_QNAME, null, null,null,null,null);
attlist(17) := xdb$insertAttr(schref, 85, 'refRef',
xdb.xdb$qname('00', 'REF'), 0,1, null,
T_REF, TRUE, FALSE, FALSE,
'PROPREF_REF', 'REF', null,
JT_REFERENCE, null, null,null,null,null,
null, null, '01');
attlist(18) := xdb$insertAttr(schref, PN_ATTRIBUTE_USE, 'use',
xdb.xdb$qname('01','useChoice'), 0, 1,
'01', T_ENUM, FALSE, FALSE, FALSE,
'ATTR_USE', 'XDB$USECHOICE', 'XDB',
JT_ENUM, null, null, use_choice_ref,null,null);
attlist(19) := xdb$insertAttr(schref, PN_ATTRIBUTE_FIXED, 'fixed',
TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE,
'FIXED_VALUE', 'VARCHAR2', null,
JT_STRING, null, null, null,null,null);
attlist(20) := xdb$insertAttr(schref,63, 'global', TR_BOOLEAN,1,1,null,
T_BOOLEAN, TRUE, FALSE, FALSE,
'GLOBAL', 'RAW', null,
JT_BOOLEAN, null, null, null,null,null);
attlist(21) := xdb$insertAttr(schref, PN_ATTR_SQLCOLLTYPE,
'SQLCollType', TR_STRING, 1, 1,null,
T_CSTRING, TRUE, FALSE, FALSE, 'SQLCOLLTYPE',
'VARCHAR2', null, JT_STRING, null, null, null,
null,null);
attlist(22) := xdb$insertAttr(schref, PN_ATTR_SQLCOLLSCHEMA,
'SQLCollSchema', TR_STRING, 1, 1,null,
T_CSTRING, TRUE, FALSE, FALSE, 'SQLCOLLSCHEMA',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(23) := xdb$insertAttr(schref, PN_ATTR_HIDDEN, 'hidden',
TR_BOOLEAN, 0, 1, null,
T_BOOLEAN, TRUE, FALSE, FALSE, 'HIDDEN',
'RAW', null, JT_BOOLEAN, 'false', null,
null,null,null);
attlist(24) := xdb$insertAttr(schref, PN_ATTR_TRANSIENT, 'transient',
xdb.xdb$qname('01','transientChoice'), 0, 1, '01',
T_ENUM, TRUE, FALSE, FALSE, 'TRANSIENT',
'XDB$TRANSIENTCHOICE', 'XDB', JT_ENUM,
null, null, transient_choice_ref, null, null);
attlist(25) := xdb$insertAttr(schref, PN_ATTR_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(26) := xdb$insertAttr(schref, PN_ATTR_BASEPROP, 'baseProp',
TR_BOOLEAN, 0, 1, null,
T_BOOLEAN, TRUE, FALSE, FALSE, 'BASEPROP',
'RAW', null, JT_BOOLEAN, 'false', null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(2);
ellist(1) := xdb$insertElement(schref, PN_ATTRIBUTE_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, 47,
'simpleType', xdb.xdb$qname('01','simpleType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE, 'SMPL_TYPE_DECL',
'XDB$SIMPLE_T', 'XDB', JT_XMLTYPE, null, null,
simple_t_ref,null,null,
null, simple_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$SIMPLE_TYPE', null, 'oracle.xdb.SimpleType',
'oracle.xdb.SimpleTypeBean', FALSE, null, null, null);
attr_t_ref := xdb$insertComplex(schref, null, 'attribute',
null, FALSE, null, '0',
null, null, null, null, null, null, null, null, null,
null, null,
null, null, null, null, ellist, attlist);
complexlist(7) := attr_t_ref;
attr_propnum := 48;
schels(4) := xdb$insertElement(schref, attr_propnum,
'attribute', xdb.xdb$qname('01','attribute'), 0,1,
null, T_XOB, FALSE, FALSE, FALSE, 'ATTRIBUTES',
'XDB$PROPERTY_T', 'XDB', JT_XMLTYPE, null, null,
attr_t_ref,null,null,
xdb.xdb$qname('01', 'schemaTop'), attr_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$ATTRIBUTE', null, 'oracle.xdb.Attribute',
'oracle.xdb.AttributeBean', TRUE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
execute immediate 'update xdb.xdb$element e set
e.xmldata.property.type_ref =
:1 where e.xmldata.property.typename.name = ''attribute'''
using attr_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:element" XML element */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(26);
attlist(1) := xdb$insertAttr(schref, 49, 'baseSQLname',
TR_STRING, 0, 1,
null, T_CSTRING, TRUE, FALSE, FALSE,
'BASE_SQLNAME', 'VARCHAR2', null, JT_STRING,
null, null, null,null,null);
attlist(2) := xdb$insertAttr(schref, 50, 'substitutionGroup',
xdb.xdb$qname('00', 'QName'), 0,1,null,
T_QNAME, FALSE, FALSE, FALSE, 'SUBS_GROUP',
'XDB$QNAME', 'XDB', JT_QNAME, null, null, null,null,null);
attlist(3) := xdb$insertAttr(schref, 51, 'nillable', TR_BOOLEAN, 0, 1,null,
T_BOOLEAN, FALSE, FALSE, FALSE, 'NILLABLE',
'RAW', null, JT_BOOLEAN, 'false', null, null,null,null);
attlist(4) := xdb$insertAttr(schref, 52, 'final',
xdb.xdb$qname('01','derivationChoice'), 0, 1,
null, T_ENUM, FALSE, FALSE, FALSE, 'FINAL_INFO',
'XDB$DERIVATIONCHOICE', 'XDB', JT_ENUM,
null, null, drv_choice_ref,null,null);
attlist(5) := xdb$insertAttr(schref, 53, 'block',
xdb.xdb$qname('01','derivationChoice'), 0, 1,
null, T_ENUM, FALSE, FALSE, FALSE, 'BLOCK',
'XDB$DERIVATIONCHOICE', 'XDB', JT_ENUM,
null, null, drv_choice_ref,null,null);
attlist(6) := xdb$insertAttr(schref, 54, 'abstract', TR_BOOLEAN, 0, 1,null,
T_BOOLEAN, FALSE, FALSE, FALSE, 'ABSTRACT',
'RAW', null, JT_BOOLEAN, 'false', null, null,null,null);
attlist(7) := xdb$insertAttr(schref, 55, 'SQLInline', TR_BOOLEAN,0,1,null,
T_BOOLEAN, TRUE, FALSE, FALSE, 'SQL_INLINE',
'RAW', null, JT_BOOLEAN, 'false', null, null,null,null);
attlist(8) := xdb$insertAttr(schref, 56,'JavaInline', TR_BOOLEAN,0,1,null,
T_BOOLEAN, TRUE, FALSE, FALSE, 'JAVA_INLINE',
'RAW', null, JT_BOOLEAN, 'false', null, null,null,null);
attlist(9) := xdb$insertAttr(schref, 57,'MemInline', TR_BOOLEAN, 0,1,null,
T_BOOLEAN, TRUE, FALSE, FALSE, 'MEM_INLINE',
'RAW', null, JT_BOOLEAN, 'false', null, null,null,null);
attlist(10) := xdb$insertAttr(schref, 58, 'maintainDOM', TR_BOOLEAN, 0,1,
null, T_BOOLEAN, TRUE, FALSE, FALSE,
'MAINTAIN_DOM', 'RAW', null, JT_BOOLEAN,
'true', null, null,null,null);
attlist(11) := xdb$insertAttr(schref, 59,'defaultTable', TR_STRING,0,1,null,
T_CSTRING, TRUE, FALSE, FALSE,'DEFAULT_TABLE',
'VARCHAR2', null, JT_STRING, null, null, null,null,null);
attlist(12) := xdb$insertAttr(schref, PN_ELEMENT_DEFTABLESCHEMA,
'defaultTableSchema',
TR_STRING,0,1,null,
T_CSTRING, TRUE, FALSE, FALSE,
'DEFAULT_TABLE_SCHEMA',
'VARCHAR2', null, JT_STRING, null,
null, null,null,null);
attlist(13) := xdb$insertAttr(schref,60,'tableProps', TR_STRING,0,1,null,
T_CSTRING, TRUE, FALSE, FALSE, 'TABLE_PROPS',
'VARCHAR2', null, JT_STRING, null, null, null,null,null);
attlist(14) := xdb$insertAttr(schref,61,'JavaClassname',TR_STRING,0,1,null,
T_CSTRING, TRUE, FALSE, FALSE,'JAVA_CLASSNAME',
'VARCHAR2', null, JT_STRING, null, null, null,null,null);
attlist(15) := xdb$insertAttr(schref,62,'beanClassname', TR_STRING,0,1,null,
T_CSTRING, TRUE, FALSE, FALSE,'BEAN_CLASSNAME',
'VARCHAR2', null, JT_STRING, null, null, null,null,null);
attlist(16) := xdb$insertAttr(schref, 64, 'numCols', TR_INT, 1,1,
'02', T_INTEGER, TRUE, FALSE, FALSE,
'NUM_COLS', 'INTEGER', null, JT_INT, null,
null,null,null,null);
attlist(17) := xdb$insertAttr(schref, PN_ELEMENT_DEFAULTXSL,
'defaultXSL', TR_STRING,
1,1,null, T_CSTRING, TRUE, FALSE, FALSE,
'DEFAULT_XSL', 'VARCHAR2', null, JT_STRING,
null, null, null,null,null);
attlist(18) := xdb$insertAttr(schref, 34, 'minOccurs',
TR_INT, 0, 1, null,
T_INTEGER, FALSE, FALSE, FALSE, 'MIN_OCCURS',
'NUMBER', null, JT_INT, '0',
null, null,null,null);
attlist(19) := xdb$insertAttr(schref, 35, 'maxOccurs',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'MAX_OCCURS',
'VARCHAR2', null, JT_STRING, null,
null, null,null,null);
attlist(20) := xdb$insertAttr(schref, PN_ELEMENT_ISFOLDER, 'isFolder',
TR_BOOLEAN, 0, 1, null,
T_BOOLEAN, TRUE, FALSE, FALSE, 'IS_FOLDER',
'RAW', null, JT_BOOLEAN, 'false', null,
null,null,null);
attlist(21) := xdb$insertAttr(schref, PN_ELEMENT_MAINTAINORDER,
'maintainOrder', TR_BOOLEAN, 0, 1, null,
T_BOOLEAN, TRUE, FALSE, FALSE, 'MAINTAIN_ORDER',
'RAW', null, JT_BOOLEAN, 'true', null,
null,null,null);
attlist(22) := xdb$insertAttr(schref,PN_ELEMENT_COLUMNPROPS,
'columnProps', TR_STRING,0,1,null,
T_CSTRING, TRUE, FALSE, FALSE, 'COL_PROPS',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(23) := xdb$insertAttr(schref, PN_ELEMENT_DEFAULTACL,
'defaultACL', TR_STRING,
1,1,null, T_CSTRING, TRUE, FALSE, FALSE,
'DEFAULT_ACL', 'VARCHAR2', null, JT_STRING,
null, null, null,null,null);
attlist(24) := xdb$insertAttr(schref, PN_ELEMENT_HEADELEM_REF,
'headElementRef',
xdb.xdb$qname('00', 'REF'), 0,1, null,
T_REF, TRUE, FALSE, FALSE,
'HEAD_ELEM_REF', 'REF', null,
JT_REFERENCE, null, null,null,null,null,
null, null, '01');
attlist(25) := xdb$insertAttr(schref, PN_ELEMENT_ISTRANSLATABLE, 'translate',
TR_BOOLEAN, 0, 1, null,
T_BOOLEAN, TRUE, FALSE, FALSE, 'IS_TRANSLATABLE',
'RAW', null, JT_BOOLEAN, null, null,
null,null,null);
attlist(26) := xdb$insertAttr(schref, PN_ELEMENT_XDBMAXOCCURS, 'maxOccurs',
TR_STRING, 0, 1, null,
T_CSTRING, TRUE, FALSE, FALSE, 'XDB_MAX_OCCURS',
'VARCHAR2', null, JT_STRING, null,
null, null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(5);
ellist(1) := xdb$insertElement(schref, 65,
'complexType', xdb.xdb$qname('01','complexType'), 0, 1,
null, T_XOB, FALSE, FALSE, FALSE, 'CPLX_TYPE_DECL',
'XDB$COMPLEX_T', 'XDB', JT_XMLTYPE, null, null,
complex_t_ref,null,null,
null, complex_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$COMPLEX_TYPE', null, 'oracle.xdb.ComplexType',
'oracle.xdb.ComplexTypeBean', FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, 66, 'substitutionGroupRef',
xdb.xdb$qname('00', 'REF'), 0, 1000,null,
T_REF, TRUE, FALSE, FALSE, 'SUBS_GROUP_REFS',
'REF', null, JT_REFERENCE, null, null, null,null,null,
null, 0, FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$ELEMENT', null, null, null, FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB', '01');
ellist(3) := xdb$insertElement(schref, PN_ELEMENT_UNIQUE,
'unique', xdb.xdb$qname('01','keybase'), 0,1000,
null, T_XOB, FALSE, FALSE, FALSE, 'UNIQUES',
'XDB$KEYBASE_T', 'XDB', JT_XMLTYPE, null, null,
keybase_t_ref,null,null, null, keybase_colcount,
FALSE, null, null, FALSE, FALSE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null,
'XDB$KEYBASE_LIST_T','XDB');
ellist(4) := xdb$insertElement(schref, PN_ELEMENT_KEY,
'key', xdb.xdb$qname('01','keybase'), 0,1000,
null, T_XOB, FALSE, FALSE, FALSE, 'KEYS',
'XDB$KEYBASE_T', 'XDB', JT_XMLTYPE, null, null,
keybase_t_ref,null,null, null, keybase_colcount,
FALSE, null, null, FALSE, FALSE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null,
'XDB$KEYBASE_LIST_T','XDB');
ellist(5) := xdb$insertElement(schref, PN_ELEMENT_KEYREF,
'keyref', xdb.xdb$qname('01','keybase'), 0,1000,
null, T_XOB, FALSE, FALSE, FALSE, 'KEYREFS',
'XDB$KEYBASE_T', 'XDB', JT_XMLTYPE, null, null,
keybase_t_ref,null,null, null, keybase_colcount,
FALSE, null, null, FALSE, FALSE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null,
'XDB$KEYBASE_LIST_T','XDB');
ctyperef := xdb$insertComplex(schref, attr_t_ref, 'element',
xdb.xdb$qname('01', 'attribute'), FALSE, null,'0',
null, null, null, null, null, null, null, null, null,
null, null,
null, null, null, null, ellist, attlist);
complexlist(8) := ctyperef;
schels(5) := xdb$insertElement(schref, 67,
'element', xdb.xdb$qname('01', 'element'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,'ELEMENTS',
'XDB$ELEMENT_T', 'XDB', JT_XMLTYPE, null, null,
ctyperef,null,null,
xdb.xdb$qname('01', 'schemaTop'),
elem_colcount, FALSE, null, null,
FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$ELEMENT', null, 'oracle.xdb.Element',
'oracle.xdb.ElementBean', TRUE, 'PROPERTY', null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
/* Update all of the forward references for element */
execute immediate 'update xdb.xdb$element e set
e.xmldata.property.type_ref =
:1 where e.xmldata.property.typename.name = ''element'''
using ctyperef;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:anyType" complex type */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(4);
attlist(1) := xdb$insertAttr(schref, PN_ANYTYPE_NAMESPACE,
'namespace', TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE,
'NAMESPACE', 'VARCHAR2', null,
JT_STRING, null, null, null,null,null);
attlist(2) := xdb$insertAttr(schref, PN_ANYTYPE_PROCESSCONTENTS,
'processContents',
xdb.xdb$qname('01','processChoice'), 0, 1,
'01', T_ENUM, FALSE, FALSE, FALSE,
'PROCESS_CONTENTS',
'XDB$PROCESSCHOICE', 'XDB',
JT_ENUM, null, null,
process_choice_ref,null,null);
attlist(3) := xdb$insertAttr(schref, PN_ANYTYPE_MINOCCURS,'minOccurs',
TR_INT, 0, 1, null,
T_INTEGER, FALSE, FALSE, FALSE, 'MIN_OCCURS',
'NUMBER', null, JT_INT, '0',
null, null,null,null);
attlist(4) := xdb$insertAttr(schref, PN_ANYTYPE_MAXOCCURS,'maxOccurs',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'MAX_OCCURS',
'VARCHAR2', null, JT_STRING, null,
null, null,null,null);
xdb$updateComplex(any_t_ref, schref, attr_t_ref, 'anyType',
xdb.xdb$qname('01', 'attribute'), FALSE, null,null,
null, null, null, null, attlist);
complexlist(15) := any_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:groupDefType" complex type */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(3);
attlist(1) := xdb$insertAttr(schref, PN_GROUPDEF_PARENTSCHEMA,
'parentSchema', xdb.xdb$qname('00','REF'), 0, 1,
null, T_REF, TRUE, FALSE, FALSE,
'PARENT_SCHEMA', 'REF', null, JT_REFERENCE,
null, null, null,null,null,
null, null, '01');
attlist(2) := xdb$insertAttr(schref, PN_GROUPDEF_NAME, 'name',
TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'NAME',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(3) := xdb$insertAttr(schref, PN_GROUPDEF_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(4);
ellist(1) := xdb$insertElement(schref, PN_GROUPDEF_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, PN_GROUPDEF_ALL,
'all', xdb.xdb$qname('01', 'modelType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'ALL_KID', 'XDB$MODEL_T', 'XDB',
JT_XMLTYPE,
null, null, model_t_ref,null,null,
null, model_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ALL_MODEL', null,
'oracle.xdb.Model',
'oracle.xdb.ModelBean',
FALSE, null, null, null);
ellist(3) := xdb$insertElement(schref, PN_GROUPDEF_CHOICE,
'choice', xdb.xdb$qname('01', 'modelType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'CHOICE_KID', 'XDB$MODEL_T', 'XDB',
JT_XMLTYPE,
null, null, model_t_ref,null,null,
null, model_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$CHOICE_MODEL', null,
'oracle.xdb.Model',
'oracle.xdb.ModelBean',
FALSE, null, null, null);
ellist(4) := xdb$insertElement(schref, PN_GROUPDEF_SEQUENCE,
'sequence', xdb.xdb$qname('01', 'modelType'),
0, 1, null,
T_XOB, FALSE, FALSE, FALSE,
'SEQUENCE_KID', 'XDB$MODEL_T', 'XDB',
JT_XMLTYPE,
null, null, model_t_ref,null,null,
null, model_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$SEQUENCE_MODEL', null,
'oracle.xdb.Model',
'oracle.xdb.ModelBean',
FALSE, null, null, null);
groupdef_t_ref := xdb$insertComplex(schref, null,
'groupDefType', null, FALSE,
null, '0', null, null, null, null, null, null,
null, null, null, null, null,
null, null, null, null, ellist, attlist);
complexlist(20) := groupdef_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:groupRefType" complex type */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(6);
attlist(1) := xdb$insertAttr(schref, PN_GROUPREF_PARENTSCHEMA,
'parentSchema', xdb.xdb$qname('00','REF'), 0, 1,
null, T_REF, TRUE, FALSE, FALSE,
'PARENT_SCHEMA', 'REF', null, JT_REFERENCE,
null, null, null,null,null,
null, null, '01');
attlist(2) := xdb$insertAttr(schref,PN_GROUPREF_MINOCCURS,'minOccurs',
TR_INT, 0, 1, null,
T_INTEGER, FALSE, FALSE, FALSE, 'MIN_OCCURS',
'NUMBER', null, JT_INT, '0',
null, null,null,null);
attlist(3) := xdb$insertAttr(schref,PN_GROUPREF_MAXOCCURS,'maxOccurs',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'MAX_OCCURS',
'VARCHAR2', null, JT_STRING, null,
null, null,null,null);
attlist(4) := xdb$insertAttr(schref, PN_GROUPREF_NAME, 'ref',
xdb.xdb$qname('00', 'QName'), 0,1, null,
T_QNAME, FALSE, FALSE, FALSE,
'GROUPREF_NAME', 'XDB$QNAME', 'XDB',
JT_QNAME, null, null,null,null,null);
attlist(5) := xdb$insertAttr(schref, PN_GROUPREF_REF, 'refRef',
xdb.xdb$qname('00', 'REF'), 0,1, null,
T_REF, TRUE, FALSE, FALSE,
'GROUPREF_REF', 'REF', null,
JT_REFERENCE, null, null,null,null,null,
null, null, '01');
attlist(6) := xdb$insertAttr(schref, PN_GROUPREF_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref, PN_GROUPREF_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
xdb$updateComplex(groupref_t_ref, schref, null,
'groupRefType', null, FALSE,
null, null, null, null, null, ellist, attlist);
complexlist(21) := groupref_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:attrGroupDefType" complex type */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(3);
attlist(1) := xdb$insertAttr(schref, PN_ATTRGROUPDEF_PARENTSCHEMA,
'parentSchema', xdb.xdb$qname('00','REF'), 0, 1,
null, T_REF, TRUE, FALSE, FALSE,
'PARENT_SCHEMA', 'REF', null, JT_REFERENCE,
null, null, null,null,null,
null, null, '01');
attlist(2) := xdb$insertAttr(schref, PN_ATTRGROUPDEF_NAME, 'name',
TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'NAME',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(3) := xdb$insertAttr(schref, PN_ATTRGROUPDEF_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(4);
ellist(1) := xdb$insertElement(schref, PN_ATTRGROUPDEF_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
ellist(2) := xdb$insertElement(schref, PN_ATTRGROUPDEF_ATTRIBUTE,
'attribute',
xdb.xdb$qname('01', 'attribute'),
0, 1000, null, T_XOB, FALSE,
FALSE, FALSE, 'ATTRIBUTES',
'XDB$PROPERTY_T','XDB',JT_XMLTYPE,
null, null, attr_t_ref,null,null,
null, attr_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ATTRIBUTE', null,
'oracle.xdb.Attribute',
'oracle.xdb.AttributeBean', FALSE,
null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(3) := xdb$insertElement(schref, PN_ATTRGROUPDEF_ANYATTR,
'anyAttribute',
xdb.xdb$qname('01', 'anyType'),
0, 1000, null, T_XOB, FALSE,
FALSE, FALSE, 'ANY_ATTRS',
'XDB$ANY_T','XDB',JT_XMLTYPE,
null, null, any_t_ref,null,null,
null, any_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ANYATTR', null,
'oracle.xdb.anyAttribute',
'oracle.xdb.anyAttributeBean', FALSE,
'PROPERTY', null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
ellist(4) := xdb$insertElement(schref, PN_ATTRGROUPDEF_ATTRGROUP,
'attributeGroup',
xdb.xdb$qname('01', 'attrGroupRefType'),
0, 1000, null, T_XOB, FALSE, FALSE,
FALSE, 'ATTR_GROUPS',
'XDB$ATTRGROUP_REF_T','XDB',
JT_XMLTYPE, null, null,
attrgroupref_t_ref,null,null,
null, attrgroupref_colcount,
FALSE, null, null, FALSE, FALSE,
FALSE, FALSE, FALSE,
'XDB$ATTRGROUP_REF', null,
'oracle.xdb.attributeGroup',
'oracle.xdb.attributeGroupBean',
FALSE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
attrgroupdef_t_ref := xdb$insertComplex(schref, null,
'attrGroupDefType', null, FALSE,
null, '0', null, null, null, null, null, null,
null, null, null, null, null,
null, null, null, null, ellist, attlist);
complexlist(22) := attrgroupdef_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:attrGroupRefType" complex type */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(4);
attlist(1) := xdb$insertAttr(schref, PN_ATTRGROUPREF_PARENTSCHEMA,
'parentSchema', xdb.xdb$qname('00','REF'), 0, 1,
null, T_REF, TRUE, FALSE, FALSE,
'PARENT_SCHEMA', 'REF', null, JT_REFERENCE,
null, null, null,null,null,
null, null, '01');
attlist(2) := xdb$insertAttr(schref, PN_ATTRGROUPREF_NAME, 'ref',
xdb.xdb$qname('00', 'QName'), 0,1, null,
T_QNAME, FALSE, FALSE, FALSE,
'ATTRGROUP_NAME', 'XDB$QNAME', 'XDB',
JT_QNAME, null, null,null,null,null);
attlist(3) := xdb$insertAttr(schref, PN_ATTRGROUPREF_REF, 'refRef',
xdb.xdb$qname('00', 'REF'), 0,1, null,
T_REF, TRUE, FALSE, FALSE,
'ATTRGROUP_REF', 'REF', null,
JT_REFERENCE, null, null,null,null,null,
null, null, '01');
attlist(4) := xdb$insertAttr(schref, PN_ATTRGROUPREF_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref, PN_ATTRGROUPREF_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
xdb$updateComplex(attrgroupref_t_ref, schref, null,
'attrGroupRefType', null, FALSE,
null, null, null, null, null, ellist, attlist);
complexlist(23) := attrgroupref_t_ref;
/*--------------------------------------------------------------------------*/
/* Definition of "xdb:schema" XML element */
/*--------------------------------------------------------------------------*/
attlist := xdb.xdb$xmltype_ref_list_t();
attlist.extend(15);
attlist(1) := xdb$insertAttr(schref, 68, 'schemaURL', TR_STRING,
1,1,null, T_CSTRING, TRUE, FALSE, FALSE,
'SCHEMA_URL',
'VARCHAR2', null, JT_STRING, null, null, null,null,null);
attlist(2) := xdb$insertAttr(schref, 69, 'targetNamespace', TR_STRING,
0,1,null, T_CSTRING, FALSE, FALSE, FALSE,
'TARGET_NAMESPACE',
'VARCHAR2', null, JT_STRING, null, null, null,null,null);
attlist(3) := xdb$insertAttr(schref, 70, 'version', TR_STRING,
0,1,null, T_CSTRING, FALSE, FALSE, FALSE,
'VERSION', 'VARCHAR2', null, JT_STRING, null,
null, null,null,null);
attlist(4) := xdb$insertAttr(schref, 71, 'numProps', TR_NNEGINT,
1,1,null, T_INTEGER, TRUE, FALSE, FALSE,
'NUM_PROPS', 'INTEGER', null, JT_LONG, null,
null, null,null,null);
attlist(5) := xdb$insertAttr(schref, 72, 'finalDefault',
xdb.xdb$qname('01','derivationChoice'), 0, 1,
'01', T_ENUM, FALSE, FALSE, FALSE,
'FINAL_DEFAULT','XDB$DERIVATIONCHOICE', 'XDB',
JT_ENUM, null, null, drv_choice_ref,null,null);
attlist(6) := xdb$insertAttr(schref, 73, 'blockDefault',
xdb.xdb$qname('01','derivationChoice'), 0, 1,
'01', T_ENUM, FALSE, FALSE, FALSE,
'BLOCK_DEFAULT','XDB$DERIVATIONCHOICE', 'XDB',
JT_ENUM, null, null, drv_choice_ref,null,null);
attlist(7) := xdb$insertAttr(schref, 74, 'attributeFormDefault',
xdb.xdb$qname('01','formChoice'), 0, 1,
'01', T_ENUM, FALSE, FALSE, FALSE,
'ATTRIBUTE_FORM_DFLT', 'XDB$FORMCHOICE', 'XDB',
JT_ENUM, null, null, form_choice_ref,null,null);
attlist(8) := xdb$insertAttr(schref, 75, 'elementFormDefault',
xdb.xdb$qname('01','formChoice'), 0, 1,
'01', T_ENUM, FALSE, FALSE, FALSE,
'ELEMENT_FORM_DFLT', 'XDB$FORMCHOICE', 'XDB',
JT_ENUM, null, null, form_choice_ref,null,null);
attlist(9) := xdb$insertAttr(schref, 76, 'flags', TR_NNEGINT, 1, 1,
'4', T_UNSIGNINT, TRUE, FALSE, FALSE,
'FLAGS', 'RAW', null, JT_LONG, null,
null, null,null,null);
attlist(10) := xdb$insertAttr(schref, PN_SCHEMA_MAPTONCHAR,
'mapStringToNCHAR', TR_BOOLEAN, 1, 1,
null, T_BOOLEAN, TRUE, FALSE, FALSE,
'MAP_TO_NCHAR', 'RAW', null, JT_BOOLEAN,
'false', null, null,null,null);
attlist(11) := xdb$insertAttr(schref, PN_SCHEMA_MAPTOLOB,
'mapUnboundedStringToLob', TR_BOOLEAN, 1, 1,
null, T_BOOLEAN, TRUE, FALSE, FALSE,
'MAP_TO_LOB', 'RAW', null, JT_BOOLEAN,
'false', null, null,null,null);
attlist(12) := xdb$insertAttr(schref, PN_SCHEMA_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
attlist(13) := xdb$insertAttr(schref, PN_SCHEMA_VARRAYTAB,
'storeVarrayAsTable', TR_BOOLEAN, 1, 1,
null, T_BOOLEAN, TRUE, FALSE, FALSE,
'VARRAY_AS_TAB', 'RAW', null, JT_BOOLEAN,
'false', null, null,null,null);
attlist(14) := xdb$insertAttr(schref, PN_SCHEMA_OWNER, 'schemaOwner',
TR_STRING, 1,1,null, T_CSTRING, TRUE,
FALSE, FALSE, 'SCHEMA_OWNER', 'VARCHAR2',
null, JT_STRING, null, null, null,null,null);
attlist(15) := xdb$insertAttr(schref, PN_SCHEMA_LANG,
'lang', TR_STRING, 1, 1, null,
T_CSTRING, FALSE, FALSE, FALSE,
'LANG', 'VARCHAR2', null,
JT_STRING, null, null, null,null,null);
/* ---------------------- local type for "import" ------------------------ */
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref, PN_IMPORT_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
attlist2 := xdb.xdb$xmltype_ref_list_t();
attlist2.extend(3);
attlist2(1) := xdb$insertAttr(schref, 77, 'namespace', TR_STRING,
0, 1, null, T_CSTRING, FALSE, FALSE, FALSE,
'NAMESPACE', 'VARCHAR2', null, JT_STRING, null,
null, null,null,null);
attlist2(2) := xdb$insertAttr(schref, 78, 'schemaLocation', TR_STRING,
0, 1, null, T_CSTRING, FALSE, FALSE, FALSE,
'SCHEMA_LOCATION', 'VARCHAR2', null,
JT_STRING, null, null, null,null,null);
attlist2(3) := xdb$insertAttr(schref, PN_IMPORT_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ctyperef := xdb$insertComplex(schref, null, null,
null, FALSE, null, '0', null, null,
null, null, null, null, null, null, null, null, null,
null, null, null, null, ellist, attlist2);
schels(6) := xdb$insertElement(schref, 79, 'import', null,
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'IMPORTS', 'XDB$IMPORT_T', 'XDB',
JT_XMLTYPE, null, null, null,null,null,
null, 3, FALSE, null, null, FALSE, FALSE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, ctyperef, null,
'XDB$IMPORT_LIST_T','XDB');
/* ----------------------local type for "include" ----------------------- */
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(1);
ellist(1) := xdb$insertElement(schref, PN_INCLUDE_ANNOTATION,
'annotation', xdb.xdb$qname('01', 'annotation'),
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'ANNOTATION', 'XDB$ANNOTATION_T', 'XDB',
JT_STRING, null, null, annotation_t_ref,null,null,
null, annotation_colcount, FALSE, null, null,
FALSE, FALSE, TRUE, FALSE, FALSE,
null, null, null, null, FALSE, null, null, null);
attlist2 := xdb.xdb$xmltype_ref_list_t();
attlist2.extend(2);
attlist2(1) := xdb$insertAttr(schref, PN_INCLUDE_SCHEMALOCATION,
'schemaLocation', TR_STRING,
0, 1, null, T_CSTRING, FALSE, FALSE, FALSE,
'SCHEMA_LOCATION', 'VARCHAR2', null,
JT_STRING, null, null, null,null,null);
attlist2(2) := xdb$insertAttr(schref, PN_INCLUDE_ID, 'id',
TR_STRING, 0, 1, null,
T_CSTRING, FALSE, FALSE, FALSE, 'ID',
'VARCHAR2', null, JT_STRING, null, null,
null,null,null);
ctyperef := xdb$insertComplex(schref, null, null,
null, FALSE, null, '0', null, null,
null, null, null, null, null, null, null, null, null,
null, null, null, null, ellist, attlist2);
schels(7) := xdb$insertElement(schref, 80, 'include', null,
0, 1, null, T_XOB, FALSE, FALSE, FALSE,
'INCLUDES', 'XDB$INCLUDE_T', 'XDB',
JT_XMLTYPE, null, null, null,null,null,
null, 2, FALSE, null, null, FALSE, FALSE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, ctyperef, null,
'XDB$INCLUDE_LIST_T','XDB');
schels(8) := xdb$insertElement(schref, PN_SCHEMA_GROUP,
'group', xdb.xdb$qname('01','groupDefType'), 0,1,
null, T_XOB, FALSE, FALSE, FALSE, 'GROUPS',
'XDB$GROUP_DEF_T', 'XDB', JT_XMLTYPE, null, null,
groupdef_t_ref,null,null,
xdb.xdb$qname('01', 'schemaTop'), groupdef_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$GROUP_DEF', null, 'oracle.xdb.group',
'oracle.xdb.groupBean', TRUE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
schels(9) := xdb$insertElement(schref, PN_SCHEMA_ATTRGROUP,
'attributeGroup',xdb.xdb$qname('01','attrGroupDefType'),
0,1, null, T_XOB, FALSE, FALSE, FALSE,'ATTRGROUPS',
'XDB$ATTRGROUP_DEF_T', 'XDB', JT_XMLTYPE, null, null,
attrgroupdef_t_ref,null,null,
xdb.xdb$qname('01', 'schemaTop'), attrgroupdef_colcount,
FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
'XDB$ATTRGROUP_DEF', null, 'oracle.xdb.attributeGroup',
'oracle.xdb.attributeGroupBean', TRUE, null, null, null,
'XDB$XMLTYPE_REF_LIST_T','XDB');
schels(10) := xdb$insertElement(schref, PN_SCHEMA_NOTATION,
'notation', xdb.xdb$qname('01','notation'), 0,1,
null, T_XOB, FALSE, FALSE, FALSE, 'NOTATIONS',
'XDB$NOTATION_T', 'XDB', JT_XMLTYPE, null, null,
notation_t_ref,null,null, null, notation_colcount,
FALSE, null, null, FALSE, FALSE, TRUE, TRUE, FALSE,
null, null, null, null, FALSE, null, null, null,
'XDB$NOTATION_LIST_T','XDB');
/* ---------------------- type for "schema" -------------------------- */
/* set up all elements occuring within "schema" element
* Note that there are other elements within XDB schema but not
* legal within user schema documents e.g. schemaTop, binary
*/
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(10);
ellist(1) := schels(1);
ellist(2) := schels(2);
ellist(3) := schels(3);
ellist(4) := schels(4);
ellist(5) := schels(5);
ellist(6) := schels(6);
ellist(7) := schels(7);
ellist(8) := schels(8);
ellist(9) := schels(9);
ellist(10) := schels(10);
/* insert a choice */
choice_list := xdb.xdb$xmltype_ref_list_t();
choice_list.extend(1);
choice_list(1) := xdb$insertChoice(schref, ellist);
ctyperef := xdb$insertComplex(schref, null, 'schema',
null, FALSE, null,'0',
null, null, null, null, null, null, null, null, null,
null, null,
null, null, null, null, ellist, attlist,
null, FALSE, choice_list(1));
complexlist(19) := ctyperef;
element_propnum := 81;
select attributes into colcount from all_types
where type_name in ('XDB$SCHEMA_T') and owner = 'XDB';
schels(11) := xdb$insertElement(schref, element_propnum,
'schema', xdb.xdb$qname('01','schema'),
0, null, null, T_XOB,
FALSE, FALSE, FALSE, null, 'XDB$SCHEMA_T', 'XDB',
JT_XMLTYPE, null, null, ctyperef,null,null,
null, colcount, FALSE, null, null,
FALSE, FALSE, FALSE, FALSE, TRUE,
'XDB$SCHEMA', null, 'oracle.xdb.Schema',
'oracle.xdb.SchemaBean', TRUE, null, null, null);
/* Handle all of the substitution groups for schemaTop - why do we need this element at all ??? */
ellist := xdb.xdb$xmltype_ref_list_t();
ellist.extend(4);
ellist(1) := schels(2);
ellist(2) := schels(3);
ellist(3) := schels(4);
ellist(4) := schels(5);
schels(12) := xdb$insertElement(schref, 82, 'schemaTop',
xdb.xdb$qname('00', 'string'),
0, null, null, T_CSTRING, FALSE, FALSE,
FALSE, null, null,null,null,null, null,null,null,null,
null, 0, FALSE, null, null, TRUE, TRUE, TRUE, TRUE, FALSE,
null, null, null, null, TRUE, null, null, null);
schels(13) := xdb$insertElement(schref, 83, 'binary', TR_BINARY,
0, null, null, T_BLOB, FALSE, FALSE,
FALSE, null, null,null,JT_STREAM,
null, null,null,null,null,
null, 0, FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
null, null, null, null, TRUE, null, null, null);
schels(14) := xdb$insertElement(schref, 269, 'text', TR_STRING,
0, null, null, T_CLOB, FALSE, FALSE,
FALSE, null, null,null,JT_STREAM,
null, null,null,null,null,
null, 0, FALSE, null, null, FALSE, FALSE, FALSE, FALSE, FALSE,
null, null, null, null, TRUE, null, null, null);
/* Update schema to have all toplevel property definitions */
execute immediate 'update xdb.xdb$schema s set
s.xmldata.elements = :1,
s.xmldata.simple_type = :2,
s.xmldata.complex_types = :3,
s.xmldata.num_props = :4
where s.xmldata.schema_url =
''http://xmlns.oracle.com/xdb/XDBSchema.xsd'''
using schels, simplelist, complexlist, PN_TOTAL_PROPNUMS;
end;
END;
/
show errors
grant execute on xdb.xdb$bootstrap to public;
-- load xdb.xdb$InitXDBSchema and xdb.xdb$ExtName2IntName
@@dbmsxdbdt.sql
/* ---------------------- INVOKE BOOTSTRAP DRIVER -------------------*/
begin
xdb.xdb$bootstrap.driver();
xdb.xdb$InitXDBSchema();
commit;
end;
/
@?/rdbms/admin/sqlsessend.sql
OHA YOOOO