MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/rdbms/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/rdbms/admin/catxdbdr.sql

Rem
Rem $Header: rdbms/admin/catxdbdr.sql /main/31 2014/02/20 12:46:26 surman Exp $
Rem
Rem catxdbdr.sql
Rem
Rem Copyright (c) 2001, 2014, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      catxdbdr.sql -XDB initialization Data for Resource type
Rem
Rem    DESCRIPTION
Rem      Initialization data (schema for resource) for XDB.
Rem
Rem    NOTES
Rem      Property numbers for resources start at 701.
Rem
Rem
Rem BEGIN SQL_FILE_METADATA
Rem SQL_SOURCE_FILE: rdbms/admin/catxdbdr.sql
Rem SQL_SHIPPED_FILE: rdbms/admin/catxdbdr.sql
Rem SQL_PHASE: CATXDBDR
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    surman      01/23/14 - 13922626: Update SQL metadata
Rem    qyu         03/18/13 - Common start and end scripts
Rem    vhosur      01/16/10 - Fix for bug 9014297
Rem    vhosur      01/04/10 - Fix bug 4259338
Rem    ataracha    10/29/09 - make IsXMLIndexed unmutable
Rem    thbaby      05/11/06 - add IsXMLIndexed Resource attribute
Rem    pnath       03/05/06 - add res attr HasUnresolvedLinks 
Rem    spannala    08/13/04 - changing contents copy type to hexbinary 
Rem    spannala    06/28/04 - adding columns for attrcopy, contents copy 
Rem    najain      05/13/04 - add snapshot
Rem    thbaby      01/24/06 - make versioning-related attributes hidden 
Rem    mrafiq      09/20/05 - merging changes for upgrade/downgrade
Rem    ataracha    04/20/04 - Make OIDList inlined
Rem    thoang      09/23/03 - Add RCList element 
Rem    smalde      05/26/05 - Add Content Size
Rem    spannala    08/13/04 - changing contents copy type to hexbinary 
Rem    spannala    06/28/04 - adding columns for attrcopy, contents copy 
Rem    najain      05/13/04 - add snapshot
Rem    rmurthy     02/17/05 - populate namespace array 
Rem    pnath       01/19/05 - make Locks top level 
Rem    pnath       10/05/04 - Introducing Locks element in Resource schema 
Rem    abagrawa    02/10/04 - Add SBResExtra 
Rem    najain      08/11/03 - add HierSchmBasedRes property
Rem    njalali     01/06/03 - making some props read-only
Rem    abagrawa    01/15/03 - Update insertSimple usage
Rem    najain      07/23/02 - sticky ref support
Rem    rmurthy     06/28/02 - change memtype from XOBD to XOB
Rem    mkrishna    04/03/02 - fix catxdbdr for XMLLob
Rem    rmurthy     03/15/02 - change to xdb$schema_t constructor
Rem    njalali     02/13/02 - adding boolan property VersionHistory
Rem    mkrishna    01/29/02 - fix xdb$resource to be non-PD
Rem    mkrishna    01/28/02 - fix xdb$resource to have ##other namespace
Rem    spannala    12/27/01 - not switching users in xdb install
Rem    njalali     12/19/01 - making versionid and activityid sb4''s
Rem    njalali     12/04/01 - transient properties
Rem    mkrishna    11/01/01 - change xmldata to xmldata
Rem    rmurthy     11/21/01 - specify sql colltype names
Rem    sichandr    11/28/01 - set global flag in bootstrap schemas
Rem    sichandr    10/31/01 - add ID attribute
Rem    nmontoya    11/02/01 - setting max namelen to 4000 for LDAP
Rem    njalali     10/27/01 - using timestamp
Rem    njalali     10/26/01 - changing to date
Rem    nle         10/05/01 - versioning
Rem    nagarwal    08/28/01 - add version attrs
Rem    njalali     10/25/01 - using GUIDs instead of kusr
Rem    njalali     09/26/01 - propagating H_INDEX flags to resource
Rem    sichandr    09/18/01 - support storeVarrayAsTable
Rem    rmurthy     08/26/01 - add support for substitutionGroup, named group
Rem    njalali     08/01/01 - changed ANY types
Rem    rmurthy     08/10/01 - change XDB namespace
Rem    njalali     07/29/01 - Merged njalali_xmlres2
Rem    njalali     07/19/01 - added versatile ANY element
Rem    njalali     07/02/01 - Created
Rem

@@?/rdbms/admin/sqlsessstart.sql

