If you somehow stumbled across this post hoping to get a glimpse of how to add a new range partition to an existing range partitioned table containing a XMLType column with a XMLIndex created on it, prepare to be disappointed as I’ve encountered this very same scenario and have yet to come up with a solution. For those wishing to try it out quickly, here’s the steps needed to setup a quick and dirty test environment.

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE	11.2.0.2.0	Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

CREATE
  TABLE "STAFF"."ORDER"
  (
    "XML_ID" NUMBER(*,0) NOT NULL ENABLE,
    "INVOICE" "SYS"."XMLTYPE" NOT NULL ENABLE,
    "UPLOADED_DATE" DATE NOT NULL ENABLE,
    CONSTRAINT "ORDERS_PK_XML_ID_" PRIMARY KEY ("XML_ID") ENABLE
  )
  TABLESPACE "STAFF" XMLTYPE COLUMN "INVOICE" STORE AS SECUREFILE BINARY XML
  ALLOW NONSCHEMA DISALLOW ANYSCHEMA PARTITION BY RANGE
  (
    "UPLOADED_DATE"
  )
  (
    PARTITION "ORDERS_PART_20110701" VALUES LESS THAN (TO_DATE(
    ' 2011-07-02 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
    )
  ) ;

INSERT INTO "STAFF"."ORDER" (XML_ID, INVOICE, UPLOADED_DATE) VALUES ('1',
'<?xml version = ''1.0''?>
<INVOICE>
   <COMMON>
      <INVOICE_TYPE>VOICE</INVOICE_TYPE>
      <PRIORITY>3</PRIORITY>
   </COMMON>
   <SALE_RESULTS>
      <ENGINE>
         <SALE_TEAM_LIST>
            <TEAM_COUNT>3</TEAM_COUNT>
            <SALE_TEAM>
               <SALE_TEAM_ID>BUFFY</SALE_TEAM_ID>
               <ITEM_LIST>
                  <ITEM>
                     <ITEMSTATUS>RETURNED</ITEMSTATUS>
                     <ITEM_ID>1</ITEM_ID>
                     <PART_LIST>
                        <PART_COUNT>1</PART_COUNT>
                        <PART>
                           <PART_NAME>3</PART_NAME>
                           <PROFILE_ID>84</PROFILE_ID>
                           <PART_PRIORITY>2</PART_PRIORITY>
                           <RECORD_LIST>
                              <RECORD_COUNT>0</RECORD_COUNT>
                           </RECORD_LIST>
                        </PART>
                     </PART_LIST>
                  </ITEM>
				  <ITEM>
                     <ITEMSTATUS>RETURNED</ITEMSTATUS>
                     <ITEM_ID>2</ITEM_ID>
                     <PART_LIST>
                        <PART_COUNT>1</PART_COUNT>
                        <PART>
                           <PART_NAME>4</PART_NAME>
                           <PROFILE_ID>85</PROFILE_ID>
                           <PART_PRIORITY>2</PART_PRIORITY>
                           <RECORD_LIST>
                              <RECORD_COUNT>0</RECORD_COUNT>
                           </RECORD_LIST>
                        </PART>
                     </PART_LIST>
                  </ITEM>
               </ITEM_LIST>
            </SALE_TEAM>
            <SALE_TEAM>
               <SALE_TEAM_ID>XENA</SALE_TEAM_ID>
               <ITEM_LIST>
                  <ITEM>
                     <ITEMSTATUS>RETURNED</ITEMSTATUS>
                     <ITEM_ID>2</ITEM_ID>
                     <PART_LIST>
                        <PART_COUNT>2</PART_COUNT>
                        <PART>
                           <PART_NAME>3</PART_NAME>
                           <PROFILE_ID>31</PROFILE_ID>
                           <PART_PRIORITY>2</PART_PRIORITY>
                           <RECORD_LIST>
                              <RECORD_COUNT>2</RECORD_COUNT>
                              <RECORD>
                                 <RECORD_ID>1</RECORD_ID>
                                 <RECORD_DESC>abc108</RECORD_DESC>
                              </RECORD>
                              <RECORD>
                                 <RECORD_ID>2</RECORD_ID>
                                 <RECORD_DESC>abc634</RECORD_DESC>
                              </RECORD>
                           </RECORD_LIST>
                        </PART>
                     </PART_LIST>
                  </ITEM>
               </ITEM_LIST>
            </SALE_TEAM>
         </SALE_TEAM_LIST>
      </ENGINE>
   </SALE_RESULTS>
</INVOICE>', TO_DATE('20-JUN-11', 'DD-MON-RR'))

BEGIN
  DBMS_XMLINDEX.DROPPARAMETER('indexParam');
END;
/

BEGIN
  DBMS_XMLINDEX.REGISTERPARAMETER(
    'indexParam',
    'PATH TABLE       ORDER_PATH_TABLE
     PATH ID INDEX    ORDER_PATH_ID_IDX
     PIKEY INDEX      ORDER_PIKEY_IDX
     VALUE INDEX      ORDER_VALUE_IDX
     ORDER KEY INDEX  ORDER_ORDERKEY_IDX
     PATHS (INCLUDE (/INVOICE/COMMON/INVOICE_TYPE
                     /INVOICE/COMMON/PRIORITY
                     /INVOICE/SALE_RESULTS/*/SALE_TEAM_LIST/SALE_TEAM/SALE_TEAM_ID
                     /INVOICE/SALE_RESULTS/*/SALE_TEAM_LIST/SALE_TEAM/ITEM_LIST/ITEM/ITEM_ID
                     /INVOICE/SALE_RESULTS/*/SALE_TEAM_LIST/SALE_TEAM/ITEM_LIST/ITEM/PART_LIST/PART/PART_NAME
                     /INVOICE/SALE_RESULTS/*/SALE_TEAM_LIST/SALE_TEAM/ITEM_LIST/ITEM/ITEMSTATUS))
     GROUP metadata_group
      XMLTABLE ORDER_METADATA
        ''/INVOICE''
        COLUMNS
          INVOICE_TYPE         VARCHAR2(32) PATH ''COMMON/INVOICE_TYPE'',
          PRIORITY 			    VARCHAR2(32) PATH ''COMMON/PRIORITY'',
          SALE_TEAM_LIST         XMLTYPE      PATH ''SALE_RESULTS/*/SALE_TEAM_LIST'' VIRTUAL
      XMLTABLE ORDER_SALE_TEAM_LIST
        ''/SALE_TEAM_LIST''
        PASSING SALE_TEAM_LIST
        COLUMNS
          SALE_TEAM              XMLTYPE      PATH ''SALE_TEAM'' VIRTUAL
      XMLTABLE ORDER_SALE_TEAM_ID
        ''/SALE_TEAM''
        PASSING SALE_TEAM
        COLUMNS
          SALE_TEAM_ID           VARCHAR2(32) PATH ''SALE_TEAM_ID'',
          ITEM_LIST        XMLTYPE      PATH ''ITEM_LIST'' VIRTUAL
      XMLTABLE ORDER_ITEM_LIST
        ''/ITEM_LIST''
        PASSING ITEM_LIST
        COLUMNS
          ITEM             XMLTYPE      PATH ''ITEM'' VIRTUAL
      XMLTABLE ORDER_ITEM_ID_ITEMSTATUS
        ''/ITEM''
        PASSING ITEM
        COLUMNS
          ITEM_ID          VARCHAR2(32) PATH ''ITEM_ID'',
          ITEMSTATUS         VARCHAR2(32) PATH ''ITEMSTATUS''
    ');
END;
/

CREATE
  INDEX ORDER_INVOICE_IDX ON "ORDER"
  (
    "INVOICE"
  )
  INDEXTYPE IS "XDB"."XMLINDEX" LOCAL PARAMETERS
  (
    'PARAM indexParam'
  );

CREATE INDEX ORDER_INVOICE_TYPE_IDX ON ORDER_METADATA(INVOICE_TYPE) LOCAL;
CREATE INDEX ORDER_PRIORITY_IDX ON ORDER_METADATA(PRIORITY) LOCAL;
CREATE INDEX ORDER_ISSUE_ID_IDX ON ORDER_ITEM_ID_ITEMSTATUS(ITEM_ID) LOCAL;
CREATE INDEX ORDER_DOCSTATUS_IDX ON ORDER_ITEM_ID_ITEMSTATUS(ITEMSTATUS) LOCAL;
CREATE INDEX ORDER_TEAM_ID_IDX ON ORDER_SALE_TEAM_ID(SALE_TEAM_ID) LOCAL;

SELECT
  *
FROM
  (
    SELECT
      myquery.*,
      rownum rnum
    FROM
      (
        SELECT
          xml_id,
          invoice,
          uploaded_date
        FROM
          "ORDER",
          XMLTABLE('$INVOICE/INVOICE' PASSING "ORDER".INVOICE AS "INVOICE"
          COLUMNS SALE_TEAM_LIST XMLTYPE PATH 'SALE_RESULTS/*/SALE_TEAM_LIST')
          ORDER_METADATA,
          XMLTABLE('$SALE_TEAM_LIST/SALE_TEAM_LIST' PASSING
          ORDER_METADATA.SALE_TEAM_LIST AS "SALE_TEAM_LIST" COLUMNS SALE_TEAM
          XMLType PATH 'SALE_TEAM') ORDER_SALE_TEAM_LIST,
          XMLTABLE('$SALE_TEAM/SALE_TEAM' PASSING
          ORDER_SALE_TEAM_LIST.SALE_TEAM AS "SALE_TEAM" COLUMNS SALE_TEAM_ID
          VARCHAR2(32 ) PATH 'SALE_TEAM_ID', ITEM_LIST XMLTYPE PATH 'ITEM_LIST'
          ) ORDER_SALE_TEAM_ID,
          XMLTABLE('$ITEM_LIST/ITEM_LIST' PASSING ORDER_SALE_TEAM_ID.ITEM_LIST
                                                             AS "ITEM_LIST" COLUMNS ITEM XMLType PATH 'ITEM') ORDER_ITEM_LIST,
          XMLTable('$ITEM/ITEM' PASSING ORDER_ITEM_LIST.ITEM AS "ITEM" COLUMNS
          ITEM_ID VARCHAR2(32) PATH 'ITEM_ID', ITEMSTATUS VARCHAR2(32) PATH
          'ITEMSTATUS') ORDER_ITEM_ID_ITEMSTATUS
        WHERE
          UPLOADED_DATE   >= TO_DATE('01/07/2011', 'dd/MM/YYYY')
        AND UPLOADED_DATE <= to_date('04/07/2011', 'dd/MM/YYYY')
        AND ITEM_ID       IN('1','2','3','4')
        AND ITEMSTATUS    IN('DAMAGED','RETURNED','SOLD')
        AND SALE_TEAM_ID  IN('BUFFY','HERCULES','XENA','GANDALF')
      )
      myquery
    WHERE
      rownum <= 100
  )
WHERE
  rnum >= 1;

ALTER TABLE "ORDER" ADD PARTITION "ORDERS_PART_20110703" VALUES LESS THAN (TO_DATE('2011-07-04 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN');

SQL Error: ORA-29874: warning in the execution of ODCIINDEXALTER routine
ORA-29960: line 1, ORA-30968: invalid XPATH or NAMESPACE option for XML Index
29874. 00000 - "warning in the execution of ODCIINDEXALTER routine"
*Cause:  A warning was returned from the ODCIIndexAlter routine.
*Action: Check to see if the routine has been coded correctly
             Check the user defined warning log tables for greater details.

Apparently the support for partitioned, local domain indexes when it comes to XMLType and XMLIndexes isn’t as mature as that of Oracle Text.