1 2 3 Previous Next 33 Replies Latest reply: Nov 29, 2010 4:12 PM by mdrake-Oracle Go to original post RSS
      • 30. Re: XMLIndex Value Index on repository
        Marco Gralike
        Intriguing example. The error is probably caused by the reference to http://xmlns.example.com/xdb/pm/contentLocator, although I have no clue why. It shouldn't have happened. You could disable query rewrite via the hint for those problem statements and see if it is triggered (indirectly) by the XQuery operators/functions yes|no. Somehow some "ACL" mechanisms were triggered? Maybe by the "ALTER SESSION SET XML_DB_EVENTS = ENABLE" statement ?
        • 31. Re: XMLIndex Value Index on repository
          811001
          Thank you! This is a brilliant example. It's definitely good to have this as a reference to work around this issue. I think I will implement something along these lines until Oracle is sorting this out. The only disappointing thing IMHO is that sth. like this is necessary at all. The technology is basically there and if it worked you could just save your XML documents via WebDAV and query them however you want with a simple statement and blazingly high speed. This would be amazing. Really unfortunate that it just doesnt work that way right now because of this little stumbling block. But we can hope for the future...
          • 32. Re: XMLIndex Value Index on repository
            mdrake-Oracle
            After switching to an AL32UTF8 characater set database and fixing my XPATH expressions this now works as expected..
            SQL> select RES, OBJECT_VALUE
              2    from RESOURCE_VIEW, MY_XML_CONTENT x
              3   where XMLCAST
              4         (
              5           XMLQuery
              6           (
              7             'declare namespace r = "http://xmlns.oracle.com/xdb/XDBResource.xsd"; (: :)
              8              declare namespace l = "http://xmlns.example.com/xdb/pm/contentLocator"; (: :)
              9              /r:Resource/r:Contents/l:locator/l:OBJECTID'
             10              passing RES returning content
             11           ) as RAW(16)
             12         ) = x.OBJECT_ID
             13  /
            <Resource xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd">
              <CreationDate>2010-11-28T15:50:51.551000</CreationDate>
              <ModificationDate>2010-11-28T15:50:51.551000</ModificationDate>
              <DisplayName>test.xml</DisplayName>
              <Language>en-US</Language>
              <CharacterSet>UTF-8</CharacterSet>
              <ContentType>text/xml</ContentType>
              <RefCount>1</RefCount>
            </Resource>
            <Hello>World</Hello>
            
            
            
            Execution Plan
            ----------------------------------------------------------
            Plan hash value: 3641474302
            
            -----------------------------------------------------------------------------------------------
            | Id  | Operation                    | Name           | Rows  | Bytes | Cost (%CPU)| Time     |
            -----------------------------------------------------------------------------------------------
            |   0 | SELECT STATEMENT             |                |     1 |  2142 |     4   (0)| 00:00:01 |
            |   1 |  NESTED LOOPS                |                |     1 |  2142 |     4   (0)| 00:00:01 |
            |   2 |   TABLE ACCESS BY INDEX ROWID| XDB$RESOURCE   |     1 |   130 |     3   (0)| 00:00:01 |
            |*  3 |    DOMAIN INDEX              | XDBHI_IDX      |       |       |            |          |
            |   4 |   TABLE ACCESS BY INDEX ROWID| MY_XML_CONTENT |     1 |  2012 |     1   (0)| 00:00:01 |
            |*  5 |    INDEX UNIQUE SCAN         | SYS_C0011268   |     1 |       |     0   (0)| 00:00:01 |
            -----------------------------------------------------------------------------------------------
            
            Predicate Information (identified by operation id):
            ---------------------------------------------------
            
               3 - access("XDB"."UNDER_PATH"(SYS_MAKEXML('8758D485E6004793E034080020B242C6',734,"XM
                          LEXTRA","XMLDATA"),'/',8888)=1)
               5 - access("X"."OBJECT_ID"=CAST(EXTRACTVALUE(SYS_MAKEXML('8758D485E6004793E034080020
                          B242C6',734,"P"."XMLEXTRA","P"."XMLDATA"),'/r:Resource/r:Contents/l:locator/l:OBJECTID'
                          ,' xmlns:r="http://xmlns.oracle.com/xdb/XDBResource.xsd"
                          xmlns:l="http://xmlns.example.com/xdb/pm/contentLocator"',0,0,536872961,1086325248) AS
                          RAW(16)        ))
            
            Note
            -----
               - dynamic sampling used for this statement (level=2)
            
            SQL> select RES, OBJECT_VALUE
              2    from RESOURCE_VIEW, MY_XML_CONTENT x
              3   where XMLCAST
              4         (
              5           XMLQuery
              6           (
              7             'declare namespace r = "http://xmlns.oracle.com/xdb/XDBResource.xsd"; (: :)
              8              declare namespace l = "http://xmlns.example.com/xdb/pm/contentLocator"; (: :)
              9              /r:Resource/r:Contents/l:locator/l:OBJECTID'
             10              passing RES returning content
             11           ) as RAW(16)
             12         ) = x.OBJECT_ID
             13     and XMLExists('/Hello[.="World"]' passing OBJECT_VALUE)
             14  /
            <Resource xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd">
              <CreationDate>2010-11-28T15:50:51.551000</CreationDate>
              <ModificationDate>2010-11-28T15:50:51.551000</ModificationDate>
              <DisplayName>test.xml</DisplayName>
              <Language>en-US</Language>
              <CharacterSet>UTF-8</CharacterSet>
              <ContentType>text/xml</ContentType>
              <RefCount>1</RefCount>
            </Resource>
            <Hello>World</Hello>
            
            
            
            Execution Plan
            ----------------------------------------------------------
            Plan hash value: 1758396860
            
            ------------------------------------------------------------------------------------------------------------------
            | Id  | Operation                       | Name                           | Rows  | Bytes | Cost (%CPU)| Time     |
            ------------------------------------------------------------------------------------------------------------------
            |   0 | SELECT STATEMENT                |                                |     1 |  5977 |     4   (0)| 00:00:01 |
            |   1 |  NESTED LOOPS                   |                                |     1 |  5977 |     4   (0)| 00:00:01 |
            |   2 |   MERGE JOIN CARTESIAN          |                                |     1 |  3953 |     3   (0)| 00:00:01 |
            |   3 |    TABLE ACCESS BY INDEX ROWID  | XDB$RESOURCE                   |     1 |   130 |     3   (0)| 00:00:01 |
            |*  4 |     DOMAIN INDEX                | XDBHI_IDX                      |       |       |            |          |
            |   5 |    BUFFER SORT                  |                                |     1 |  3823 |     0   (0)| 00:00:01 |
            |   6 |     SORT UNIQUE                 |                                |     1 |  3823 |     0   (0)| 00:00:01 |
            |*  7 |      TABLE ACCESS BY INDEX ROWID| SYS76537_MY_XML_IND_PATH_TABLE |     1 |  3823 |     0   (0)| 00:00:01 |
            |*  8 |       INDEX RANGE SCAN          | SYS76537_MY_XML_IND_VALUE_IX   |     1 |       |     0   (0)| 00:00:01 |
            |*  9 |   TABLE ACCESS BY USER ROWID    | MY_XML_CONTENT                 |     1 |  2024 |     1   (0)| 00:00:01 |
            ------------------------------------------------------------------------------------------------------------------
            
            Predicate Information (identified by operation id):
            ---------------------------------------------------
            
               4 - access("XDB"."UNDER_PATH"(SYS_MAKEXML('8758D485E6004793E034080020B242C6',734,"XMLEXTRA","XMLDATA"),
                          '/',8888)=1)
               7 - filter("SYS_P0"."VALUE"='World' AND "SYS_P0"."PATHID"=HEXTORAW('11F4')  AND
                          SYS_XMLI_LOC_ISNODE("SYS_P0"."LOCATOR")=1)
               8 - access(SUBSTRB("VALUE",1,1599)='World')
               9 - filter("X"."OBJECT_ID"=CAST(EXTRACTVALUE(SYS_MAKEXML('8758D485E6004793E034080020B242C6',734,"P"."XM
                          LEXTRA","P"."XMLDATA"),'/r:Resource/r:Contents/l:locator/l:OBJECTID','
                          xmlns:r="http://xmlns.oracle.com/xdb/XDBResource.xsd"
                          xmlns:l="http://xmlns.example.com/xdb/pm/contentLocator"',0,0,536872961,1086325248) AS RAW(16)        ))
            
            Note
            -----
               - dynamic sampling used for this statement (level=2)
               - Unoptimized XML construct detected (enable XMLOptimizationCheck for more information)
            • 33. Re: XMLIndex Value Index on repository
              mdrake-Oracle
              After discussing with development, here's an cleaner solution that makes use of the XMLRef capability normally used with Schema based XML...
              C:\xdb\examples\Events>sqlplus /nolog @outOfLineXMLRef
              
              SQL*Plus: Release 11.2.0.2.0 Production on Mon Nov 29 14:09:28 2010
              
              Copyright (c) 1982, 2010, Oracle.  All rights reserved.
              
              SQL> spool outOfLineContent.log
              SQL>
              SQL> --
              SQL> connect / as sysdba
              Connected.
              SQL> --
              SQL> def USERNAME=EVENTS
              SQL> --
              SQL> def PASSWORD=&USERNAME
              SQL> --
              SQL> VAR UPLOAD_FOLDER  VARCHAR2(700);
              SQL> VAR TARGET_FOLDER  VARCHAR2(700);
              SQL> VAR RESCONFIG_PATH VARCHAR2(700);
              SQL> VAR LOGFILE_PATH   VARCHAR2(700);
              SQL> --
              SQL> begin
                2    :TARGET_FOLDER  := '/public/uploadExample';
                3    :RESCONFIG_PATH := :TARGET_FOLDER || '/ResConfig.xml';
                4    :UPLOAD_FOLDER  := :TARGET_FOLDER || '/uploadFolder';
                5  end;
                6  /
              
              PL/SQL procedure successfully completed.
              
              SQL> select path, dbms_RESConfig.getResConfigPaths(path)
                2    from path_view
                3   where under_path(res,:TARGET_FOLDER) = 1
                4  /
              
              PATH
              --------------------------------------------------------------------------------
              DBMS_RESCONFIG.GETRESCONFIGPATHS(PATH)
              --------------------------------------------------------------------------------
              /public/uploadExample/ResConfig.xml
              XDB$STRING_LIST_T()
              
              /public/uploadExample/uploadFolder
              XDB$STRING_LIST_T('/public/uploadExample/ResConfig.xml')
              
              
              SQL> --
              SQL> ALTER SESSION SET XML_DB_EVENTS = DISABLE
                2  /
              
              Session altered.
              
              SQL> --
              SQL> begin
                2    if (DBMS_XDB.EXISTSRESOURCE(:UPLOAD_FOLDER)) then
                3      DBMS_XDB.DELETERESOURCE(:UPLOAD_FOLDER,DBMS_XDB.DELETE_RECURSIVE);
                4    end if;
                5    commit;
                6
                7    if (DBMS_XDB.EXISTSRESOURCE(:RESCONFIG_PATH)) then
                8      DBMS_XDB.DELETERESOURCE(:RESCONFIG_PATH);
                9    end if;
               10
               11    if (DBMS_XDB.EXISTSRESOURCE(:TARGET_FOLDER)) then
               12      DBMS_XDB.DELETERESOURCE(:TARGET_FOLDER,DBMS_XDB.DELETE_RECURSIVE);
               13    end if;
               14  end;
               15  /
              
              PL/SQL procedure successfully completed.
              
              SQL> --
              SQL> ALTER SESSION SET XML_DB_EVENTS = ENABLE
                2  /
              
              Session altered.
              
              SQL> --
              SQL> select path, dbms_RESConfig.getResConfigPaths(path)
                2    from path_view
                3   where under_path(res,:TARGET_FOLDER) = 1
                4  /
              
              no rows selected
              
              SQL> DROP USER &USERNAME CASCADE
                2  /
              old   1: DROP USER &USERNAME CASCADE
              new   1: DROP USER EVENTS CASCADE
              
              User dropped.
              
              SQL> grant connect, resource to &USERNAME identified by &PASSWORD
                2  /
              old   1: grant connect, resource to &USERNAME identified by &PASSWORD
              new   1: grant connect, resource to EVENTS identified by EVENTS
              
              Grant succeeded.
              
              SQL> grant XDB_SET_INVOKER, ALTER SESSION to &USERNAME
                2  /
              old   1: grant XDB_SET_INVOKER, ALTER SESSION to &USERNAME
              new   1: grant XDB_SET_INVOKER, ALTER SESSION to EVENTS
              
              Grant succeeded.
              
              SQL> grant all on XDB.XDB$RESOURCE to &USERNAME
                2  /
              old   1: grant all on XDB.XDB$RESOURCE to &USERNAME
              new   1: grant all on XDB.XDB$RESOURCE to EVENTS
              
              Grant succeeded.
              
              SQL> --
              SQL> connect &USERNAME/&PASSWORD
              Connected.
              SQL> --
              SQL> DEF LOGFILE_PATH = ""
              SQL> --
              SQL> column LOGFILE_PATH NEW_VALUE LOGFILE_PATH
              SQL> --
              SQL> def RESCONFIG_PATH = ""
              SQL> --
              SQL> column RESCONFIG_PATH NEW_VALUE RESCONFIG_PATH
              SQL> --
              SQL> select :RESCONFIG_PATH RESCONFIG_PATH
                2    from DUAL
                3  /
              
              RESCONFIG_PATH
              --------------------------------------------------------------------------------
              /public/uploadExample/ResConfig.xml
              
              SQL> VAR RESCONFIG CLOB
              SQL> --
              SQL> begin
                2    :RESCONFIG :=
                3  '<ResConfig xmlns="http://xmlns.oracle.com/xdb/XDBResConfig.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/xdb/XDBResConfig.xsd http://xmlns.oracle
                4    <event-listeners set-invoker="true">
                5      <listener>
                6        <description>CUSTOM CONTENT STORE</description>
                7        <schema>&USERNAME</schema>
                8        <source>CUSTOM_CONTENT_EVENTS</source>
                9        <language>PL/SQL</language>
               10        <events>
               11          <Pre-Create/>
               12        </events>
               13                          <pre-condition>
               14          <existsNode>
               15            <XPath>/r:Resource[r:ContentType="text/xml"]</XPath>
               16            <namespace>xmlns:r="http://xmlns.oracle.com/xdb/XDBResource.xsd"</namespace>
               17          </existsNode>
               18        </pre-condition>
               19      </listener>
               20    </event-listeners>
               21  <defaultChildConfig>
               22      <configuration>
               23        <path>' || :RESCONFIG_PATH || '</path>
               24      </configuration>
               25    </defaultChildConfig>
               26  </ResConfig>';
               27
               28  end;
               29  /
              old   7:       <schema>&USERNAME</schema>
              new   7:       <schema>EVENTS</schema>
              
              PL/SQL procedure successfully completed.
              
              SQL> set pages 0 lines 256 long 1000000
              SQL> --
              SQL> column RESCONFIG format A256
              SQL> --
              SQL> select :RESCONFIG RESCONFIG
                2    from DUAL
                3  /
              <ResConfig xmlns="http://xmlns.oracle.com/xdb/XDBResConfig.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/xdb/XDBResConfig.xsd http://xmlns.oracle.com/x
                <event-listeners set-invoker="true">
                  <listener>
                    <description>CUSTOM CONTENT STORE</description>
                    <schema>EVENTS</schema>
                    <source>CUSTOM_CONTENT_EVENTS</source>
                    <language>PL/SQL</language>
                    <events>
                      <Pre-Create/>
                    </events>
                                      <pre-condition>
                      <existsNode>
                        <XPath>/r:Resource[r:ContentType="text/xml"]</XPath>
                        <namespace>xmlns:r="http://xmlns.oracle.com/xdb/XDBResource.xsd"</namespace>
                      </existsNode>
                    </pre-condition>
                  </listener>
                </event-listeners>
              <defaultChildConfig>
                  <configuration>
                    <path>/public/uploadExample/ResConfig.xml</path>
                  </configuration>
                </defaultChildConfig>
              </ResConfig>
              
              
              SQL> --
              SQL> create or replace package CUSTOM_CONTENT_MANAGER
                2  as
                3    function storeXML(P_XML_CONTENT XMLTYPE) return REF XMLType;
                4  end;
                5  /
              
              Package created.
              
              SQL> show errors
              No errors.
              SQL> --
              SQL> grant execute on CUSTOM_CONTENT_MANAGER to public
                2  /
              
              Grant succeeded.
              
              SQL> create or replace package CUSTOM_CONTENT_EVENTS
                2  as
                3    procedure handlePreCreate(P_EVENT dbms_xevent.XDBRepositoryEvent);
                4  end;
                5  /
              
              Package created.
              
              SQL> --
              SQL> show errors
              No errors.
              SQL> --
              SQL> grant execute on CUSTOM_CONTENT_EVENTS to public
                2  /
              
              Grant succeeded.
              
              SQL> create or replace package body CUSTOM_CONTENT_EVENTS
                2  as
                3  --
                4  procedure storeXMLContent(P_RESOURCE IN OUT DBMS_XDBRESOURCE.xdbResource)
                5  as
                6    V_XML_CONTENT       XMLType;
                7    V_LOCATOR           REF XMLType;
                8  begin
                9    V_XML_CONTENT :=  DBMS_XDBRESOURCE.getContentXML(P_RESOURCE);
               10    if (V_XML_CONTENT is not null) then
               11      V_LOCATOR := CUSTOM_CONTENT_MANAGER.storeXML(V_XML_CONTENT);
               12      DBMS_XDBRESOURCE.SETCONTENT(P_RESOURCE,V_LOCATOR);
               13    end if;
               14  end;
               15  --
               16  procedure handlePreCreate(P_EVENT dbms_xevent.XDBRepositoryEvent)
               17  as
               18    V_RESOURCE_PATH     VARCHAR2(700);
               19    V_RESOURCE          DBMS_XDBRESOURCE.xdbResource;
               20  begin
               21    V_RESOURCE_PATH     := DBMS_XEVENT.getName(DBMS_XEVENT.getPath(P_EVENT));
               22    V_RESOURCE          := DBMS_XEVENT.getResource(P_EVENT);
               23    storeXMLContent(V_RESOURCE);
               24  end;
               25  --
               26  end;
               27  /
              
              Package body created.
              
              SQL> show errors
              No errors.
              SQL> --
              SQL> create table MY_XML_CONTENT of XMLTYPE
                2  XMLTYPE STORE AS SECUREFILE BINARY XML
                3  /
              
              Table created.
              
              SQL> create index MY_XML_INDEX
                2      on MY_XML_CONTENT(OBJECT_VALUE)
                3         indextype is XDB.XMLINDEX
                4  /
              
              Index created.
              
              SQL> create or replace package body CUSTOM_CONTENT_MANAGER
                2  as
                3  --
                4  function storeXML(P_XML_CONTENT XMLType)
                5  return REF XMLTYPE
                6  as
                7    V_XMLREF REF XMLTYPE;
                8  begin
                9    insert into MY_XML_CONTENT xml
               10           values (P_XML_CONTENT)
               11           returning REF(xml) into V_XMLREF;
               12    return V_XMLREF;
               13  end;
               14  --
               15  end;
               16  /
              
              Package body created.
              
              SQL> show errors
              No errors.
              SQL> --
              SQL> grant execute on CUSTOM_CONTENT_EVENTS to public
                2  /
              
              Grant succeeded.
              
              SQL> declare
                2    V_RESULT BOOLEAN;
                3  begin
                4    V_RESULT := DBMS_XDB.CREATEFOLDER(:TARGET_FOLDER);
                5    V_RESULT := DBMS_XDB.CREATEFOLDER(:UPLOAD_FOLDER);
                6    V_RESULT := DBMS_XDB.CREATERESOURCE(:RESCONFIG_PATH,:RESCONFIG);
                7    COMMIT;
                8
                9    dbms_resconfig.addResConfig(:UPLOAD_FOLDER,:RESCONFIG_PATH,null);
               10  end;
               11  /
              
              PL/SQL procedure successfully completed.
              
              SQL> select XMLSERIALIZE(DOCUMENT XDBURITYPE(:RESCONFIG_PATH).getXML() as CLOB INDENT SIZE = 2)  RESCONFIG
                2    from DUAL
                3  /
              <ResConfig xmlns="http://xmlns.oracle.com/xdb/XDBResConfig.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/xdb/XDBResConfig.xsd http://xmlns.oracle.com/x
                <event-listeners set-invoker="true">
                  <listener>
                    <description>CUSTOM CONTENT STORE</description>
                    <schema>EVENTS</schema>
                    <source>CUSTOM_CONTENT_EVENTS</source>
                    <language>PL/SQL</language>
                    <events>
                      <Pre-Create/>
                    </events>
                    <pre-condition>
                      <existsNode>
                        <XPath>/r:Resource[r:ContentType=&quot;text/xml&quot;]</XPath>
                        <namespace>xmlns:r=&quot;http://xmlns.oracle.com/xdb/XDBResource.xsd&quot;</namespace>
                      </existsNode>
                    </pre-condition>
                  </listener>
                </event-listeners>
                <defaultChildConfig>
                  <configuration/>
                </defaultChildConfig>
              </ResConfig>
              
              
              SQL> select path, dbms_RESConfig.getResConfigPaths(path)
                2    from path_view
                3   where under_path(res,:TARGET_FOLDER) = 1
                4  /
              /public/uploadExample/ResConfig.xml
              XDB$STRING_LIST_T()
              
              /public/uploadExample/uploadFolder
              XDB$STRING_LIST_T('/public/uploadExample/ResConfig.xml')
              
              
              SQL> set long 100000 pages 0 lines 256
              SQL> column LOG format A250
              SQL> --
              SQL> select OBJECT_VALUE
                2    from MY_XML_CONTENT
                3  /
              
              no rows selected
              
              SQL> declare
                2    V_RESULT BOOLEAN;
                3    V_XMLDOC_PATH VARCHAR2(700) := :UPLOAD_FOLDER || '/test.xml';
                4  begin
                5    V_RESULT := DBMS_XDB.CREATERESOURCE(V_XMLDOC_PATH,XMLTYPE('<Hello>World</Hello>'));
                6    COMMIT;
                7  end;
                8  /
              
              PL/SQL procedure successfully completed.
              
              SQL> select OBJECT_ID, OBJECT_VALUE
                2    from MY_XML_CONTENT
                3  /
              6B308B81B06D4215A0BBBA686086D954
              <Hello>World</Hello>
              
              
              SQL> select xmlserialize(DOCUMENT RES as CLOB INDENT SIZE = 2)
                2    from RESOURCE_VIEW
                3   where equals_path(RES,:UPLOAD_FOLDER || '/test.xml') = 1
                4  /
              <Resource xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd" Hidden="false" Inv
              alid="false" Container="false" CustomRslv="false" VersionHistory="false" StickyR
              ef="true">
                <CreationDate>2010-11-29T22:09:31.245000</CreationDate>
                <ModificationDate>2010-11-29T22:09:31.245000</ModificationDate>
                <DisplayName>test.xml</DisplayName>
                <Language>en-US</Language>
                <CharacterSet>UTF-8</CharacterSet>
                <ContentType>text/xml</ContentType>
                <RefCount>1</RefCount>
                <ACL>
                  <acl description="Public:All privileges to PUBLIC" xmlns="http://xmlns.oracl
              e.com/xdb/acl.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch
              emaLocation="http://xmlns.oracle.com/xdb/acl.xsd                           http:
              //xmlns.oracle.com/xdb/acl.xsd" shared="true">
                    <ace>
                      <grant>true</grant>
                      <principal>PUBLIC</principal>
                      <privilege>
                        <all/>
                      </privilege>
                    </ace>
                  </acl>
                </ACL>
                <Owner>EVENTS</Owner>
                <Creator>EVENTS</Creator>
                <LastModifier>EVENTS</LastModifier>
                <Contents>
                  <Hello xmlns="">World</Hello>
                </Contents>
              </Resource>
              
              
              SQL> set autotrace on explain lines 256 trimspool on
              SQL> --
              SQL> select object_value
                2    from MY_XML_CONTENT
                3   where XMLExists('/Hello[.="World"]' passing OBJECT_VALUE)
                4  /
              <Hello>World</Hello>
              
              
              Execution Plan
              ----------------------------------------------------------
              Plan hash value: 3664165205
              
              ----------------------------------------------------------------------------------------------------------------
              | Id  | Operation                     | Name                           | Rows  | Bytes | Cost (%CPU)| Time     |
              ----------------------------------------------------------------------------------------------------------------
              |   0 | SELECT STATEMENT              |                                |     1 |  5837 |     3  (34)| 00:00:01 |
              |   1 |  NESTED LOOPS                 |                                |     1 |  5837 |     3  (34)| 00:00:01 |
              |   2 |   SORT UNIQUE                 |                                |     1 |  3823 |     1   (0)| 00:00:01 |
              |*  3 |    TABLE ACCESS BY INDEX ROWID| SYS79815_MY_XML_IND_PATH_TABLE |     1 |  3823 |     1   (0)| 00:00:01 |
              |*  4 |     INDEX RANGE SCAN          | SYS79815_MY_XML_IND_VALUE_IX   |     1 |       |     1   (0)| 00:00:01 |
              |   5 |   TABLE ACCESS BY USER ROWID  | MY_XML_CONTENT                 |     1 |  2014 |     1   (0)| 00:00:01 |
              ----------------------------------------------------------------------------------------------------------------
              
              Predicate Information (identified by operation id):
              ---------------------------------------------------
              
                 3 - filter("SYS_P0"."VALUE"='World' AND "SYS_P0"."PATHID"=HEXTORAW('11F4')  AND
                            SYS_XMLI_LOC_ISNODE("SYS_P0"."LOCATOR")=1)
                 4 - access(SUBSTRB("VALUE",1,1599)='World')
              
              Note
              -----
                 - dynamic sampling used for this statement (level=2)
              
              SQL> select ANY_PATH, RES,  r.RES.getClobVal(), OBJECT_VALUE
                2    from RESOURCE_VIEW r, MY_XML_CONTENT x
                3   where extractValue(res,'/Resource/XMLRef') = ref(x)
                4  /
              /public/uploadExample/uploadFolder/test.xml
              <Resource xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd">
                <CreationDate>2010-11-29T22:09:31.245000</CreationDate>
                <ModificationDate>2010-11-29T22:09:31.245000</ModificationDate>
                <DisplayName>test.xml</DisplayName>
                <Language>en-US</Language>
                <CharacterSet>UTF-8</CharacterSet>
                <ContentType>text/xml</ContentType>
                <RefCount>1</RefCount>
              </Resource>
              <Resource xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd" Hidden="false" Inv
              alid="false" Container="false" CustomRslv="false" VersionHistory="false" StickyR
              ef="true">
                <CreationDate>2010-11-29T22:09:31.245000</CreationDate>
                <ModificationDate>2010-11-29T22:09:31.245000</ModificationDate>
                <DisplayName>test.xml</DisplayName>
                <Language>en-US</Language>
                <CharacterSet>UTF-8</CharacterSet>
                <ContentType>text/xml</ContentType>
                <RefCount>1</RefCount>
                <ACL>
                  <acl description="Public:All privileges to PUBLIC" xmlns="http://xmlns.oracl
              e.com/xdb/acl.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch
              emaLocation="http://xmlns.oracle.com/xdb/acl.xsd                           http:
              //xmlns.oracle.com/xdb/acl.xsd" shared="true">
                    <ace>
                      <grant>true</grant>
                      <principal>PUBLIC</principal>
                      <privilege>
                        <all/>
                      </privilege>
                    </ace>
                  </acl>
                </ACL>
                <Owner>EVENTS</Owner>
                <Creator>EVENTS</Creator>
                <LastModifier>EVENTS</LastModifier>
                <Contents>
                  <Hello xmlns="">World</Hello>
                </Contents>
              </Resource>
              <Hello>World</Hello>
              
              
              
              Execution Plan
              ----------------------------------------------------------
              Plan hash value: 1475290072
              
              -----------------------------------------------------------------------------------------------
              | Id  | Operation                    | Name           | Rows  | Bytes | Cost (%CPU)| Time     |
              -----------------------------------------------------------------------------------------------
              |   0 | SELECT STATEMENT             |                |     1 |  2142 |     4   (0)| 00:00:01 |
              |   1 |  NESTED LOOPS                |                |     1 |  2142 |     4   (0)| 00:00:01 |
              |*  2 |   TABLE ACCESS BY INDEX ROWID| XDB$RESOURCE   |     1 |   130 |     3   (0)| 00:00:01 |
              |*  3 |    DOMAIN INDEX              | XDBHI_IDX      |       |       |            |          |
              |   4 |   TABLE ACCESS BY INDEX ROWID| MY_XML_CONTENT |     1 |  2012 |     1   (0)| 00:00:01 |
              |*  5 |    INDEX UNIQUE SCAN         | SYS_C0011420   |     1 |       |     0   (0)| 00:00:01 |
              -----------------------------------------------------------------------------------------------
              
              Predicate Information (identified by operation id):
              ---------------------------------------------------
              
                 2 - filter("SYS_NC00024$" IS NOT NULL)
                 3 - access("XDB"."UNDER_PATH"(SYS_MAKEXML('8758D485E6004793E034080020B242C6',734,"XM
                            LEXTRA","XMLDATA"),'/',8888)=1)
                 5 - access("SYS_NC00024$"="X"."SYS_NC_OID$")
              
              Note
              -----
                 - dynamic sampling used for this statement (level=2)
              
              SQL> select ANY_PATH, RES, r.RES.getClobVal(), OBJECT_VALUE
                2    from RESOURCE_VIEW r, MY_XML_CONTENT x
                3   where extractValue(res,'/Resource/XMLRef') = ref(x)
                4     and XMLExists('/Hello[.="World"]' passing OBJECT_VALUE)
                5  /
              /public/uploadExample/uploadFolder/test.xml
              <Resource xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd">
                <CreationDate>2010-11-29T22:09:31.245000</CreationDate>
                <ModificationDate>2010-11-29T22:09:31.245000</ModificationDate>
                <DisplayName>test.xml</DisplayName>
                <Language>en-US</Language>
                <CharacterSet>UTF-8</CharacterSet>
                <ContentType>text/xml</ContentType>
                <RefCount>1</RefCount>
              </Resource>
              <Resource xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd" Hidden="false" Inv
              alid="false" Container="false" CustomRslv="false" VersionHistory="false" StickyR
              ef="true">
                <CreationDate>2010-11-29T22:09:31.245000</CreationDate>
                <ModificationDate>2010-11-29T22:09:31.245000</ModificationDate>
                <DisplayName>test.xml</DisplayName>
                <Language>en-US</Language>
                <CharacterSet>UTF-8</CharacterSet>
                <ContentType>text/xml</ContentType>
                <RefCount>1</RefCount>
                <ACL>
                  <acl description="Public:All privileges to PUBLIC" xmlns="http://xmlns.oracl
              e.com/xdb/acl.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch
              emaLocation="http://xmlns.oracle.com/xdb/acl.xsd                           http:
              //xmlns.oracle.com/xdb/acl.xsd" shared="true">
                    <ace>
                      <grant>true</grant>
                      <principal>PUBLIC</principal>
                      <privilege>
                        <all/>
                      </privilege>
                    </ace>
                  </acl>
                </ACL>
                <Owner>EVENTS</Owner>
                <Creator>EVENTS</Creator>
                <LastModifier>EVENTS</LastModifier>
                <Contents>
                  <Hello xmlns="">World</Hello>
                </Contents>
              </Resource>
              <Hello>World</Hello>
              
              
              
              Execution Plan
              ----------------------------------------------------------
              Plan hash value: 474234491
              
              ------------------------------------------------------------------------------------------------------------------
              | Id  | Operation                       | Name                           | Rows  | Bytes | Cost (%CPU)| Time     |
              ------------------------------------------------------------------------------------------------------------------
              |   0 | SELECT STATEMENT                |                                |     1 |  5977 |     4   (0)| 00:00:01 |
              |   1 |  NESTED LOOPS                   |                                |     1 |  5977 |     4   (0)| 00:00:01 |
              |   2 |   MERGE JOIN CARTESIAN          |                                |     1 |  3953 |     3   (0)| 00:00:01 |
              |*  3 |    TABLE ACCESS BY INDEX ROWID  | XDB$RESOURCE                   |     1 |   130 |     3   (0)| 00:00:01 |
              |*  4 |     DOMAIN INDEX                | XDBHI_IDX                      |       |       |            |          |
              |   5 |    BUFFER SORT                  |                                |     1 |  3823 |     0   (0)| 00:00:01 |
              |   6 |     SORT UNIQUE                 |                                |     1 |  3823 |     0   (0)| 00:00:01 |
              |*  7 |      TABLE ACCESS BY INDEX ROWID| SYS79815_MY_XML_IND_PATH_TABLE |     1 |  3823 |     0   (0)| 00:00:01 |
              |*  8 |       INDEX RANGE SCAN          | SYS79815_MY_XML_IND_VALUE_IX   |     1 |       |     0   (0)| 00:00:01 |
              |*  9 |   TABLE ACCESS BY USER ROWID    | MY_XML_CONTENT                 |     1 |  2024 |     1   (0)| 00:00:01 |
              ------------------------------------------------------------------------------------------------------------------
              
              Predicate Information (identified by operation id):
              ---------------------------------------------------
              
                 3 - filter("SYS_NC00024$" IS NOT NULL)
                 4 - access("XDB"."UNDER_PATH"(SYS_MAKEXML('8758D485E6004793E034080020B242C6',734,"XMLEXTRA","XMLDATA"),
                            '/',8888)=1)
                 7 - filter("SYS_P0"."VALUE"='World' AND "SYS_P0"."PATHID"=HEXTORAW('11F4')  AND
                            SYS_XMLI_LOC_ISNODE("SYS_P0"."LOCATOR")=1)
                 8 - access(SUBSTRB("VALUE",1,1599)='World')
                 9 - filter("SYS_NC00024$"="X"."SYS_NC_OID$")
              
              Note
              -----
                 - dynamic sampling used for this statement (level=2)
              
              SQL> select *
                2    from XMLTable
                3         (
                4            'for $i in fn:collection($PATH)
                5              return $i'
                6            passing :UPLOAD_FOLDER as "PATH"
                7         )
                8  /
              <Hello>World</Hello>
              
              
              Execution Plan
              ----------------------------------------------------------
              Plan hash value: 2445222264
              
              ----------------------------------------------------------------------------------------------------------
              | Id  | Operation                        | Name                  | Rows  | Bytes | Cost (%CPU)| Time  |
              ----------------------------------------------------------------------------------------------------------
              |   0 | SELECT STATEMENT                 |                       |  8168 | 16336 |    29   (0)| 00:00:01 |
              |   1 |  COLLECTION ITERATOR XMLSEQ FETCH| XQSEQUENCEFROMXMLTYPE |  8168 | 16336 |    29   (0)| 00:00:01 |
              |   2 |   SORT AGGREGATE                 |                       |     1 |   130 |            |       |
              |   3 |    TABLE ACCESS BY INDEX ROWID   | XDB$RESOURCE          |     1 |   130 |     3   (0)| 00:00:01 |
              |*  4 |     DOMAIN INDEX                 | XDBHI_IDX             |       |       |            |       |
              ----------------------------------------------------------------------------------------------------------
              
              Predicate Information (identified by operation id):
              ---------------------------------------------------
              
                 4 - access("XDB"."UNDER_PATH"(SYS_MAKEXML('8758D485E6004793E034080020B242C6',734,"XMLEXTRA","XM
                            LDATA"),:UPLOAD_FOLDER)=1)
              
              SQL> select *
                2    from XMLTable
                3         (
                4            '(#ora:defaultTable MY_XML_CONTENT #)
                5            { for $i in fn:collection($PATH)
                6              return $i }'
                7            passing :UPLOAD_FOLDER as "PATH"
                8         )
                9  /
              <Hello>World</Hello>
              
              
              Execution Plan
              ----------------------------------------------------------
              Plan hash value: 1475290072
              
              -----------------------------------------------------------------------------------------------
              | Id  | Operation                    | Name           | Rows  | Bytes | Cost (%CPU)| Time     |
              -----------------------------------------------------------------------------------------------
              |   0 | SELECT STATEMENT             |                |     1 |  2142 |     4   (0)| 00:00:01 |
              |   1 |  NESTED LOOPS                |                |     1 |  2142 |     4   (0)| 00:00:01 |
              |*  2 |   TABLE ACCESS BY INDEX ROWID| XDB$RESOURCE   |     1 |   130 |     3   (0)| 00:00:01 |
              |*  3 |    DOMAIN INDEX              | XDBHI_IDX      |       |       |            |          |
              |   4 |   TABLE ACCESS BY INDEX ROWID| MY_XML_CONTENT |     1 |  2012 |     1   (0)| 00:00:01 |
              |*  5 |    INDEX UNIQUE SCAN         | SYS_C0011420   |     1 |       |     0   (0)| 00:00:01 |
              -----------------------------------------------------------------------------------------------
              
              Predicate Information (identified by operation id):
              ---------------------------------------------------
              
                 2 - filter("SYS_NC00024$" IS NOT NULL)
                 3 - access("XDB"."UNDER_PATH"(SYS_MAKEXML('8758D485E6004793E034080020B242C6',734,"XM
                            LEXTRA","XMLDATA"),:UPLOAD_FOLDER)=1)
                 5 - access("SYS_NC00024$"="T"."SYS_NC_OID$")
              
              Note
              -----
                 - dynamic sampling used for this statement (level=2)
              
              SQL> select *
                2    from XMLTable
                3         (
                4            '(#ora:defaultTable MY_XML_CONTENT #)
                5             {for $i in fn:collection($PATH)/Hello[.="World"]
                6              return $i}'
                7            passing '/' as "PATH"
                8         )
                9  /
              <Hello>World</Hello>
              
              
              Execution Plan
              ----------------------------------------------------------
              Plan hash value: 3796243964
              
              -----------------------------------------------------------------------------------------------------------------
              | Id  | Operation                      | Name                           | Rows  | Bytes | Cost (%CPU)| Time     |
              -----------------------------------------------------------------------------------------------------------------
              |   0 | SELECT STATEMENT               |                                |     1 |   152 |     3   (0)| 00:00:01 |
              |   1 |  SORT GROUP BY                 |                                |     1 |  3524 |            |          |
              |*  2 |   TABLE ACCESS BY INDEX ROWID  | SYS79815_MY_XML_IND_PATH_TABLE |     1 |  3524 |     0   (0)| 00:00:01 |
              |*  3 |    INDEX RANGE SCAN            | SYS79815_MY_XML_IND_PIKEY_IX   |     1 |       |     0   (0)| 00:00:01 |
              |   4 |  NESTED LOOPS                  |                                |     1 |   152 |     3   (0)| 00:00:01 |
              |*  5 |   TABLE ACCESS BY INDEX ROWID  | XDB$RESOURCE                   |     1 |   130 |     3   (0)| 00:00:01 |
              |*  6 |    DOMAIN INDEX                | XDBHI_IDX                      |       |       |            |          |
              |*  7 |   INDEX UNIQUE SCAN            | SYS_C0011420                   |     1 |    22 |     0   (0)| 00:00:01 |
              |   8 |    SORT GROUP BY               |                                |     1 |  3524 |            |          |
              |*  9 |     TABLE ACCESS BY INDEX ROWID| SYS79815_MY_XML_IND_PATH_TABLE |     1 |  3524 |     0   (0)| 00:00:01 |
              |* 10 |      INDEX RANGE SCAN          | SYS79815_MY_XML_IND_PIKEY_IX   |     1 |       |     0   (0)| 00:00:01 |
              -----------------------------------------------------------------------------------------------------------------
              
              Predicate Information (identified by operation id):
              ---------------------------------------------------
              
                 2 - filter(SYS_XMLI_LOC_ISNODE("SYS_P0"."LOCATOR")=1)
                 3 - access("SYS_P0"."RID"=:B1 AND "SYS_P0"."PATHID"=HEXTORAW('11F4') )
                 5 - filter("SYS_NC00024$" IS NOT NULL)
                 6 - access("XDB"."UNDER_PATH"(SYS_MAKEXML('8758D485E6004793E034080020B242C6',734,"XMLEXTRA","XMLDATA")
                            ,'/',8888)=1)
                 7 - access("SYS_NC00024$"="SYS_ALIAS_2"."SYS_NC_OID$")
                     filter(SYS_XQ_UPKXML2SQL(SYS_XQEXVAL(SYS_XQEXTRACT( (SELECT
                            "SYS"."SYS_IXMLAGG"(SYS_MAKE_XMLNODEID(79811,3,"SYS_P2"."RID","SYS_P2"."PATHID","SYS_P2"."ORDER_KEY","SYS
                            _P2"."VALUE","SYS_P2"."LOCATOR",4,0,'/Hello',null,'EVENTS','MY_XML_INDEX') ORDER BY
                            "SYS_P2"."ORDER_KEY") FROM "EVENTS"."SYS79815_MY_XML_IND_PATH_TABLE" "SYS_P2" WHERE
                            "SYS_P2"."PATHID"=HEXTORAW('11F4')  AND "SYS_P2"."RID"=:B1 AND
                            SYS_XMLI_LOC_ISNODE("SYS_P2"."LOCATOR")=1),'/Hello'),1,50),50,1,0)='World')
                 9 - filter(SYS_XMLI_LOC_ISNODE("SYS_P2"."LOCATOR")=1)
                10 - access("SYS_P2"."RID"=:B1 AND "SYS_P2"."PATHID"=HEXTORAW('11F4') )
              
              Note
              -----
                 - dynamic sampling used for this statement (level=2)
                 - Unoptimized XML construct detected (enable XMLOptimizationCheck for more information)
              
              SQL> call dbms_xdb.deleteResource(:UPLOAD_FOLDER || '/test.xml')
                2  /
              
              Call completed.
              
              SQL> commit
                2  /
              
              Commit complete.
              
              SQL> select OBJECT_VALUE
                2    from MY_XML_CONTENT
                3  /
              
              no rows selected
              
              
              Execution Plan
              ----------------------------------------------------------
              Plan hash value: 2174318538
              
              ------------------------------------------------------------------------------------
              | Id  | Operation         | Name           | Rows  | Bytes | Cost (%CPU)| Time     |
              ------------------------------------------------------------------------------------
              |   0 | SELECT STATEMENT  |                |     1 |  2002 |     3   (0)| 00:00:01 |
              |   1 |  TABLE ACCESS FULL| MY_XML_CONTENT |     1 |  2002 |     3   (0)| 00:00:01 |
              ------------------------------------------------------------------------------------
              
              Note
              -----
                 - dynamic sampling used for this statement (level=2)
              
              SQL> quit
              Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
              With the Partitioning, OLAP, Data Mining and Real Application Testing options
              
              C:\xdb\examples\Events>
              {code}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
              1 2 3 Previous Next