create or replace package xdb.xdb$bootstrapres as
        PN_RES_HIDDEN           CONSTANT INTEGER := 705;
        PN_RES_INVALID          CONSTANT INTEGER := 706;
        PN_RES_VERSIONID        CONSTANT INTEGER := 707;
        PN_RES_ACTIVITYID       CONSTANT INTEGER := 708;
        PN_RES_CREDAT           CONSTANT INTEGER := 709;
        PN_RES_MODDAT           CONSTANT INTEGER := 710;
        PN_RES_AUTHOR           CONSTANT INTEGER := 711;
        PN_RES_DISPNAME         CONSTANT INTEGER := 712;
        PN_RES_RESCOMMENT       CONSTANT INTEGER := 713;
        PN_RES_LANGUAGE         CONSTANT INTEGER := 714;
        PN_RES_CHARSET          CONSTANT INTEGER := 715;
        PN_RES_CONTYPE          CONSTANT INTEGER := 716;
        PN_RES_REFCOUNT         CONSTANT INTEGER := 717;
        PN_RES_LOCKS            CONSTANT INTEGER := 718;
        PN_RES_ACLOID           CONSTANT INTEGER := 719;
        PN_RES_OWNER            CONSTANT INTEGER := 720;
        PN_RES_OWNERID          CONSTANT INTEGER := 721;
        PN_RES_CREATOR          CONSTANT INTEGER := 722;
        PN_RES_CREATORID        CONSTANT INTEGER := 723;
        PN_RES_LASTMODIFIER     CONSTANT INTEGER := 724;
        PN_RES_LASTMODIFIERID   CONSTANT INTEGER := 725;
        PN_RES_SCHELEM          CONSTANT INTEGER := 726;
        PN_RES_ELNUM            CONSTANT INTEGER := 727;
        PN_RES_SCHOID           CONSTANT INTEGER := 728;
        PN_RES_XMLREF           CONSTANT INTEGER := 729;
        PN_RES_XMLLOB           CONSTANT INTEGER := 730;
        PN_RES_FLAGS            CONSTANT INTEGER := 731;
        PN_RES_ACL              CONSTANT INTEGER := 732;
        PN_RES_CONTENTS         CONSTANT INTEGER := 733;
        PN_RES_RESOURCE         CONSTANT INTEGER := 734;
        PN_RES_RESEXTRA         CONSTANT INTEGER := 735;
        PN_RES_CONTENTS_ANY     CONSTANT INTEGER := 736;
        PN_RES_ACL_ANY          CONSTANT INTEGER := 737;
        PN_RES_CONTAINER        CONSTANT INTEGER := 738;
        PN_RES_CUSTRSLV         CONSTANT INTEGER := 739;
        PN_RES_VCRUID           CONSTANT INTEGER := 740;
        PN_RES_PARENTS          CONSTANT INTEGER := 741;
        PN_RES_VERHIS           CONSTANT INTEGER := 742;
        PN_RES_STICKYREF        CONSTANT INTEGER := 743;
        PN_RES_HIERSCHMRES      CONSTANT INTEGER := 744;
        PN_RES_SBRESEXTRA       CONSTANT INTEGER := 745;
        PN_RES_SNAPSHOT         CONSTANT INTEGER := 746;
        PN_RES_ATTRCOPY         CONSTANT INTEGER := 747;
        PN_RES_ATTRCOPY_ANY     CONSTANT INTEGER := 748;
        PN_RES_CTSCOPY          CONSTANT INTEGER := 749;
        PN_RES_NODENUM          CONSTANT INTEGER := 750;
        PN_RES_CONTENTSIZE      CONSTANT INTEGER := 751;
	PN_RES_SIZEONDISK       CONSTANT INTEGER := 752;
	PN_RES_SIZEACCURATE     CONSTANT INTEGER := 753;
        PN_RES_RCLIST           CONSTANT INTEGER := 754;
        PN_RES_OID_LIST         CONSTANT INTEGER := 755;
        PN_RES_ISVERSIONABLE    CONSTANT INTEGER := 756;
        PN_RES_ISCHECKEDOUT     CONSTANT INTEGER := 757;
        PN_RES_ISVERSION        CONSTANT INTEGER := 758;
        PN_RES_ISVCR            CONSTANT INTEGER := 759;
        PN_RES_ISVERSIONHISTORY CONSTANT INTEGER := 760;
        PN_RES_ISWORKSPACE      CONSTANT INTEGER := 761;
        PN_RES_BRANCH           CONSTANT INTEGER := 762;
        PN_RES_CHECKEDOUTBY     CONSTANT INTEGER := 763;
        PN_RES_CHECKEDOUTBYID   CONSTANT INTEGER := 764;
        PN_RES_BASEVERSION      CONSTANT INTEGER := 765;
        PN_RES_RESLOCKS         CONSTANT INTEGER := 766;
        PN_RES_LOCK             CONSTANT INTEGER := 767;
        PN_RES_LOCKOWNER        CONSTANT INTEGER := 768;
        PN_RES_LOCKMODE         CONSTANT INTEGER := 769;
        PN_RES_LOCKTYPE         CONSTANT INTEGER := 770;
        PN_RES_LOCKDEPTH        CONSTANT INTEGER := 771;
        PN_RES_LOCKEXPIRY       CONSTANT INTEGER := 772;
        PN_RES_LOCKTOKEN        CONSTANT INTEGER := 773;
        PN_RES_LOCKNODEID       CONSTANT INTEGER := 774;
      	PN_RES_RESLOCKS_TOPELT  CONSTANT INTEGER := 775;
        PN_RES_HASUNRES         CONSTANT INTEGER := 776;
        PN_RES_ISXMLINDEXED     CONSTANT INTEGER := 777;

        /* When adding new property change the value of PN_RES_MAX_PROP */ 

        PN_RES_MIN_PROP         CONSTANT INTEGER := PN_RES_HIDDEN;
        PN_RES_MAX_PROP         CONSTANT INTEGER := PN_RES_ISXMLINDEXED;
        PN_RES_TOTAL_PROPNUMS   CONSTANT INTEGER := 1 + 
                                       PN_RES_MAX_PROP - PN_RES_MIN_PROP;
        FALSE        CONSTANT RAW(1) := '0';
        TRUE         CONSTANT RAW(1) := '1';

        procedure driver;
end;
/
show errors


create or replace package body xdb.xdb$bootstrapres is

procedure driver is
        choice_list     xdb.xdb$xmltype_ref_list_t;
        ellist          xdb.xdb$xmltype_ref_list_t;
        choice_ellist   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;
        anylist         xdb.xdb$xmltype_ref_list_t;
        schref          ref sys.xmltype;
        oraclename_ref  ref sys.xmltype;
        resmetastr_ref  ref sys.xmltype;
        schelemtype_ref ref sys.xmltype;
        guid_ref        ref sys.xmltype;
        locksraw_ref    ref sys.xmltype;
        conttype_ref    ref sys.xmltype;
        attrcopytype_ref    ref sys.xmltype;
        acltype_ref     ref sys.xmltype;
        resource_ref    ref sys.xmltype;
        rcltype_ref     ref sys.xmltype;
        schema_i        xdb.xdb$schema_t;
	extras_i        sys.xmltypeextra;
        res_colcount    integer;
        lockmodetype_ref  ref sys.xmltype;
        locktypetype_ref  ref sys.xmltype;
        lockdepthtype_ref   ref sys.xmltype;
        lockcomponentseq_ref  ref sys.xmltype;
        lockseq_ref   ref sys.xmltype;
        lock_ref      ref sys.xmltype;
        locktype_ref  ref sys.xmltype; 
        lockstype_ref   ref sys.xmltype;
        toplocksel_ref  ref sys.xmltype;
       
