MINI MINI MANI MO
<?xml version="1.0"?>
<!--
Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
NAME
kusindxt.xsd
DESCRIPTION
XML Schema types for INDEX SXML.
MODIFIED MM/DD/YY
rapayne 06/16/17 - Bug 26249637: support [FILTER | ORDER]_BY clauses
for domain indexes.
jjanosik 04/06/17 - Bug 24517168: Add STORAGE to SUBPARTITION_LIST_ITEM
tbhukya 11/16/15 - Bug 22171671: Add MAXTRANS
rapayne 07/26/15 - Bug 19241274: hash_partitions_by_quantity
lbarton 03/08/12 - 36954_dpump_tabcluster_zonemap
rapayne 12/25/11 - proj 37634: partial index support.
lbarton 09/12/08 - bug 7362930: UNUSABLE index (sub)partitions
lbarton 06/18/08 - bug 7188926: parameters in partitioned domain index
lbarton 08/14/07 - column expressions
lbarton 01/17/08 - Bug 6724820: table compression
lbarton 12/19/07 - Bug 6655531: customer area
rapayne 01/09/07 - Allow UNUSABLE and MONITORING_USAGE
rapayne 12/28/06 - allow PARALLEL and PARALLEL_DEGREE
rapayne 12/13/06 - allow 'src' attribs for COL_LIST_ITEM
lbarton 11/15/06 - diff support
sdavidso 04/25/06 - Add INVISIBLE index attribute tag
sdavidso 05/02/06 - fix parameters for domain index
lbarton 11/09/05 - Bug 4724986: reformat files for use with XMLSpy
lbarton 10/18/05 - lbarton_mddiff2
lbarton 09/06/05 - Initial version
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ku="http://xmlns.oracle.com/ku" targetNamespace="http://xmlns.oracle.com/ku" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- include files -->
<xsd:include schemaLocation="kuscomm.xsd"/>
<xsd:include schemaLocation="kusparse.xsd"/>
<!-- types, groups and elements -->
<xsd:complexType name="INDEXType">
<xsd:sequence>
<xsd:element ref="ku:UnqBitmap" minOccurs="0"/>
<xsd:group ref="ku:SCHEMA_NAMEGroup"/>
<xsd:choice>
<xsd:element name="CLUSTER_INDEX" type="ku:ClusterIndexClause"/>
<xsd:element name="TABLE_INDEX" type="ku:TableIndexClause"/>
<xsd:element name="BITMAP_JOIN_INDEX" type="ku:BitmapJoinIndexClause"/>
</xsd:choice>
<xsd:element name="CUSTOMER_AREA" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="version" type="ku:vsn" use="required"/>
<xsd:attribute name="version2" type="ku:vsn"/>
<!-- *******************************************************************
complexType for INDEX
[ (UNIQUE | BITMAP) ]
choice of
CLUSTER_INDEX
TABLE_INDEX
BITMAP_JOIN_INDEX
[ CUSTOMER_AREA ]
******************************************************************** -->
</xsd:complexType>
<!-- *******************************************************************
optional UNIQUE or BITMAP
******************************************************************** -->
<xsd:element name="UnqBitmap" type="ku:EmptyType" abstract="true"/>
<xsd:element name="UNIQUE" type="ku:EmptyType" substitutionGroup="ku:UnqBitmap"/>
<xsd:element name="BITMAP" type="ku:EmptyType" substitutionGroup="ku:UnqBitmap"/>
<xsd:complexType name="ClusterIndexClause">
<xsd:sequence>
<xsd:element name="ON_CLUSTER" type="ku:SCHEMA_NAMEType"/>
<xsd:element name="INDEX_ATTRIBUTES" type="ku:INDEX_ATTRIBUTESType" minOccurs="0"/>
<xsd:element name="UNUSABLE" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="MONITORING_USAGE" type="ku:EmptyType" minOccurs="0"/>
</xsd:sequence>
<!-- *******************************************************************
complexType: cluster index clause
ON_CLUSTER
[ INDEX_ATTRIBUTES ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="TableIndexClause">
<xsd:sequence>
<xsd:element name="ON_TABLE" type="ku:SCHEMA_NAMEType"/>
<xsd:element name="COL_LIST">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="COL_LIST_ITEM" type="ku:IndexCOL_LIST_ITEMType" maxOccurs="1000"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
</xsd:element>
<xsd:group ref="ku:IndexProperties" minOccurs="0"/>
<xsd:element name="UNUSABLE" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="MONITORING_USAGE" type="ku:EmptyType" minOccurs="0"/>
</xsd:sequence>
<!-- *******************************************************************
complexType: table index clause
ON_TABLE
COL_LIST (up to 1000 elements of IndexCOL_LIST_ITEMType)
[ IndexProperties ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="IndexCOL_LIST_ITEMType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="NAME" type="ku:char4000ElementWithValue1"/>
<xsd:element name="COLUMN_EXPRESSION" type="ku:PrsColExpressionType"/>
</xsd:choice>
<xsd:element name="DESC" type="ku:EmptyType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
complexType for IndexCOL_LIST_ITEM - these are COL_LIST_ITEMs for
normal indexes (not bitmap join indexes)
NAME - column name: can be up to 4000 bytes (index expression)
[ DESC ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="DomainCOL_LIST_ITEMType">
<xsd:sequence>
<xsd:element name="NAME" type="ku:char4000ElementWithValue1"/>
<xsd:element name="DESC" type="ku:EmptyType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
complexType for DomainCOL_LIST_ITEM - these are COL_LIST_ITEMs for
domain indexes [FILTER | ORDER] BY clauses.
NAME - column name: can be up to 4000 bytes (index expression)
[ DESC ]
******************************************************************** -->
</xsd:complexType>
<xsd:group name="IndexProperties">
<!-- *******************************************************************
group: IndexProperties
choice:
[ INDEX_ATTRIBUTES ]
optional choice
GLOBAL_PARTITIONING
LOCAL_PARTITIONING
or
DOMAIN_INDEX_PROPERTIES
INDEXTYPE
etc.
******************************************************************** -->
<xsd:choice>
<xsd:sequence>
<xsd:element name="INDEXING" type="ku:PartialTypeWithValue1" minOccurs="0"/>
<xsd:element name="INDEX_ATTRIBUTES" type="ku:INDEX_ATTRIBUTESType"/>
<xsd:choice id="IndexPartitioning" minOccurs="0">
<xsd:element name="GLOBAL_PARTITIONING" type="ku:GlobalPartitionedIndexType"/>
<xsd:element name="LOCAL_PARTITIONING" type="ku:LocalPartitionedIndexType"/>
</xsd:choice>
</xsd:sequence>
<!-- Domain index -->
<xsd:sequence>
<xsd:element name="DOMAIN_INDEX_PROPERTIES">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="INDEXTYPE">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="SCHEMA" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="NAME" type="ku:char30ElementWithValue1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:choice minOccurs="0" maxOccurs="2">
<xsd:element name="PARALLEL" type="ku:PARALLELTypeWithValue1"/>
<xsd:element name="PARALLEL_DEGREE" type="ku:OldPARALLELType"/>
</xsd:choice>
<xsd:sequence>
<xsd:element name="PARAMETERS" type="ku:char1000ElementWithValue1" minOccurs="0"/>
<xsd:element name="LOCAL_PARTITIONING" type="ku:DomidxLocalPartitioningType" minOccurs="0"/>
<xsd:element name="FILTER_BY_LIST" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="COL_LIST_ITEM" type="ku:DomainCOL_LIST_ITEMType" maxOccurs="1000"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ORDER_BY_LIST" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="COL_LIST_ITEM" type="ku:DomainCOL_LIST_ITEMType" maxOccurs="1000"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:choice>
</xsd:group>
<xsd:complexType name="BitmapJoinIndexClause">
<xsd:sequence>
<xsd:element name="ON_TABLE" type="ku:SCHEMA_NAMEType"/>
<xsd:element name="COL_LIST">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="COL_LIST_ITEM" type="ku:BJIndexCOL_LIST_ITEMType" maxOccurs="1000"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="JOIN_TABLE_LIST">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="JOIN_TABLE_LIST_ITEM" type="ku:SCHEMA_NAMEType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="WHERE_LIST">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="WHERE_LIST_ITEM" type="ku:WHERE_LIST_ITEMType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="INDEX_ATTRIBUTES" type="ku:INDEX_ATTRIBUTESType" minOccurs="0"/>
<xsd:element name="UNUSABLE" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="MONITORING_USAGE" type="ku:EmptyType" minOccurs="0"/>
</xsd:sequence>
<!-- *******************************************************************
complexType: bitmap join index clause
ON_TABLE
COL_LIST (up to 1000 elements of BJIndexCOL_LIST_ITEMType)
JOIN_TABLE_LIST
WHERE_LIST
[ INDEX_ATTRIBUTES ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="BJIndexCOL_LIST_ITEMType">
<xsd:sequence>
<xsd:element name="SCHEMA" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="NAME" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="COL" type="ku:char30ElementWithValue1"/>
<xsd:element name="DESC" type="ku:EmptyType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
complexType for BJIndexCOL_LIST_ITEM - these are COL_LIST_ITEMs for
bitmap join indexes. They have more elements
than normal index col list items
[ SCHEMA ] - schema of table from which the column comes
[ NAME ] - name of table from which the column comes
COL - col name
[ DESC ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="WHERE_LIST_ITEMType">
<xsd:sequence>
<xsd:element name="JOIN_LIST" type="ku:JOIN_LISTType"/>
</xsd:sequence>
<!-- *******************************************************************
complexType for WHERE_LIST_ITEM
each WHERE_LIST_ITEM contains a JOIN_LIST of exactly 2 JOIN_LIST_ITEMS
each JOIN_LIST_ITEM contains SCHEMA, NAME (of table), COL
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="INDEX_ATTRIBUTESType">
<xsd:sequence>
<xsd:element name="PCTFREE" type="ku:pctElementWithValue1" minOccurs="0"/>
<xsd:element name="INITRANS" type="ku:int255ElementWithValue1" minOccurs="0"/>
<xsd:element name="MAXTRANS" type="ku:max255ElementWithValue1" minOccurs="0"/>
<xsd:element name="STORAGE" type="ku:STORAGEType" minOccurs="0"/>
<xsd:element name="TABLESPACE" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="LOGGING" type="ku:YNElementWithValue1" minOccurs="0"/>
<xsd:element name="KEYCOMPRESS" type="ku:KeyCompressTypeWithValue1" minOccurs="0"/>
<xsd:element name="REVERSE" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="INVISIBLE" type="ku:EmptyType" minOccurs="0"/>
<xsd:choice minOccurs="0" maxOccurs="2">
<xsd:element name="PARALLEL" type="ku:PARALLELTypeWithValue1"/>
<xsd:element name="PARALLEL_DEGREE" type="ku:OldPARALLELType"/>
</xsd:choice>
<xsd:element name="NOSEGMENT" type="ku:EmptyType" minOccurs="0"/>
</xsd:sequence>
<!-- *******************************************************************
complexType for INDEX_ATTRIBUTES
[ PCTFREE ]
[ INITRANS ]
[ STORAGE ]
[ TABLESPACE ]
[ LOGGING ]
[ COMPRESS ]
[ REVERSE ]
[ INVISIBLE ]
[ ( PARALLEL | PARALLEL_DEGREE ) ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="GlobalPartitionedIndexType">
<xsd:choice>
<xsd:element name="RANGE_PARTITIONING" type="ku:IndexRangePartitioningType"/>
<xsd:element name="HASH_PARTITIONING" type="ku:IndexHashPartitioningType"/>
</xsd:choice>
<!-- *******************************************************************
complexType for GlobalPartitioning clauses, a choice of
RANGE_PARTITIONING
HASH_PARTITIONING
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="IndexRangePartitioningType">
<xsd:sequence>
<xsd:element name="COL_LIST" type="ku:SimpleCOL_LISTType"/>
<xsd:element name="PARTITION_LIST">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="PARTITION_LIST_ITEM" type="ku:IndexRangePartitionClauseType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<!-- *******************************************************************
complexType for IndexRangePartitioningType
COL_LIST
PARTITION_LIST - list of PARTITION_LIST_ITEMS
of IndexRangePartitionClauseType
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="IndexRangePartitionClauseType">
<xsd:sequence>
<xsd:element name="NAME" type="ku:char30ElementWithValue1"/>
<xsd:element name="VALUES" type="ku:char4000ElementWithValue1"/>
<xsd:element name="SEGMENT_ATTRIBUTES" type="ku:SEGMENT_ATTRIBUTESType" minOccurs="0"/>
<xsd:element name="KEYCOMPRESS" type="ku:KeyCompressTypeWithValue1" minOccurs="0"/>
</xsd:sequence>
<!-- *******************************************************************
complexType for IndexRangePartitionClauseType
NAME
VALUES
[ SEGMENT_ATTRIBUTES ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="IdxpartitionListType">
<xsd:sequence>
<xsd:element name="PARTITION_LIST_ITEM" type="ku:IndexHashPartitionClauseType" maxOccurs="unbounded"/>
</xsd:sequence>
<!-- *******************************************************************
complexType for IDXPARTITIONLISTTYPE
List of Partitions
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="IndexHashPartitioningType">
<xsd:sequence>
<xsd:element name="COL_LIST" type="ku:SimpleCOL_LISTType"/>
<xsd:choice>
<xsd:element name="PARTITIONS_BY_QUANTITY" type="ku:partitionByQuantityType"/>
<xsd:element name="PARTITION_LIST" type="ku:IdxpartitionListType"/>
</xsd:choice>
</xsd:sequence>
<!-- *******************************************************************
complexType for IndexHashPartitioningType
COL_LIST
PARTITION_LIST - list of PARTITION_LIST_ITEMS
of IndexHashPartitionClauseType
PARTITIONS_BY_QUANTITY - auto partitioning.
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="IndexHashPartitionClauseType">
<xsd:sequence>
<xsd:element name="NAME" type="ku:char30ElementWithValue1"/>
<xsd:element name="TABLESPACE" type="ku:char30ElementWithValue1" minOccurs="0"/>
</xsd:sequence>
<!-- *******************************************************************
complexType for IndexHashPartitionClauseType
NAME
[ TABLESPACE ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="LocalPartitionedIndexType">
<xsd:sequence>
<xsd:element name="PARTITION_LIST">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="PARTITION_LIST_ITEM" type="ku:IndexLocalPartitionClauseType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<!-- *******************************************************************
complexType for LocalPartitioning
PARTITION_LIST - list of PARTITION_LIST_ITEMS
of IndexLocalPartitionClauseType
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="IndexLocalPartitionClauseType">
<xsd:sequence>
<xsd:element name="NAME" type="ku:char30ElementWithValue1"/>
<xsd:choice minOccurs="0">
<xsd:element name="SEGMENT_ATTRIBUTES" type="ku:SEGMENT_ATTRIBUTESType"/>
<!-- for index on hash partitioned table only TABLESPACE is ok
SQL Reference p. 14-82 -->
<xsd:element name="TABLESPACE" type="ku:char30ElementWithValue1"/>
</xsd:choice>
<xsd:element name="KEYCOMPRESS" type="ku:KeyCompressTypeWithValue1" minOccurs="0"/>
<xsd:element name="UNUSABLE" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="SUBPARTITION_LIST" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="SUBPARTITION_LIST_ITEM" type="ku:IndexSubpartitionClauseType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<!-- *******************************************************************
complexType for IndexLocalPartitionClauseType
NAME
optional choice of
SEGMENT_ATTRIBUTES
TABLESPACE (see note below)
[ COMPRESS ]
optional SUBPARTITION_LIST, a list of SUBPARTITION_LIST_ITEMs of
IndexSubpartitionClauseType
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="IndexSubpartitionClauseType">
<xsd:sequence>
<xsd:element name="NAME" type="ku:char30ElementWithValue1"/>
<xsd:element name="STORAGE" type="ku:STORAGEType" minOccurs="0"/>
<xsd:element name="TABLESPACE" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="UNUSABLE" type="ku:EmptyType" minOccurs="0"/>
</xsd:sequence>
<!-- *******************************************************************
complexType for IndexSubpartitionClauseType
NAME
[ TABLESPACE ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="DomidxLocalPartitioningType">
<xsd:sequence>
<xsd:element name="PARTITION_LIST">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="PARTITION_LIST_ITEM" type="ku:DomidxPARTITION_LIST_ITEMType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<!-- *******************************************************************
Domain index partitioning clauses
complexType for DomidxLocalPartitioning
PARTITION_LIST - a list of PARTITION_LIST_ITEMS of type
DomidxPARTITION_LIST_ITEMType
NAME
PARAMETERS
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="DomidxPARTITION_LIST_ITEMType">
<xsd:sequence>
<xsd:element name="NAME" type="ku:char30ElementWithValue1"/>
<xsd:element name="PARAMETERS" type="ku:char1000ElementWithValue1" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
OHA YOOOO