BEGIN
        schema_i := xdb.xdb$schema_t('http://xmlns.oracle.com/xdb/XDBResource.xsd',
              'http://xmlns.oracle.com/xdb/XDBResource.xsd',
              '1.0', 0, null, null, XDB$BOOTSTRAP.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 '8758D485E6004793E034080020B242C6', extras_i, schema_i
                returning into schref;

        /* VARRAY tracking top-level schema elements */
        schels := xdb.xdb$xmltype_ref_list_t();
        schels.extend(2);

        simplelist := xdb.xdb$xmltype_ref_list_t();
        simplelist.extend(8);

        complexlist := xdb.xdb$xmltype_ref_list_t();
        complexlist.extend(7);

        select attributes into res_colcount from all_types
                where type_name in ('XDB$RESOURCE_T') and owner = 'XDB';

/*--------------------------------------------------------------------------*/
/* Simple type definition for "OracleUserName"                              */
/*--------------------------------------------------------------------------*/

        /* LDAP users require a 4000-byte maximum length */
        oraclename_ref := xdb.xdb$bootstrap.xdb$insertSimple(schref, 
               null, 'OracleUserName', 
               xdb.xdb$BOOTSTRAP.TR_STRING,
               null, xdb.xdb$BOOTSTRAP.TD_RESTRICTION, '0',null, null, 
               1, 4000, null, null, null, null, null, null, null);

        simplelist(1) := oraclename_ref;


/*--------------------------------------------------------------------------*/
/* Simple type definition for "ResMetaStr"                                  */
/*--------------------------------------------------------------------------*/

        resmetastr_ref := xdb.xdb$bootstrap.xdb$insertSimple(schref, 
               null, 'ResMetaStr', 
               xdb.xdb$BOOTSTRAP.TR_STRING,
               null, xdb.xdb$BOOTSTRAP.TD_RESTRICTION, '0', null, null, 
               1, 128, null, null, null, null, null, null, null);

        simplelist(2) := resmetastr_ref;

/*--------------------------------------------------------------------------*/
/* Simple type definition for "SchElemType"                                 */
/*--------------------------------------------------------------------------*/

        schelemtype_ref := xdb.xdb$bootstrap.xdb$insertSimple(schref, 
               null, 'SchElemType', 
               xdb.xdb$BOOTSTRAP.TR_STRING,
               null, xdb.xdb$BOOTSTRAP.TD_RESTRICTION, '0', null, null, 
               1, 4000, null, null, null, null, null, null, null);

        simplelist(3) := schelemtype_ref;


/*--------------------------------------------------------------------------*/
/* Simple type definition for "GUID"                                        */
/*--------------------------------------------------------------------------*/

        /*
         * DB users will continue to be stored as KUSRs (4 bytes), whereas
         * LDAP users will be stored as GUIDs (16 bytes).  Doubling these
         * values for hexBinary output, we end up with a range of 8 to 32
         * characters for this simpletype.  We use hexBinary because it 
         * makes it easier to cut-and-paste OIDs into SQL*Plus.
         */
        guid_ref := xdb.xdb$bootstrap.xdb$insertSimple(schref, null, 'GUID', 
               xdb.xdb$BOOTSTRAP.TR_BINARY,
               null, xdb.xdb$BOOTSTRAP.TD_RESTRICTION, '0', null, null, 
               8, 32, null, null, null, null, null, null, null);

        simplelist(4) := guid_ref;


/*--------------------------------------------------------------------------*/
/* Simple type definition for "LocksRaw"                                    */
/*--------------------------------------------------------------------------*/

        locksraw_ref := xdb.xdb$bootstrap.xdb$insertSimple(schref, null, 
               'LocksRaw', xdb.xdb$BOOTSTRAP.TR_BINARY,
               null, xdb.xdb$BOOTSTRAP.TD_RESTRICTION, '0', null, null, 
               0, 2000, null, null, null, null, null, null, null);

        simplelist(5) := locksraw_ref;


/*-------------------------------------------------------------*/
/*                       Locks element starts                  */
/*-------------------------------------------------------------*/

        lockmodetype_ref := xdb.xdb$bootstrap.xdb$insertSimple(schref, 
               null, 'lockModeType', 
               xdb.xdb$BOOTSTRAP.TR_STRING,
               null, xdb.xdb$BOOTSTRAP.TD_RESTRICTION, '0', null, null, 
               null, null, null, null, null, null, null, null, 
               xdb.xdb$enum_values_t('exclusive', 'shared'));

        simplelist(6) := lockmodetype_ref;
        locktypetype_ref := xdb.xdb$bootstrap.xdb$insertSimple(schref, 
               null, 'lockTypeType', 
               xdb.xdb$BOOTSTRAP.TR_STRING,
               null, xdb.xdb$BOOTSTRAP.TD_RESTRICTION, '0', null, null, 
               null, null, null, null, null, null, null, null, 
               xdb.xdb$enum_values_t('read-write', 'write', 'read'));
        simplelist(7) := locktypetype_ref;
        
        lockdepthtype_ref := xdb.xdb$bootstrap.xdb$insertSimple(schref, 
               null, 'lockDepthType', 
               xdb.xdb$BOOTSTRAP.TR_STRING,
               null, xdb.xdb$BOOTSTRAP.TD_RESTRICTION, '0', null, null, 
               null, null, null, null, null, null, null, null, 
                xdb.xdb$enum_values_t('0', 'infinity'));
        simplelist(8) := lockdepthtype_ref;


        ellist := xdb.xdb$xmltype_ref_list_t();
        ellist.extend(5);

        ellist(1) := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_LOCKOWNER,
                      'LockOwner',  xdb.xdb$BOOTSTRAP.TR_STRING,
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, TRUE, FALSE, 
                      null,null, null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      null, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);




        ellist(2) := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_LOCKMODE,
                      'Mode', xdb.xdb$qname('01', 'lockModeType'),
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, TRUE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      lockmodetype_ref, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);


        ellist(3) := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_LOCKTYPE,
                      'Type', xdb.xdb$qname('01', 'lockTypeType'),
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, TRUE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      locktypetype_ref, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);


        ellist(4) := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_LOCKDEPTH,
                      'Depth', xdb.xdb$qname('01', 'lockDepthType'),
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, TRUE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      lockdepthtype_ref, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);



        ellist(5) := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_LOCKEXPIRY,
                      'Expiry', xdb.xdb$qname('00', 'dateTime'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_TIMESTAMP,
                      FALSE, TRUE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_TIMESTAMP, null, null, 
                      null, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);



        choice_ellist := xdb.xdb$xmltype_ref_list_t();
        choice_ellist.extend(2);
         choice_ellist(1) := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_LOCKTOKEN,
                      'Token', xdb.xdb$BOOTSTRAP.TR_STRING,
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING, FALSE, 
                      TRUE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      null, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);

        choice_ellist(2) := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_LOCKNODEID,
                      'NodeId',  xdb.xdb$BOOTSTRAP.TR_STRING,
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, TRUE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      null, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);

        choice_list := xdb.xdb$xmltype_ref_list_t();
        choice_list.extend(1);
        choice_list(1) := xdb.xdb$bootstrap.xdb$insertChoice(schref, 
                          choice_ellist);


        lockcomponentseq_ref := xdb.xdb$bootstrap.xdb$insertSequence(schref,
                                ellist, null, choice_list);

        locktype_ref := xdb.xdb$bootstrap.xdb$insertEmptyComplex();
         xdb.xdb$bootstrap.xdb$updateComplex(locktype_ref, schref, null,
                       'lockType', null, FALSE,
                       null, null, null, null, null, null, null, 
                       lockcomponentseq_ref);

        complexlist(1) := locktype_ref;

--making lock element from lock complex type
         lock_ref := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_LOCK,
                                       'Lock',
                                       xdb.xdb$qname('01', 'lockType'), 
                                       0, 2147483647, null, 
                                       xdb.xdb$BOOTSTRAP.T_XOB, FALSE, 
                                       TRUE, FALSE,
                                       null, null, null,
                                       xdb.xdb$BOOTSTRAP.JT_XMLTYPE,
                                       null, null, locktype_ref,
                                       null,null,
                                       null,null,  
                                       FALSE, null, null, FALSE, TRUE,
                                       TRUE, FALSE, FALSE, 
                                       null, null,
                                       null, 
                                       null,
                                       FALSE, null, null, null,
                                       null, null, null, null, null);

-- making sequence model with only 1 element in the array (lock element) 
        ellist := xdb.xdb$xmltype_ref_list_t();
        ellist.extend(1);

        ellist(1) := lock_ref;

        lockseq_ref    := xdb.xdb$bootstrap.xdb$insertSequence(schref, ellist,
                          null, null);

        lockstype_ref := xdb.xdb$bootstrap.xdb$insertEmptyComplex();
         xdb.xdb$bootstrap.xdb$updateComplex(lockstype_ref, schref, null,
                       'locksType', null, FALSE,
                       null, null, null, null, null, null, null, lockseq_ref);

        complexlist(2) := lockstype_ref;

/*--------------------------------------------------------------------------*/
/* Complex type definition for "ResContentsType"                            */
/*--------------------------------------------------------------------------*/


      anylist := xdb.xdb$xmltype_ref_list_t();
      anylist.extend(1);

      anylist(1) := xdb.xdb$bootstrap.xdb$insertAny(schref, PN_RES_CONTENTS_ANY,
                                  'ContentsAny', null, null, 0, 1, null, 
                                  xdb.xdb$BOOTSTRAP.T_XOB, FALSE, FALSE, FALSE, 
                                  null, null, null,
                                  xdb.xdb$BOOTSTRAP.JT_XMLTYPE, null,
                                  null, null, null, null);

     conttype_ref := xdb.xdb$bootstrap.xdb$insertComplex(schref, null, 
                          'ResContentsType', null, FALSE, null, '0',
                          null, null, null, null, null, null, null, null, null,
                          null, null, null, null, null, null, null, null,
                          anylist);
     complexlist(3) := conttype_ref;


/*--------------------------------------------------------------------------*/
/* Complex type definition for "ResAclType"                                 */
/*--------------------------------------------------------------------------*/


      anylist := xdb.xdb$xmltype_ref_list_t();
      anylist.extend(1);

      anylist(1) := xdb.xdb$bootstrap.xdb$insertAny(schref, PN_RES_ACL_ANY,
                                  'ACLAny', null, null, 0, 1, null, 
                                  xdb.xdb$BOOTSTRAP.T_XOB, FALSE, FALSE, FALSE, 
                                  null, null, null,
                                  xdb.xdb$BOOTSTRAP.JT_XMLTYPE, null,
                                  null, null, null, null);

     acltype_ref := xdb.xdb$bootstrap.xdb$insertComplex(schref, null, 
                          'ResAclType', null, FALSE, null, '0',
                          null, null, null, null, null, null, null, null, null,
                          null, null, null, null, null, null, null, null,
                          anylist);
     complexlist(4) := acltype_ref;


/* Top Level Locks Element */
     toplocksel_ref := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_RESLOCKS_TOPELT,
                      'Locks', xdb.xdb$qname('01', 'locksType'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_XOB,
                      FALSE, TRUE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_XMLTYPE, null, null,
                       lockstype_ref,null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null,null, null, FALSE, null ,null,null,
                      null, null, FALSE,
                      null, null);

/*--------------------------------------------------------------------------*/
/* Complex type definition for "AttrCopyType"                               */
/*--------------------------------------------------------------------------*/


      anylist := xdb.xdb$xmltype_ref_list_t();
      anylist.extend(1);

      anylist(1) := xdb.xdb$bootstrap.xdb$insertAny(schref, PN_RES_ATTRCOPY_ANY,
                                  'AttrCopyAny', null, null, 0, 65535, null, 
                                  xdb.xdb$BOOTSTRAP.T_XOB, FALSE, FALSE, FALSE, 
                                  null, null, null,
                                  xdb.xdb$BOOTSTRAP.JT_XMLTYPE, null,
                                  null, null, null, null);

     attrcopytype_ref := xdb.xdb$bootstrap.xdb$insertComplex(schref, null, 
                          'AttrCopyType', null, FALSE, null, '0',
                          null, null, null, null, null, null, null, null, null,
                          null, null, null, null, null, null, null, null,
                          anylist);
     complexlist(5) := attrcopytype_ref;

/*--------------------------------------------------------------------------*/
/* Complex type definition for "RCList" */
/*--------------------------------------------------------------------------*/

     ellist := xdb.xdb$xmltype_ref_list_t();
     ellist.extend(1);

     ellist(1) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_OID_LIST,
                      'OID', xdb.xdb$BOOTSTRAP.TR_BINARY,
                      1, 65535, '16', xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, FALSE, FALSE, 'OID', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_BYTEARRAY, null, null, null,
                      null, null,
                      null, 1, FALSE, null, null,
                      FALSE, TRUE, TRUE, FALSE, FALSE,
                      null, null, null, null, FALSE, null, null, null, 
                      'XDB$OID_LIST_T', 'XDB', FALSE, null);

     rcltype_ref := xdb.xdb$bootstrap.xdb$insertComplex(schref, null, 
                          'RCListType',
                          null, FALSE, null, '0',
                          null, null, null, null, null, null, null, null, null,
                          null, null, null, null, null, null, ellist, null,
                          null);
     complexlist(6) := rcltype_ref;

/*--------------------------------------------------------------------------*/
/* Complex type definition for "ResourceType" */
/*--------------------------------------------------------------------------*/

      attlist := xdb.xdb$xmltype_ref_list_t();
      attlist.extend(18);

      attlist(1) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_HIDDEN, 'Hidden', 
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               FALSE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, FALSE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      attlist(2) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_INVALID, 'Invalid', 
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               FALSE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, FALSE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      attlist(3) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_VERSIONID, 'VersionID', 
                               xdb.xdb$BOOTSTRAP.TR_INT, 0, 1, 
                               '4', xdb.xdb$BOOTSTRAP.T_INTEGER, FALSE, 
                               FALSE, FALSE, 
                               'VERSIONID', 'INTEGER', null,
                               xdb.xdb$BOOTSTRAP.JT_LONG, null, null, 
                               null, null, null);

      attlist(4) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_ACTIVITYID, 'ActivityID',
                               xdb.xdb$BOOTSTRAP.TR_INT, 0, 1, 
                               '4', xdb.xdb$BOOTSTRAP.T_INTEGER, FALSE, 
                               FALSE, FALSE, 
                               'ACTIVITYID', 'INTEGER', null,
                               xdb.xdb$BOOTSTRAP.JT_LONG, null, null, 
                               null, null, null);

      attlist(5) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_CONTAINER, 'Container',
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               TRUE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, FALSE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      attlist(6) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_CUSTRSLV, 'CustomRslv', 
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               FALSE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, FALSE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      attlist(7) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_VERHIS, 'VersionHistory', 
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               FALSE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, FALSE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      attlist(8) := xdb.xdb$bootstrap.xdb$insertAttr(schref,
                               PN_RES_STICKYREF, 'StickyRef',
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1,
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE,
                               FALSE, FALSE,
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null,
                               null, null, null, null, null, FALSE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      attlist(9) := xdb.xdb$bootstrap.xdb$insertAttr(schref,
                               PN_RES_HIERSCHMRES, 'HierSchmResource',
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1,
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE,
                               FALSE, FALSE,
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null,
                               null, null, null, null, null, TRUE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      attlist(10):= xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_SIZEACCURATE, 'SizeAccurate',
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 0, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               FALSE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, TRUE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      attlist(11) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_ISVERSIONABLE, 'IsVersionable', 
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               FALSE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, TRUE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      attlist(12) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_ISCHECKEDOUT, 'IsCheckedOut', 
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               FALSE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, TRUE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      attlist(13) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_ISVERSION, 'IsVersion', 
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               FALSE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, TRUE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      attlist(14) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_ISVCR, 'IsVCR', 
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               FALSE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, TRUE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

       attlist(15) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_ISVERSIONHISTORY, 'IsVersionHistory', 
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               FALSE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, TRUE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

       attlist(16) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_ISWORKSPACE, 'IsWorkspace', 
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               FALSE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, TRUE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

       attlist(17) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_HASUNRES, 'HasUnresolvedLinks', 
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               FALSE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, FALSE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      attlist(18) := xdb.xdb$bootstrap.xdb$insertAttr(schref, 
                               PN_RES_ISXMLINDEXED, 'IsXMLIndexed', 
                               xdb.xdb$BOOTSTRAP.TR_BOOLEAN, 1, 1, 
                               '1', xdb.xdb$BOOTSTRAP.T_BOOLEAN, FALSE, 
                               TRUE, FALSE, 
                               null, null, null,
                               xdb.xdb$BOOTSTRAP.JT_BOOLEAN, 'false', null, 
                               null, null, null, null, null, TRUE,
                               xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      ellist := xdb.xdb$xmltype_ref_list_t();
      ellist.extend(40);

      ellist(1) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_CREDAT,
                      'CreationDate', xdb.xdb$qname('00', 'dateTime'), 1, 1,
                      null, xdb.xdb$BOOTSTRAP.T_TIMESTAMP, FALSE, FALSE, FALSE, 
                      'CREATIONDATE', 'TIMESTAMP', null,
                      xdb.xdb$BOOTSTRAP.JT_TIMESTAMP, null,
                      null, null, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);

      ellist(2) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_MODDAT,
                      'ModificationDate', xdb.xdb$qname('00', 'dateTime'), 1, 1,
                      null, xdb.xdb$BOOTSTRAP.T_TIMESTAMP, FALSE, FALSE, FALSE, 
                      'MODIFICATIONDATE', 'TIMESTAMP', null,
                      xdb.xdb$BOOTSTRAP.JT_TIMESTAMP, null,
                      null, null, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);

      ellist(3) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_AUTHOR,
                      'Author', xdb.xdb$qname('01', 'ResMetaStr'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, FALSE, FALSE, 
                      'AUTHOR', 'VARCHAR2', null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      resmetastr_ref, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);

      ellist(4) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_DISPNAME,
                      'DisplayName', xdb.xdb$qname('01', 'ResMetaStr'),
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, FALSE, FALSE, 
                      'DISPNAME', 'VARCHAR2', null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      resmetastr_ref, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);

      ellist(5) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_RESCOMMENT,
                      'Comment', xdb.xdb$qname('01', 'ResMetaStr'),
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, FALSE, FALSE, 
                      'RESCOMMENT', 'VARCHAR2', null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      resmetastr_ref, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);

      ellist(6) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_LANGUAGE,
                      'Language', xdb.xdb$qname('01', 'ResMetaStr'),
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, FALSE, FALSE, 
                      'LANGUAGE', 'VARCHAR2', null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, 'en', null, 
                      resmetastr_ref, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);

      ellist(7) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_CHARSET,
                      'CharacterSet', xdb.xdb$qname('01', 'ResMetaStr'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, FALSE, FALSE, 
                      'CHARSET', 'VARCHAR2', null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      resmetastr_ref, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);

      ellist(8) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_CONTYPE,
                      'ContentType', xdb.xdb$qname('01', 'ResMetaStr'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, FALSE, FALSE, 
                      'CONTYPE', 'VARCHAR2', null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      resmetastr_ref, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);

      ellist(9) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_REFCOUNT,
                      'RefCount', xdb.xdb$BOOTSTRAP.TR_NNEGINT,
                      1, 1, '4', xdb.xdb$BOOTSTRAP.T_UNSIGNINT,
                      FALSE, TRUE, FALSE, 
                      'REFCOUNT', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_LONG, null, null, null, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);

      ellist(10) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_LOCKS,
                      'LockBuf',  xdb.xdb$qname('01', 'LocksRaw'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, TRUE, FALSE, 
                      'LOCKS', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_BYTEARRAY, null, null, locksraw_ref,
                      null, null, null, 1, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null);

      ellist(11) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_ACL,
                      'ACL', xdb.xdb$qname('01', 'ResAclType'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_XOB, FALSE, FALSE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_XMLTYPE, null, null, acltype_ref,
                      null, null, null, 0, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, null, null,
                      'oracle.xdb.ResAclType', 
                      'oracle.xdb.ResAclTypeBean', 
                      FALSE, null, null, null, null, null, FALSE, 
                      xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      ellist(12) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_ACLOID,
                      'ACLOID', xdb.xdb$BOOTSTRAP.TR_BINARY,
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, FALSE, FALSE, 
                      'ACLOID', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_BYTEARRAY, null, null, null,
                      null, null, null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null, null, null, TRUE, null, TRUE);

      ellist(13) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_OWNER,
                      'Owner', xdb.xdb$qname('01', 'OracleUserName'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, FALSE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, oraclename_ref,
                      null, null, null, 0, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null, null, null, FALSE, 
                      xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      ellist(14) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_OWNERID,
                      'OwnerID', xdb.xdb$qname('01', 'GUID'),
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, FALSE, FALSE, 
                      'OWNERID', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_BYTEARRAY, null, null, guid_ref,
                      null, null, null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null, null, null, TRUE, null, TRUE);

      ellist(15) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_CREATOR,
                      'Creator', xdb.xdb$qname('01', 'OracleUserName'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, FALSE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, oraclename_ref,
                      null, null, null, 0, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null, null, null, FALSE, 
                      xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      ellist(16) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_CREATORID,
                      'CreatorID', xdb.xdb$qname('01', 'GUID'),
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, FALSE, FALSE, 
                      'CREATORID', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_BYTEARRAY, null, null, guid_ref,
                      null, null, null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null, null, null, TRUE, null, TRUE);

      ellist(17) := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_LASTMODIFIER,
                      'LastModifier', xdb.xdb$qname('01', 'OracleUserName'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, FALSE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, oraclename_ref,
                      null, null, null, 0, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null, null, null, FALSE, 
                      xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      ellist(18) := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_LASTMODIFIERID,
                      'LastModifierID', xdb.xdb$qname('01', 'GUID'),
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, FALSE, FALSE, 
                      'LASTMODIFIERID', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_BYTEARRAY, null, null, guid_ref,
                      null, null, null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null, null, null, TRUE, null, TRUE);

      ellist(19) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_SCHELEM,
                      'SchemaElement', xdb.xdb$qname('01', 'SchElemType'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, FALSE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      schelemtype_ref, null, null, 
                      null, 0, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null, 
                      null, null, FALSE,
                      xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      ellist(20) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_ELNUM,
                      'ElNum', xdb.xdb$BOOTSTRAP.TR_NNEGINT,
                      1, 1, '4', xdb.xdb$BOOTSTRAP.T_INTEGER,
                      FALSE, FALSE, FALSE, 
                      'ELNUM', 'INTEGER', null,
                      xdb.xdb$BOOTSTRAP.JT_LONG, null, null, null, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null, 
                      null, null, TRUE, null, TRUE);

      ellist(21) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_SCHOID,
                      'SchOID', xdb.xdb$BOOTSTRAP.TR_BINARY,
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, FALSE, FALSE, 
                      'SCHOID', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_BYTEARRAY, null, null, null,
                      null, null, null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null, null, null, TRUE, null, TRUE);

      ellist(22) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_CONTENTS,
                      'Contents', xdb.xdb$qname('01', 'ResContentsType'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_XOB, FALSE, FALSE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_XMLTYPE, null, null, conttype_ref,
                      null, null, null, 0, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, null, null,
                      'oracle.xdb.ResContentsType', 
                      'oracle.xdb.ResContentsTypeBean', 
                      FALSE, null, null, null, null, null, FALSE, 
                      xdb.xdb$BOOTSTRAP.TRANSIENT_MANIFESTED, FALSE);

      ellist(23) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_XMLREF,
                      'XMLRef', xdb.xdb$qname('00', 'REF'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_REF, FALSE, TRUE, FALSE, 
                      'XMLREF', 'REF', null,
                      xdb.xdb$BOOTSTRAP.JT_REFERENCE, null, null, 
                      null, null, null, 
                      null, 0, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null,
                      null, null, TRUE, null, FALSE);

      ellist(24) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_XMLLOB,
                      'XMLLob', xdb.xdb$BOOTSTRAP.TR_BINARY,
                      0, 1, null, '71',
                      FALSE, TRUE, FALSE, 
                      'XMLLOB', 'BLOB', null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, null, null, null, 
                      null, 0, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null, 
                      null, null, TRUE, null, FALSE);

      ellist(25) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_FLAGS,
                      'Flags', xdb.xdb$BOOTSTRAP.TR_NNEGINT,
                      1, 1, '4', xdb.xdb$BOOTSTRAP.T_INTEGER,
                      FALSE, TRUE, FALSE, 
                      'FLAGS', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_LONG, null, null, null, null, null, 
                      null, 0, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null,
                      null, null, TRUE, null, TRUE);

      ellist(26) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_VCRUID,
                      'VCRUID', xdb.xdb$qname('01', 'GUID'),
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, FALSE, FALSE, 
                      'VCRUID', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_BYTEARRAY, null, null, guid_ref,
                      null, null, null, 1, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null);

      ellist(27) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_PARENTS, 
                      'Parents', xdb.xdb$BOOTSTRAP.TR_BINARY,
                      0, 1000,null, xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, FALSE, FALSE, 
                      'PARENTS', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_REFERENCE, null, null, null,
                      null, null, null, 0, FALSE, null, null,
                      FALSE, FALSE, TRUE, FALSE, FALSE,
                      null, null, null, null,
                      FALSE, null, null, null, 'XDB$PREDECESSOR_LIST_T','XDB');

      ellist(28) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_SBRESEXTRA,
                      'SBResExtra', xdb.xdb$qname('00', 'REF'),
                      0, 2147483647, null, xdb.xdb$BOOTSTRAP.T_REF, FALSE, TRUE, 
                      FALSE, 'SBRESEXTRA', 'REF', null,
                      xdb.xdb$BOOTSTRAP.JT_REFERENCE, null, null, 
                      null, null, null, 
                      null, 0, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null,
                      'XDB$XMLTYPE_REF_LIST_T', 'XDB', TRUE, null, FALSE);
      ellist(29) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_SNAPSHOT,
                      'Snapshot', xdb.xdb$BOOTSTRAP.TR_BINARY,
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, TRUE, FALSE, 
                      'SNAPSHOT', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_BYTEARRAY, null, null, null, 
		      null, null, null, 0, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null, 
                      null, null, TRUE, null, TRUE);

      ellist(30) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_ATTRCOPY,
               'AttrCopy', xdb.xdb$qname('01', 'AttrCopyType'),
               0, /* minoccurs */
               1, null, xdb.xdb$BOOTSTRAP.T_XOB, FALSE, TRUE, /* mutable */
               FALSE, 'ATTRCOPY', 'BLOB', null,
               xdb.xdb$BOOTSTRAP.JT_XMLTYPE, /* java_type */
               null, null, attrcopytype_ref, null, null,  /* propref_ref */
               null, 0, FALSE, null, null,  /* block */
               FALSE, FALSE, TRUE, FALSE, FALSE,/* maintain_dom */
               null, null, null, null, FALSE,  /* global */
               null, null, null, null, null, /* sqlcollschema */
               TRUE, null, TRUE);

      ellist(31) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_CTSCOPY,
                      'CtsCopy', xdb.xdb$BOOTSTRAP.TR_BINARY, 0, 1, null, '71',
                      FALSE, TRUE, FALSE, 'CTSCOPY', 'BLOB', null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, null, null,
                      null, null, 1, FALSE, null, null, FALSE, FALSE, TRUE,
                      FALSE, FALSE, null, null, null, null, FALSE, null, null,
                      null, null, null, TRUE, null, FALSE);


      ellist(32) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_NODENUM,
                      'NodeNum', xdb.xdb$BOOTSTRAP.TR_BINARY,
                      1, 1, null, xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, TRUE, FALSE, 
                      'NODENUM', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_BYTEARRAY, null, null, null, 
		      null, null, null, 0, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, FALSE, null, null, null, 
                      null, null, TRUE, null, TRUE);

      ellist(33) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_CONTENTSIZE,
                      'ContentSize', xdb.xdb$BOOTSTRAP.TR_INT,
                      0, 1, '8', xdb.xdb$BOOTSTRAP.T_INTEGER, FALSE, FALSE,
                      FALSE, null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_LONG, null, null, 
                      null, null, null, 
                      null, 0, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, 
                      FALSE, null, null, null, null, null, TRUE, 
                      xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      ellist(34) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_SIZEONDISK,
                      'SizeOnDisk', xdb.xdb$BOOTSTRAP.TR_NNEGINT,
                      0, 1, '8', xdb.xdb$BOOTSTRAP.T_INTEGER, FALSE, FALSE,
                      FALSE, 'SIZEONDISK', 'INTEGER', null,
                      xdb.xdb$BOOTSTRAP.JT_LONG, null, null, 
                      null, null, null, 
                      null, 0, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null, 
                      FALSE, null, null, null, null, null, TRUE, null, TRUE);

      ellist(35) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_RCLIST,
                      'RCList', xdb.xdb$qname('01', 'RCListType'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_XOB, FALSE, FALSE, 
                      FALSE, 'RCLIST', 'XDB$RCLIST_T', 'XDB',
                      xdb.xdb$BOOTSTRAP.JT_XMLTYPE, null, null, 
                      rcltype_ref, null, null, null, 
                      1, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      FALSE, null, 'oracle.xdb.RCList', 
                      'oracle.xdb.RCListBean', TRUE, null, null, null,
                      null, null, TRUE, null, TRUE);
       
        ellist(36) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_BRANCH,
                      'Branch', xdb.xdb$BOOTSTRAP.TR_STRING,
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, FALSE, FALSE, 
                      'BRANCH', 'VARCHAR2', null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, 
                      null, null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null, null, null, FALSE, 
                      xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

        ellist(37) := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_CHECKEDOUTBY,
                      'CheckedOutBy', xdb.xdb$qname('01', 'OracleUserName'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_CSTRING,
                      FALSE, FALSE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_STRING, null, null, oraclename_ref,
                      null, null, null, 0, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null, null, null, FALSE, 
                      xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, FALSE);

      ellist(38) := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_CHECKEDOUTBYID,
                      'CheckedOutByID', xdb.xdb$qname('01', 'GUID'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, FALSE, FALSE, 
                      'CHECKEDOUTBYID', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_BYTEARRAY, null, null, guid_ref,
                      null, null, null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null, null, null, TRUE, null, TRUE);

      ellist(39) := xdb.xdb$bootstrap.xdb$insertElement(schref, 
                      PN_RES_BASEVERSION,
                      'BaseVersion', xdb.xdb$BOOTSTRAP.TR_BINARY,
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_BINARY,
                      FALSE, FALSE, FALSE, 
                      'BASEVERSION', 'RAW', null,
                      xdb.xdb$BOOTSTRAP.JT_BYTEARRAY, null, null, null,
                      null, null, null, 1, FALSE, null, null, 
                      FALSE, TRUE, TRUE, FALSE, FALSE, 
                      null, null, null, null,
                      FALSE, null, null, null, null, null, FALSE, null, FALSE);

        
      ellist(40) := xdb.xdb$bootstrap.xdb$insertElement(schref,
                      PN_RES_RESLOCKS,
                      'Locks', xdb.xdb$qname('01', 'locksType'),
                      0, 1, null, xdb.xdb$BOOTSTRAP.T_XOB,
                      FALSE, TRUE, FALSE, 
                      null, null, null,
                      xdb.xdb$BOOTSTRAP.JT_XMLTYPE, null, null,
                      lockstype_ref,null, null, 
                      null, 1, FALSE, null, null, 
                      FALSE, FALSE, TRUE, FALSE, FALSE, 
                      null, null,null, null, FALSE, null ,null,null,
                      null, null, TRUE,
                      xdb.xdb$BOOTSTRAP.TRANSIENT_GENERATED, null);

      anylist := xdb.xdb$xmltype_ref_list_t();
      anylist.extend(1);

      anylist(1) := xdb.xdb$bootstrap.xdb$insertAny(schref, PN_RES_RESEXTRA,
                                'ResExtra', null, '##other', 0, 65535, null, 
                                xdb.xdb$BOOTSTRAP.T_XOB, FALSE, FALSE, FALSE, 
                                'RESEXTRA', 'CLOB', null,
                                xdb.xdb$BOOTSTRAP.JT_XMLTYPE, null,
                                null, null, null, null);

     resource_ref := xdb.xdb$bootstrap.xdb$insertComplex(schref, 
                          null, 'ResourceType',
                          null, FALSE, null, '0',
                          null, null, null, null, null, null, null, null, null,
                          null, null, null, null, null, null, ellist, attlist,
                          anylist);
     complexlist(7) := resource_ref;

/*--------------------------------------------------------------------------*/
/* "Resource" top-level element */
/*--------------------------------------------------------------------------*/

     schels(1) := xdb.xdb$bootstrap.xdb$insertElement(schref, PN_RES_RESOURCE,
                'Resource', xdb.xdb$qname('01', 'ResourceType'),
                 1, 1, null, xdb.xdb$BOOTSTRAP.T_XOB, FALSE, FALSE, 
                 FALSE, 'RESOURCE', 'XDB$RESOURCE_T', 'XDB', 
                 xdb.xdb$BOOTSTRAP.JT_XMLTYPE, null, null, 
                 resource_ref, null, null, null,
                 res_colcount, FALSE, null, null, 
                 FALSE, FALSE, FALSE, FALSE, FALSE,
                'XDB$RESOURCE', null, 'oracle.xdb.Resource', 
                'oracle.xdb.ResourceBean', TRUE, null, null, null);
     schels(2) := toplocksel_ref;

/*--------------------------------------------------------------------------*/
/* Update schema to have all top-level 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/XDBResource.xsd'''
                using schels, simplelist, complexlist, PN_RES_TOTAL_PROPNUMS;

end;

END;
/
show errors


/***** KGL initialization is invoked internally ******/

/* -------------  INVOKE BOOTSTRAP DRIVER FOR RESOURCE SCHEMA -------------- */

begin
  xdb.xdb$bootstrapres.driver();
  commit;       
end;
/


@?/rdbms/admin/sqlsessend.sql

OHA YOOOO