MINI MINI MANI MO
<?xml version="1.0"?>
<!--
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
NAME
kusparse.xsd
DESCRIPTION
XML Schema types for parsed expressions and queries.
MODIFIED MM/DD/YY
bhammers 11/29/16 - add types needed for ON_EMPTY in JSON operators
rapayne 06/24/16 - RTI 19555698: Correct JSON on_error values.
skayoor 11/17/14 - Project 58196: Add ORA_CHECK_SYS_PRIVILEGE operator
lbarton 09/23/14 - bug 19597320: JSON RETURNING clause with char
semantics
lbarton 08/06/14 - bug 19180774: parse JSON operators
lbarton 02/12/14 - bug 17943479: SYS_OP_MAP_NONNULL
lbarton 05/01/13 - bug15936221: CONNECT_BY_ROOT
thbaby 11/21/12 - 15827913: add OBJ_ID
lbarton 01/26/12 - gravipat_bug-12667763: CDB_VIEW
lbarton 05/17/10 - lrg 4526291: SYS_OP_DV_CHECK,
UNION in DECODE, ELSE
lbarton 01/12/09 - lrg 3737783: query in left outer join
lbarton 10/17/08 - bug 7447531: recursive WITH
lbarton 08/10/07 - 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"/>
<!-- types, groups and elements -->
<!-- parsed expressions -->
<xsd:complexType name="PrsExpressionType">
<xsd:choice>
<xsd:group ref="ku:PrsLogicalConditionGroup"/>
</xsd:choice>
<!-- *******************************************************************
PrsExpressionType - the top-level type for all check expressions
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsColExpressionType">
<xsd:choice>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<!-- *******************************************************************
PrsColExpressionType - the top-level type for all column expressions
(used in functional indexes)
******************************************************************** -->
</xsd:complexType>
<xsd:group name="PrsLogicalConditionGroup">
<xsd:choice>
<xsd:group ref="ku:PrsComparisonConditionGroup"/>
<xsd:element name="NOT" type="ku:PrsUnaryLogicalOpType"/>
<xsd:element name="AND" type="ku:PrsAnyaryLogicalOpType"/>
<xsd:element name="OR" type="ku:PrsAnyaryLogicalOpType"/>
<xsd:element name="LNNVL" type="ku:PrsUnaryLogicalOpType"/>
</xsd:choice>
<!-- *******************************************************************
PrsLogicalConditionGroup
group for logical condition, either a comparison or one of NOT, AND, OR
PrsUnaryLogicalOpType and PrsAnyaryLogicalOpType are recursive
******************************************************************** -->
</xsd:group>
<xsd:complexType name="PrsUnaryLogicalOpType">
<xsd:choice>
<xsd:group ref="ku:PrsLogicalConditionGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsAnyaryLogicalOpType">
<xsd:choice minOccurs="2" maxOccurs="unbounded">
<xsd:group ref="ku:PrsLogicalConditionGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsComparisonConditionType">
<xsd:choice>
<xsd:group ref="ku:PrsComparisonConditionGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
Comparisons:
PrsComparisonConditionType
PrsBinaryComparisonConditionType
PrsComparisonConditionGroup
group and complexType for comparison condition, one of
GT, GE, LT, LE, EQ, NE, LIKE (with variations), REGEXP_LIKE
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsBinaryComparisonConditionType">
<xsd:choice minOccurs="2" maxOccurs="2">
<xsd:group ref="ku:PrsComparisonConditionGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:group name="PrsComparisonConditionGroup">
<xsd:choice>
<xsd:element name="GT" type="ku:PrsBinaryOpType"/>
<xsd:element name="GE" type="ku:PrsBinaryOpType"/>
<xsd:element name="LT" type="ku:PrsBinaryOpType"/>
<xsd:element name="LE" type="ku:PrsBinaryOpType"/>
<xsd:element name="EQ" type="ku:PrsBinaryOpType"/>
<xsd:element name="NE" type="ku:PrsBinaryOpType"/>
<xsd:element name="IS_NAN" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="IS_NOT_NAN" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="IS_INFINITE" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="IS_NOT_INFINITE" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="IS_NULL" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="IS_NOT_NULL" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="EXISTS" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="NOT_EXISTS" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="IS_A_SET" type="ku:PrsIS_A_SETType"/>
<xsd:element name="IS_NOT_A_SET" type="ku:PrsIS_A_SETType"/>
<xsd:element name="IS_EMPTY" type="ku:PrsIS_A_SETType"/>
<xsd:element name="IS_NOT_EMPTY" type="ku:PrsIS_A_SETType"/>
<xsd:element name="IS_JSON" type="ku:PrsIS_JSONType"/>
<xsd:element name="IS_NOT_JSON" type="ku:PrsIS_JSONType"/>
<xsd:element name="IS_OF_TYPE" type="ku:PrsIS_OF_TYPEType"/>
<xsd:element name="IS_NOT_OF_TYPE" type="ku:PrsIS_OF_TYPEType"/>
<xsd:element name="JSON_EXISTS" type="ku:PrsJSON_EXISTSType"/>
<xsd:element name="JSON_TEXTCONTAINS" type="ku:PrsJSON_TEXTCONTAINSType"/>
<xsd:element name="LIKE" type="ku:PrsLikeOpType"/>
<xsd:element name="NOT_LIKE" type="ku:PrsLikeOpType"/>
<xsd:element name="LIKE2" type="ku:PrsLikeOpType"/>
<xsd:element name="NOT_LIKE2" type="ku:PrsLikeOpType"/>
<xsd:element name="LIKE4" type="ku:PrsLikeOpType"/>
<xsd:element name="NOT_LIKE4" type="ku:PrsLikeOpType"/>
<xsd:element name="LIKEC" type="ku:PrsLikeOpType"/>
<xsd:element name="NOT_LIKEC" type="ku:PrsLikeOpType"/>
<xsd:element name="MEMBER_OF" type="ku:PrsMEMBER_OFType"/>
<xsd:element name="NOT_MEMBER_OF" type="ku:PrsMEMBER_OFType"/>
<xsd:element name="REGEXP_LIKE" type="ku:PrsLikeOpType"/>
<xsd:element name="NOT_REGEXP_LIKE" type="ku:PrsLikeOpType"/>
<xsd:element name="SUBMULTISET" type="ku:PrsBinaryOpType"/>
<xsd:element name="NOT_SUBMULTISET" type="ku:PrsBinaryOpType"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="PrsBinaryOpType">
<xsd:choice minOccurs="2" maxOccurs="2">
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
comparison operands, i.e., possible operands for EQ, NE, etc.:
COLUMN_REF, LITERAL, STRING or
ADD, SUB, MUL, DIV, CAT, NEG with expression operands
PrsCompoundExpressionGroup is the group
PrsBinaryOpType is a pair of these operands
PrsLikeOpType is used for LIKE, REGEXP_LIKE, etc - allows 2-3 operands
PrsUnaryExprOpType and PrsBinaryExprOpType are recursive definitions
of the operands for ADD, SUB, etc.
******************************************************************** -->
</xsd:complexType>
<xsd:group name="PrsCompoundExpressionGroup">
<xsd:choice>
<xsd:element name="QUERY" type="ku:PrsSubqueryType"/>
<xsd:element name="CURSOR" type="ku:PrsQueryType"/>
<xsd:element name="COLUMN_REF" type="ku:PrsCOLUMN_REFType"/>
<xsd:element name="COLUMN_ALIAS" type="ku:char30ElementWithValue1"/>
<xsd:element name="SEQUENCE_REF" type="ku:PrsSEQUENCE_REFType"/>
<xsd:element name="TABLE_REF" type="ku:PrsTABLE_REFType"/>
<xsd:element name="LITERAL" type="xsd:string"/>
<xsd:element name="STRING" type="xsd:string"/>
<xsd:element name="DATE" type="xsd:string"/>
<xsd:element name="TIMESTAMP" type="xsd:string"/>
<xsd:element name="ROWNUM" type="ku:EmptyType"/>
<xsd:element name="LEVEL" type="ku:EmptyType"/>
<xsd:element name="AT" type="ku:PrsDatetimeExprType"/>
<xsd:element name="TABLE_ALIAS" type="xsd:string"/>
<xsd:element name="ADD" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="SUB" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="MUL" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="DIV" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="CAT" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="NEG" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="PRIOR" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="DESC" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="DESC_NULLS_LAST" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="ASC_NULLS_FIRST" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="ABS" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="ACOS" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="ADD_MONTHS" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="ALL" type="ku:PrsANYALLExprOpType"/>
<xsd:element name="ANY" type="ku:PrsANYALLExprOpType"/>
<xsd:element name="ASCII" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="ASCIISTR" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="ASIN" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="ATAN" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="ATAN2" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="AVG" type="ku:PrsAVGType"/>
<xsd:element name="BFILENAME" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="BIN_TO_NUM" type="ku:PrsNAryExprOpType"/>
<xsd:element name="BITAND" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="CARDINALITY" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="CASE" type="ku:PrsCASEExprOpType"/>
<xsd:element name="CAST" type="ku:PrsCASTExprOpType"/>
<xsd:element name="CEIL" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="CHARTOROWID" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="CHR" type="ku:PrsCHRType"/>
<xsd:element name="COALESCE" type="ku:PrsNAryExprOpType"/>
<xsd:element name="COLLECT" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="COMPOSE" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="CONCAT" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="CONNECT_BY_ROOT" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="CONSTRUCTOR" type="ku:PrsCONSTRUCTORType"/>
<xsd:element name="CONVERT" type="ku:PrsLikeOpType"/>
<xsd:element name="CON_DBID_TO_ID" type="ku:PrsUnaryExprOpType"/>
<!-- TBD: CORR, CORR_S, CORR_K, COVAR_POP, COVAR_SAMP -->
<xsd:element name="COS" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="COSH" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="COUNT" type="ku:PrsCOUNTType"/>
<xsd:element name="CUME_DIST" type="ku:PrsDENSE_RANKType"/>
<xsd:element name="CURRENT_DATE" type="ku:EmptyType"/>
<xsd:element name="CURRENT_TIMESTAMP" type="ku:PrsCURRENT_TIMESTAMPType"/>
<xsd:element name="DBTIMEZONE" type="ku:EmptyType"/>
<xsd:element name="DECODE" type="ku:PrsDECODEExprOpType"/>
<xsd:element name="DECOMPOSE" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="DENSE_RANK" type="ku:PrsDENSE_RANKType"/>
<xsd:element name="DEPTH" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="DEREF" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="DISTINCT" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="DUMP" type="ku:PrsNAryExprOpType"/>
<xsd:element name="EMPTY_BLOB" type="ku:EmptyType"/>
<xsd:element name="EMPTY_CLOB" type="ku:EmptyType"/>
<xsd:element name="EXISTSNODE" type="ku:PrsNAryExprOpType"/>
<xsd:element name="EXP" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="EXTRACT" type="ku:PrsEXTRACTType"/>
<xsd:element name="FIRST_VALUE" type="ku:PrsAVGType"/>
<xsd:element name="FIRST_VALUE_IGNORE_NULLS" type="ku:PrsAVGType"/>
<xsd:element name="FLOOR" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="FROM_TZ" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="FUNCTION_EXPR" type="ku:PrsFUNCTION_EXPRType"/>
<xsd:element name="GREATEST" type="ku:PrsNAryExprOpType"/>
<xsd:element name="GROUP_ID" type="ku:EmptyType"/>
<xsd:element name="GROUPING" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="GROUPING_ID" type="ku:PrsNAryExprOpType"/>
<xsd:element name="HEXTORAW" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="INITCAP" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="INSTR" type="ku:PrsNAryExprOpType"/>
<xsd:element name="INSTRB" type="ku:PrsNAryExprOpType"/>
<xsd:element name="INSTRC" type="ku:PrsNAryExprOpType"/>
<xsd:element name="INSTR2" type="ku:PrsNAryExprOpType"/>
<xsd:element name="INSTR4" type="ku:PrsNAryExprOpType"/>
<xsd:element name="INTERVAL" type="ku:PrsINTERVALType"/>
<xsd:element name="INTERVAL_EXPR" type="ku:PrsINTERVAL_EXPRType"/>
<xsd:element name="JSON_QUERY" type="ku:PrsJSON_QUERYType"/>
<xsd:element name="JSON_VALUE" type="ku:PrsJSON_VALUEType"/>
<xsd:element name="LAST_DAY" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="LAST_VALUE" type="ku:PrsAVGType"/>
<xsd:element name="LAST_VALUE_IGNORE_NULLS" type="ku:PrsAVGType"/>
<xsd:element name="LEAST" type="ku:PrsNAryExprOpType"/>
<xsd:element name="LENGTH" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="LENGTHB" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="LENGTHC" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="LENGTH2" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="LENGTH4" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="LN" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="LOCALTIMESTAMP" type="ku:PrsCURRENT_TIMESTAMPType"/>
<xsd:element name="LOG" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="LOWER" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="LPAD" type="ku:PrsLikeOpType"/>
<xsd:element name="LTRIM" type="ku:PrsNAryExprOpType"/>
<xsd:element name="MAKE_REF" type="ku:PrsNAryExprOpType"/>
<xsd:element name="MAX" type="ku:PrsAVGType"/>
<!-- MEDIAN -->
<xsd:element name="METHOD_EXPR" type="ku:PrsMETHOD_EXPRType"/>
<xsd:element name="MIN" type="ku:PrsAVGType"/>
<xsd:element name="MOD" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="MONTHS_BETWEEN" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="NANVL" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="NCHR" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="NEW_TIME" type="ku:PrsNAryExprOpType"/>
<xsd:element name="NEXT_DAY" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="NLS_CHARSET_DECL_LEN" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="NLS_CHARSET_ID" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="NLS_CHARSET_NAME" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="NLS_INITCAP" type="ku:PrsNAryExprOpType"/>
<xsd:element name="NLS_LOWER" type="ku:PrsNAryExprOpType"/>
<xsd:element name="NLSSORT" type="ku:PrsNAryExprOpType"/>
<xsd:element name="NLS_UPPER" type="ku:PrsNAryExprOpType"/>
<xsd:element name="NTILE" type="ku:PrsAVGType"/>
<xsd:element name="NULL" type="ku:EmptyType"/>
<xsd:element name="NULLIF" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="NUMTODSINTERVAL" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="NUMTOYMINTERVAL" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="NVL" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="NVL2" type="ku:PrsNAryExprOpType"/>
<xsd:element name="OBJ_ID" type="ku:PrsNAryExprOpType"/>
<xsd:element name="ORA_CHECK_SYS_PRIVILEGE" type="ku:PrsLikeOpType"/>
<xsd:element name="ORA_HASH" type="ku:PrsNAryExprOpType"/>
<!-- PERCENT_RANK -->
<xsd:element name="PERCENTILE_CONT" type="ku:PrsPERCENTILE_DISCType"/>
<xsd:element name="PERCENTILE_DISC" type="ku:PrsPERCENTILE_DISCType"/>
<xsd:element name="POWER" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="POWERMULTISET" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="POWERMULTISET_BY_CARDINALITY" type="ku:PrsBinaryExprOpType"/>
<!-- PRESENTNNV, PRESENTNTV,
PREVIOUS, RATIO_TO_REPORT -->
<xsd:element name="RANK" type="ku:PrsDENSE_RANKType"/>
<xsd:element name="RAWTOHEX" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="RAWTONHEX" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="REF" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="REFTOHEX" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="REGEXP_COUNT" type="ku:PrsNAryExprOpType"/>
<xsd:element name="REGEXP_INSTR" type="ku:PrsNAryExprOpType"/>
<xsd:element name="REGEXP_REPLACE" type="ku:PrsNAryExprOpType"/>
<xsd:element name="REGEXP_SUBSTR" type="ku:PrsNAryExprOpType"/>
<!-- REGR_* -->
<xsd:element name="REMAINDER" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="REPLACE" type="ku:PrsLikeOpType"/>
<xsd:element name="ROUND" type="ku:PrsNAryExprOpType"/>
<xsd:element name="ROW_NUMBER" type="ku:PrsROW_NUMBERType"/>
<xsd:element name="ROWIDTOCHAR" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="ROWIDTONCHAR" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="RPAD" type="ku:PrsLikeOpType"/>
<xsd:element name="RTRIM" type="ku:PrsNAryExprOpType"/>
<xsd:element name="SCN_TO_TIMESTAMP" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="SESSIONTIMEZONE" type="ku:EmptyType"/>
<xsd:element name="SET" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="SIGN" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="SIN" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="SINH" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="SOUNDEX" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="SQRT" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="STATS_BINOMIAL_TEST" type="ku:PrsNAryExprOpType"/>
<xsd:element name="STATS_CROSSTAB" type="ku:PrsNAryExprOpType"/>
<xsd:element name="STATS_F_TEST" type="ku:PrsNAryExprOpType"/>
<xsd:element name="STATS_KS_TEST" type="ku:PrsNAryExprOpType"/>
<xsd:element name="STATS_MODE" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="STATS_MW_TEST" type="ku:PrsNAryExprOpType"/>
<xsd:element name="STATS_ONE_WAY_ANOVA" type="ku:PrsNAryExprOpType"/>
<xsd:element name="STATS_T_TEST_ONE" type="ku:PrsNAryExprOpType"/>
<xsd:element name="STATS_T_TEST_PAIRED" type="ku:PrsNAryExprOpType"/>
<xsd:element name="STATS_T_TEST_INDEP" type="ku:PrsNAryExprOpType"/>
<xsd:element name="STATS_T_TEST_INDEPU" type="ku:PrsNAryExprOpType"/>
<xsd:element name="STATS_WSR_TEST" type="ku:PrsNAryExprOpType"/>
<xsd:element name="STDDEV" type="ku:PrsAVGType"/>
<xsd:element name="SUBSTR" type="ku:PrsLikeOpType"/>
<xsd:element name="SUBSTRB" type="ku:PrsLikeOpType"/>
<xsd:element name="SUBSTRC" type="ku:PrsLikeOpType"/>
<xsd:element name="SUBSTR2" type="ku:PrsLikeOpType"/>
<xsd:element name="SUBSTR4" type="ku:PrsLikeOpType"/>
<xsd:element name="SUM" type="ku:PrsAVGType"/>
<xsd:element name="SYS_CONNECT_BY_PATH" type="ku:PrsBinaryExprOpType"/>
<xsd:element name="SYS_CONTEXT" type="ku:PrsLikeOpType"/>
<xsd:element name="SYS_CHECK_PRIVILEGE" type="ku:PrsNAryExprOpType"/>
<xsd:element name="SYS_DBURIGEN" type="ku:PrsNAryExprOpType"/>
<xsd:element name="SYS_EXTRACT_UTC" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="SYS_GUID" type="ku:EmptyType"/>
<xsd:element name="SYS_OP_DV_CHECK" type="ku:PrsNAryExprOpType"/>
<xsd:element name="SYS_OP_MAP_NONNULL" type="ku:PrsNAryExprOpType"/>
<xsd:element name="SYS_TYPEID" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="SYS_XMLAGG" type="ku:PrsNAryExprOpType"/>
<xsd:element name="SYS_XMLGEN" type="ku:PrsNAryExprOpType"/>
<xsd:element name="SYS_XSID_TO_RAW" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="SYSDATE" type="ku:EmptyType"/>
<xsd:element name="SYSTIMESTAMP" type="ku:EmptyType"/>
<xsd:element name="TAN" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="TANH" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="TIMESTAMP_TO_SCN" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="TO_BINARY_DOUBLE" type="ku:PrsNAryExprOpType"/>
<xsd:element name="TO_BINARY_FLOAT" type="ku:PrsNAryExprOpType"/>
<xsd:element name="TO_CHAR" type="ku:PrsNAryExprOpType"/>
<xsd:element name="TO_CLOB" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="TO_DATE" type="ku:PrsNAryExprOpType"/>
<xsd:element name="TO_DSINTERVAL" type="ku:PrsNAryExprOpType"/>
<xsd:element name="TO_LOB" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="TO_MULTI_BYTE" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="TO_NCHAR" type="ku:PrsNAryExprOpType"/>
<xsd:element name="TO_NCLOB" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="TO_NUMBER" type="ku:PrsNAryExprOpType"/>
<xsd:element name="TO_SINGLE_BYTE" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="TO_TIMESTAMP" type="ku:PrsNAryExprOpType"/>
<xsd:element name="TO_TIMESTAMP_TZ" type="ku:PrsNAryExprOpType"/>
<xsd:element name="TO_YMINTERVAL" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="TRANSLATE" type="ku:PrsTRANSLATEType"/>
<xsd:element name="TRIM" type="ku:PrsNAryExprOpType"/>
<!-- TREAT -->
<xsd:element name="TRUNC" type="ku:PrsNAryExprOpType"/>
<xsd:element name="TZ_OFFSET" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="UID" type="ku:EmptyType"/>
<xsd:element name="UNISTR" type="ku:PrsUnaryExprOpType"/>
<!-- UPDATEXML -->
<xsd:element name="UPPER" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="USER" type="ku:EmptyType"/>
<xsd:element name="USERENV" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="VALUE" type="ku:PrsUnaryExprOpType"/>
<!-- VAR_POP, etc. -->
<xsd:element name="VARIANCE" type="ku:PrsAVGType"/>
<xsd:element name="VSIZE" type="ku:PrsUnaryExprOpType"/>
<!-- XMLAGG, etc. -->
<xsd:element name="WIDTH_BUCKET" type="ku:PrsNAryExprOpType"/>
<xsd:element name="XS_SYS_CONTEXT" type="ku:PrsNAryExprOpType"/>
<xsd:element name="EXPRESSION_LIST" type="ku:PrsEXPRESSION_LISTType"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="PrsUnaryExprOpType">
<xsd:choice>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsBinaryExprOpType">
<xsd:choice minOccurs="2" maxOccurs="2">
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsANYALLExprOpType">
<xsd:choice>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
<xsd:group ref="ku:PrsSetExpressionGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsDECODEExprOpType">
<xsd:choice maxOccurs="unbounded">
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
<xsd:group ref="ku:PrsSetExpressionGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsLikeOpType">
<xsd:choice minOccurs="2" maxOccurs="3">
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsNAryExprOpType">
<xsd:choice maxOccurs="unbounded">
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsOptExprOpType">
<xsd:choice minOccurs="0">
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsEXPRESSION_LISTType">
<xsd:sequence>
<xsd:element name="EXPRESSION_LIST_ITEM" type="ku:PrsUnaryExprOpType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsEXPRESSION_LISTType -
expression
[ <USING_CS>NCHAR_CS</USING_CS> ] - we have to cheat here
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsCHRType">
<xsd:sequence>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
<xsd:element name="USING_CS" type="ku:char30ElementWithValue1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsCHRType -
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsMEMBER_OFType">
<xsd:sequence>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
<xsd:element name="COLUMN_REF" type="ku:PrsCOLUMN_REFType"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsMEMBER_OFType - content of [NOT_]MEMBER_OF element
expression
COLUMN_REF
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsDatetimeExprType">
<xsd:sequence>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
<xsd:choice>
<xsd:element name="LOCAL" type="ku:EmptyType"/>
<xsd:element name="TIMEZONE" type="xsd:string"/>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsDatetimeExprType - content of AT element
datetime_value_expr
( LOCAL | TIMEZONE | etc. )
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsEXTRACTType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="YEAR" type="ku:EmptyType"/>
<xsd:element name="MONTH" type="ku:EmptyType"/>
<xsd:element name="DAY" type="ku:EmptyType"/>
<xsd:element name="HOUR" type="ku:EmptyType"/>
<xsd:element name="MINUTE" type="ku:EmptyType"/>
<xsd:element name="SECOND" type="ku:EmptyType"/>
<xsd:element name="TIMEZONE_HOUR" type="ku:EmptyType"/>
<xsd:element name="TIMEZONE_MINUTE" type="ku:EmptyType"/>
<xsd:element name="TIMEZONE_REGION" type="ku:EmptyType"/>
<xsd:element name="TIMEZONE_ABBR" type="ku:EmptyType"/>
</xsd:choice>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsEXTRACTType - content of EXTRACT element
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsINTERVALType">
<xsd:sequence>
<xsd:element name="NEG" type="ku:EmptyType" minOccurs="0"/>
<xsd:choice>
<xsd:sequence>
<xsd:element name="YEAR" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="MONTH" type="ku:intElementWithValue1" minOccurs="0"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="DAY" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="HOUR" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="MINUTE" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="SECOND" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="FRACSECOND" type="ku:intElementWithValue1" minOccurs="0"/>
</xsd:sequence>
</xsd:choice>
<xsd:element name="PRECISION" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="FRACSECOND_PRECISION" type="ku:intElementWithValue1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsINTERVALType - for interval literals
INTERVAL [NEG] YEAR MONTH PRECISION or
INTERVAL [NEG] DAY HOUR MINUTE SECOND FRACSECOND
PRECISION FRACSECOND_PRECISION
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsINTERVAL_EXPRType">
<xsd:sequence>
<xsd:choice>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:choice>
<xsd:element name="YEAR_TO_MONTH" type="ku:EmptyType"/>
<xsd:element name="DAY_TO_SECOND" type="ku:EmptyType"/>
</xsd:choice>
<xsd:element name="PRECISION" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="FRACSECOND_PRECISION" type="ku:intElementWithValue1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsINTERVAL_EXPRType - for interval expressions
INTERVAL_EXPR expr ( YEAR_TO_MONTH | DAY_TO_SECOND )
[ PRECISION ] [ FRACSECOND_PRECISION ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsCURRENT_TIMESTAMPType">
<xsd:sequence>
<xsd:element name="PRECISION" type="ku:intElementWithValue1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsCURRENT_TIMESTAMPType - for CURRENT_TIMESTAMP and LOCALTIMESTAMP
CURRENT_TIMESTAMP | LOCALTIMESTAMP
[ PRECISION ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsCOUNTType">
<xsd:sequence>
<xsd:choice minOccurs="0">
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:element name="KEEP" type="ku:PrsKEEPType" minOccurs="0"/>
<xsd:element name="OVER" type="ku:PrsAnalyticClauseType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsCOUNTType - COUNT(*) or COUNT( expr...) [ KEEP ][ OVER ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsDENSE_RANKType">
<xsd:choice>
<xsd:sequence>
<xsd:choice maxOccurs="unbounded">
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:element name="WITHIN_GROUP">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ORDER_BY" type="ku:PrsOrderByType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:element name="OVER" type="ku:PrsAnalyticClauseType" minOccurs="0"/>
<xsd:sequence/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsDENSE_RANKType - either
DENSE_RANK
expr ...
WITHIN_GROUP
ORDER_BY
or
DENSE_RANK
OVER
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsPERCENTILE_DISCType">
<xsd:choice>
<xsd:sequence>
<xsd:choice>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:element name="WITHIN_GROUP">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ORDER_BY" type="ku:PrsOrderByType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="OVER" type="ku:PrsAnalyticClauseType" minOccurs="0"/>
</xsd:sequence>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsPERCENTILE_DISCType -
PERCENTILE_DISC (or PERCENTILE_CONT)
expr
WITHIN_GROUP
ORDER_BY
[ OVER ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsROW_NUMBERType">
<xsd:sequence>
<xsd:element name="OVER" type="ku:PrsAnalyticClauseType"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsROW_NUMBERType
OVER
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsAVGType">
<xsd:sequence>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
<xsd:element name="KEEP" type="ku:PrsKEEPType" minOccurs="0"/>
<xsd:element name="OVER" type="ku:PrsAnalyticClauseType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsAVGType - used for AVG, MIN, MAX, SUM
expr
[ KEEP
DENSE_RANK_FIRST
ORDER_BY ]
[ OVER
PARTITION_BY ... ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsKEEPType">
<xsd:sequence>
<xsd:element name="DENSE_RANK_FIRST">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ORDER_BY" type="ku:PrsOrderByType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="OVER" type="ku:PrsAnalyticClauseType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsAnalyticClauseType">
<xsd:sequence>
<xsd:element name="PARTITION_BY" type="ku:PrsQueryPartitionClause" minOccurs="0"/>
<xsd:element name="ORDER_BY" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ORDER_SIBLINGS" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="ORDER_BY_LIST" type="ku:PrsORDER_BY_LISTType"/>
<xsd:choice minOccurs="0">
<xsd:element name="ROWS" type="ku:PrsWindowingClauseType"/>
<xsd:element name="RANGE" type="ku:PrsWindowingClauseType"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsAnalyticClauseType
[ PARTITION_BY ]
[ ORDER_BY ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsQueryPartitionClause">
<xsd:sequence>
<xsd:element name="PARTITION_BY_ITEM" type="ku:PrsUnaryExprOpType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsQueryPartitionClause - content of PARTITION_BY
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsWindowingClauseType">
<xsd:sequence>
<xsd:element name="BETWEEN">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="BETWEEN_ITEM" minOccurs="2" maxOccurs="2">
<xsd:complexType>
<xsd:choice>
<xsd:element name="CURRENT_ROW" type="ku:EmptyType"/>
<xsd:sequence>
<xsd:choice>
<xsd:element name="UNBOUNDED" type="ku:EmptyType"/>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:choice minOccurs="0">
<xsd:element name="PRECEDING" type="ku:EmptyType"/>
<xsd:element name="FOLLOWING" type="ku:EmptyType"/>
</xsd:choice>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsWindowingClauseType - used in analytic functions
see SQL reference manual
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsCASEExprOpType">
<xsd:sequence>
<xsd:element name="SELECTOR" type="ku:PrsUnaryExprOpType" minOccurs="0"/>
<xsd:element name="WHEN" type="ku:PrsCASEWHENExprOpType" maxOccurs="unbounded"/>
<xsd:element name="ELSE" type="ku:PrsANYALLExprOpType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsCASEExprOpType - complex type for CASE
[ SELECTOR ]
WHEN ...
[ ELSE ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsCASEWHENExprOpType">
<xsd:sequence>
<xsd:choice>
<xsd:group ref="ku:PrsLogicalConditionGroup"/>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:element name="THEN" type="ku:PrsUnaryExprOpType"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsCASTExprOpType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="MULTISET">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="QUERY" type="ku:PrsSubqueryType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
<xsd:element name="AS_TYPE">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DATATYPE" type="ku:TypeNameElementWithValue1"/>
<xsd:element name="LENGTH" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="CHAR_SEMANTICS" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="PRECISION" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="SCALE" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="TYPE_PROPERTIES" type="ku:optSCHEMA_NAMEType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsCASTExprOpType - complex type for CAST
( MULTISET query | STRING )
AS_TYPE
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsFUNCTION_EXPRType">
<xsd:sequence>
<xsd:element name="FUNCTION_REF" type="ku:PrsFUNCTION_REFType"/>
<xsd:element name="ARG_LIST" type="ku:PrsARG_LISTType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsFUNCTION_EXPRType - complex type for FUNCTION_EXPR
FUNCTION_REF
[ ARG_LIST ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsCONSTRUCTORType">
<xsd:sequence>
<xsd:element name="TYPE_REF" type="ku:PrsTYPE_REFType"/>
<xsd:element name="ARG_LIST" type="ku:PrsARG_LISTType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsCONSTRUCTORType - complex type for CONSTRUCTOR
FUNCTION_REF
[ ARG_LIST ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsMETHOD_EXPRType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="COLUMN_REF" type="ku:PrsCOLUMN_REFType"/>
<xsd:element name="TABLE_REF" type="ku:PrsTABLE_REFType"/>
</xsd:choice>
<xsd:element name="FUNCTION_REF" type="ku:PrsFUNCTION_REFType"/>
<xsd:element name="ARG_LIST" type="ku:PrsARG_LISTType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsMETHOD_EXPRType - complex type for METHOD_EXPR
( column_ref | table_ref )
FUNCTION_REF
[ ARG_LIST ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsFUNCTION_REFType">
<xsd:sequence>
<xsd:element name="SCHEMA" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:choice minOccurs="0">
<xsd:element name="PACKAGE" type="ku:char30ElementWithValue1"/>
<xsd:element name="TYPE" type="ku:char30ElementWithValue1"/>
</xsd:choice>
<xsd:element name="FUNCTION" type="ku:char30ElementWithValue1"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsFUNCTION_REFType - complex type for FUNCTION_REF
[ SCHEMA ]
( PACKAGE | TYPE )
FUNCTION
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsTYPE_REFType">
<xsd:sequence>
<xsd:element name="SCHEMA" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="TYPE" type="ku:char30ElementWithValue1"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsTYPE_REFType - complex type for TYPE_REF
[ SCHEMA ]
TYPE
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsARG_LISTType">
<xsd:sequence>
<xsd:element name="ARG_LIST_ITEM" type="ku:PrsUnaryExprOpType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsARG_LISTType - complex type for ARG_LIST
1...N ARG_LIST_ITEM
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsIS_A_SETType">
<xsd:sequence>
<xsd:element name="COLUMN_REF" type="ku:PrsCOLUMN_REFType"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsIS_A_SETType - complex type for IS_[NOT_]A_SET and IS_[NOT_]EMPTY
just one element - COLUMN_REF
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsIS_JSONType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="COLUMN_REF" type="ku:PrsCOLUMN_REFType"/>
<xsd:element name="LITERAL" type="ku:stringElementWithValue1"/>
<xsd:element name="STRING" type="ku:stringElementWithValue1"/>
</xsd:choice>
<xsd:element name="STRICT" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="WITH_UNIQUE_KEYS" type="ku:EmptyType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsIS_JSONType - complex type for IS_[NOT_]JSON
{ COLUMN_REF | STRING | LITERAL }
[ STRICT ]
[ WITH_UNIQUE_KEYS ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsJSON_EXISTSType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="COLUMN_REF" type="ku:PrsCOLUMN_REFType"/>
<xsd:element name="LITERAL" type="ku:stringElementWithValue1"/>
<xsd:element name="STRING" type="ku:stringElementWithValue1"/>
</xsd:choice>
<xsd:element name="STRING" type="ku:stringElementWithValue1"/>
<xsd:element name="ON_ERROR" type="ku:ON_ERRORElementWithValue1" minOccurs="0"/>
<xsd:element name="ON_EMPTY" type="ku:ON_EMPTYElementWithValue1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsJSON_EXISTSType - complex type for JSON_EXISTS
{ COLUMN_REF | STRING | LITERAL }
STRING
[ ON_ERROR ] [ ON_EMPTY ]
******************************************************************** -->
</xsd:complexType>
<xsd:simpleType name="ON_ERRORElement">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ERROR"/>
<xsd:enumeration value="TRUE"/>
<xsd:enumeration value="EMPTY ARRAY"/>
<xsd:enumeration value="EMPTY OBJECT"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ON_EMPTYElement">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="EMPTY"/>
<xsd:enumeration value="TRUE"/>
<xsd:enumeration value="EMPTY ARRAY"/>
<xsd:enumeration value="EMPTY OBJECT"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ON_ERRORElementWithValue1">
<xsd:simpleContent>
<xsd:extension base="ku:ON_ERRORElement">
<xsd:attribute name="value1" type="ku:ON_ERRORElement"/>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:extension>
</xsd:simpleContent>
<!-- *******************************************************************
ON_ERROR { TRUE | ERROR } - used by JSON_EXISTS, JSON_QUERY, JSON_VALUE
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="ON_EMPTYElementWithValue1">
<xsd:simpleContent>
<xsd:extension base="ku:ON_EMPTYElement">
<xsd:attribute name="value1" type="ku:ON_EMPTYElement"/>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:extension>
</xsd:simpleContent>
<!-- *******************************************************************
ON_EMPTY { TRUE | ERROR} - used by JSON_EXISTS, JSON_QUERY, JSON_VALUE
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsJSON_TEXTCONTAINSType">
<xsd:sequence>
<xsd:element name="COLUMN_REF" type="ku:PrsCOLUMN_REFType"/>
<xsd:element name="STRING" type="ku:stringElementWithValue1"/>
<xsd:element name="STRING" type="ku:stringElementWithValue1"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsJSON_TEXTCONTAINSType - complex type for JSON_TEXTCONTAINS
COLUMN_REF
STRING
STRING
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsJSON_QUERYType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="COLUMN_REF" type="ku:PrsCOLUMN_REFType"/>
<xsd:element name="LITERAL" type="ku:stringElementWithValue1"/>
<xsd:element name="STRING" type="ku:stringElementWithValue1"/>
</xsd:choice>
<xsd:element name="STRING" type="ku:stringElementWithValue1"/>
<xsd:element name="RETURNING" type="ku:PrsRETURNINGType" minOccurs="0"/>
<xsd:element name="ARRAY_WRAPPER" type="ku:ARRAY_WRAPPERElementWithValue1" minOccurs="0"/>
<xsd:element name="ON_ERROR" type="ku:ON_ERRORElementWithValue1" minOccurs="0"/>
<xsd:element name="ON_EMPTY" type="ku:ON_EMPTYElementWithValue1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsJSON_QUERYType - complex type for JSON_QUERY
{ COLUMN_REF | STRING | LITERAL }
STRING
[ RETURNING ... ]
[ ARRAY_WRAPPER ( { CONDITIONAL | UNCONDITIONAL } ) ]
[ ON_ERROR ] [ ON_EMPTY ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsRETURNINGType">
<xsd:sequence>
<xsd:element name="DATATYPE" type="ku:TypeNameElementWithValue1"/>
<xsd:element name="LENGTH" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="CHAR_SEMANTICS" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="PRECISION" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="SCALE" type="ku:intElementWithValue1" minOccurs="0"/>
<xsd:element name="PRETTY" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="ASCII" type="ku:EmptyType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsRETURNINGType - used by JSON_QUERY
RETURNING
DATATYPE
[ LENGTH ]
[ PRETTY ]
[ ASCII ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsJSON_VALUEType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="COLUMN_REF" type="ku:PrsCOLUMN_REFType"/>
<xsd:element name="LITERAL" type="ku:stringElementWithValue1"/>
<xsd:element name="STRING" type="ku:stringElementWithValue1"/>
</xsd:choice>
<xsd:element name="STRING" type="ku:stringElementWithValue1"/>
<xsd:element name="RETURNING" type="ku:PrsRETURNINGType" minOccurs="0"/>
<xsd:choice minOccurs="0">
<xsd:element name="ON_ERROR" type="ku:ON_ERRORElementWithValue1"/>
<xsd:element name="DEFAULT_ON_ERROR">
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<xsd:element name="LITERAL" type="ku:stringElementWithValue1"/>
<xsd:element name="STRING" type="ku:stringElementWithValue1"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:choice minOccurs="0">
<xsd:element name="ON_EMPTY" type="ku:ON_EMPTYElementWithValue1"/>
<xsd:element name="DEFAULT_ON_EMPTY">
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<xsd:element name="LITERAL" type="ku:stringElementWithValue1"/>
<xsd:element name="STRING" type="ku:stringElementWithValue1"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsJSON_VALUEType - complex type for JSON_VALUE
{ COLUMN_REF | STRING | LITERAL }
STRING
[ RETURNING ... ]
[ ON_ERROR | DEFAULT_ON_ERROR ] [ ON_EMPTY | DEFAULT_ON_EMPTY ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsIS_OF_TYPEType">
<xsd:sequence>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="TYPE_REF" type="ku:PrsTYPE_REFType"/>
<xsd:element name="ONLY">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TYPE_REF" type="ku:PrsTYPE_REFType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsIS_OF_TYPEType - complex type for IS_OF_TYPE and IS_NOT_OF_TYPE
expression
( type_ref | ONLY type_ref )
******************************************************************** -->
</xsd:complexType>
<xsd:simpleType name="ARRAY_WRAPPERElement">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="CONDITIONAL"/>
<xsd:enumeration value="UNCONDITIONAL"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ARRAY_WRAPPERElementWithValue1">
<xsd:simpleContent>
<xsd:extension base="ku:ARRAY_WRAPPERElement">
<xsd:attribute name="value1" type="ku:ARRAY_WRAPPERElement"/>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:extension>
</xsd:simpleContent>
<!-- *******************************************************************
ARRAY_WRAPPER { CONDITIONAL | UNCONDITIONAL } - used by JSON_QUERY
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsTRANSLATEType">
<xsd:choice maxOccurs="unbounded">
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
<xsd:element name="USING_CS" type="ku:char30ElementWithValue1"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsCOLUMN_REFType">
<xsd:sequence>
<xsd:element name="SCHEMA" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="TABLE" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="QUERY_ALIAS" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="TABLE_ALIAS" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:choice>
<xsd:element name="COLUMN" type="ku:char30ElementWithValue1"/>
<xsd:element name="ATTRIBUTES">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ATTRIBUTES_ITEM" type="ku:char30ElementWithValue1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:element name="OUTER_JOIN_OP" type="ku:EmptyType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
complexType for COLUMN_REF
[ SCHEMA ]
[ TABLE ]
[ TABLE_ALIAS ]
( COLUMN | ATTRIBUTES )
[ OUTER_JOIN_OP ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsTABLE_REFType">
<xsd:sequence>
<xsd:element name="SCHEMA" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="TABLE" type="ku:char30ElementWithValue1"/>
<xsd:element name="TABLE_ALIAS" type="ku:char30ElementWithValue1" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
complexType for TABLE_REF
[ SCHEMA ]
TABLE
[ TABLE_ALIAS ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsSEQUENCE_REFType">
<xsd:sequence>
<xsd:element name="SCHEMA" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="SEQUENCE" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:choice>
<xsd:element name="CURRVAL" type="ku:EmptyType"/>
<xsd:element name="NEXTVAL" type="ku:EmptyType"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
complexType for SEQUENCE_REF (documented but not used)
[ SCHEMA ]
SEQUENCE
( CURRVAL | NEXTVAL )
******************************************************************** -->
</xsd:complexType>
<!-- parsed queries -->
<xsd:complexType name="PrsQueryType">
<xsd:sequence>
<xsd:element name="QUERY" type="ku:PrsSubqueryType"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsQueryType - the top-level type for all parsed queries
QUERY
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsSubqueryType">
<xsd:sequence>
<xsd:element name="WITH" type="ku:PrsSubqueryFactoringClause" minOccurs="0"/>
<xsd:choice>
<xsd:group ref="ku:PrsSetExpressionGroup"/>
<xsd:group ref="ku:PrsQueryBodyGroup"/>
</xsd:choice>
<xsd:element name="ORDER_BY" type="ku:PrsOrderByType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsSubqueryType
[ SubqueryFactoringClause ]
( SetExpression | QueryBody )
[ OrderByClause ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsSubqueryType1">
<xsd:sequence>
<xsd:choice>
<xsd:group ref="ku:PrsSetExpressionGroup"/>
<xsd:group ref="ku:PrsQueryBodyGroup"/>
</xsd:choice>
<xsd:element name="ORDER_BY" type="ku:PrsOrderByType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsSubqueryType1 - used by subquery factoring clause
( SetExpression | QueryBody )
[ OrderByClause ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsSubqueryFactoringClause">
<xsd:sequence>
<xsd:element name="WITH_ITEM" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="QUERY_ALIAS" type="ku:char30ElementWithValue1"/>
<xsd:element name="COLUMN_ALIAS_LIST" type="ku:PrsCOLUMN_ALIAS_LISTType" minOccurs="0"/>
<xsd:element name="QUERY" type="ku:PrsSubqueryType1"/>
<xsd:element name="ORDER_BY" type="ku:PrsOrderByType" minOccurs="0"/>
<xsd:element name="SEARCH" type="ku:PrsSEARCHType" minOccurs="0"/>
<xsd:element name="CYCLE" type="ku:PrsCYCLEType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsSubqueryFactoringClause - 1-N WITH_ITEM elements containing
QUERY_ALIAS
SELECT ...
[ ORDER_BY ]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsCOLUMN_ALIAS_LISTType">
<xsd:sequence>
<xsd:element name="COLUMN_ALIAS" type="ku:char30ElementWithValue1" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsCOLUMN_ALIAS_LISTType - 1-N COLUMN_ALIAS elements
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsSEARCHType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="DEPTH_FIRST" type="ku:EmptyType"/>
<xsd:element name="BREADTH_FIRST" type="ku:EmptyType"/>
</xsd:choice>
<xsd:element name="ORDER_BY_LIST" type="ku:PrsORDER_BY_LISTType"/>
<xsd:element name="ORDERING_COLUMN" type="ku:char30ElementWithValue1"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsSEARCHType
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsCYCLEType">
<xsd:sequence>
<xsd:element name="COLUMN_ALIAS_LIST" type="ku:PrsCOLUMN_ALIAS_LISTType"/>
<xsd:element name="CYCLE_MARK" type="ku:PrsCYCLE_MARKType"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsCYCLEType
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsCYCLE_MARKType">
<xsd:sequence>
<xsd:element name="COLUMN_ALIAS" type="ku:char30ElementWithValue1"/>
<xsd:element name="CYCLE_VALUE" type="ku:PrsUnaryExprOpType"/>
<xsd:element name="CYCLE_DEFAULT" type="ku:PrsUnaryExprOpType"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsCYCLEMARKType
******************************************************************** -->
</xsd:complexType>
<xsd:group name="PrsSetExpressionGroup">
<xsd:choice>
<xsd:element name="UNION" type="ku:PrsSetExpressionContentType"/>
<xsd:element name="UNION_ALL" type="ku:PrsSetExpressionContentType"/>
<xsd:element name="INTERSECT" type="ku:PrsSetExpressionContentType"/>
<xsd:element name="MINUS" type="ku:PrsSetExpressionContentType"/>
</xsd:choice>
<!-- *******************************************************************
PrsSetExpressionGroup
one of UNION, UNION_ALL, etc.
******************************************************************** -->
</xsd:group>
<xsd:complexType name="PrsSetExpressionContentType">
<xsd:sequence>
<xsd:choice minOccurs="2" maxOccurs="2">
<xsd:element name="QUERY">
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<xsd:group ref="ku:PrsQueryBodyGroup"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:group ref="ku:PrsSetExpressionGroup"/>
</xsd:choice>
<xsd:element name="ORDER_BY" type="ku:PrsOrderByType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsSetExpressionContentType
(QUERY | UNION | ...)
(QUERY | UNION | ...)
[ ORDER_BY ]
******************************************************************** -->
</xsd:complexType>
<xsd:group name="PrsQueryBodyGroup">
<xsd:sequence>
<xsd:element name="SELECT" type="ku:PrsSelectType"/>
<xsd:element name="FROM">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FROM_ITEM" type="ku:PrsFROM_ITEMType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="WHERE" type="ku:PrsExpressionType" minOccurs="0"/>
<xsd:element name="CONNECT_BY" type="ku:PrsConnectByType" minOccurs="0"/>
<xsd:element name="GROUP_BY" type="ku:PrsGroupByType" minOccurs="0"/>
<xsd:element name="HAVING" type="ku:PrsExpressionType" minOccurs="0"/>
</xsd:sequence>
<!-- *******************************************************************
PrsQueryBodyGroup
SELECT
FROM
[ WHERE ]
[ CONNECT_BY ]
[ GROUP_BY ]
[ HAVING ]
******************************************************************** -->
</xsd:group>
<xsd:complexType name="PrsSelectType">
<xsd:sequence>
<xsd:element name="HINT_LIST" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="HINT_LIST_ITEM" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="HINT" type="ku:char30ElementWithValue1"/>
<xsd:element name="QUERYBLOCK" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="HINT_ARGS" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="HINT_ARG" type="ku:char30ElementWithValue1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="UNIQUE" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="SELECT_LIST">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="SELECT_LIST_ITEM" type="ku:PrsSELECT_LIST_ITEMType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsSelectType
[ HINT_LIST ]
[ UNIQUE ]
SELECT_LIST - a sequence of SELECT_LIST_ITEM elements
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsSELECT_LIST_ITEMType">
<xsd:sequence>
<xsd:choice>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
<xsd:group ref="ku:PrsSetExpressionGroup"/>
</xsd:choice>
<xsd:element name="COLUMN_ALIAS" type="ku:char30ElementWithValue1" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PrsFROM_ITEMType">
<xsd:sequence>
<xsd:choice>
<xsd:group ref="ku:PrsTableRefGroup"/>
<xsd:group ref="ku:PrsTableFunctionGroup"/>
<xsd:element name="JOIN" type="ku:PrsJOINType"/>
<xsd:element name="CDB_VIEW" type="ku:PrsCDB_VIEWType"/>
<xsd:sequence>
<xsd:choice>
<xsd:element name="QUERY_ALIAS" type="ku:char30ElementWithValue1"/>
<xsd:element name="QUERY" type="ku:PrsSubqueryType"/>
<xsd:group ref="ku:PrsSetExpressionGroup"/>
</xsd:choice>
<xsd:element name="TABLE_ALIAS" type="ku:char30ElementWithValue1" minOccurs="0"/>
</xsd:sequence>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsFROM_ITEMType
TableRefGroup - [SCHEMA] TABLE [[SUB]PARTITION] [FLASHBACK] [TABLE_ALIAS]
or TableFunctionGroup - TABLE_FUNCTION [OUTER_JOIN_OP] [TABLE_ALIAS]
or JOIN
or (QUERY_ALIAS | QUERY | UNION | UNION_ALL | ...) [TABLE_ALIAS]
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsCDB_VIEWType">
<xsd:choice>
<xsd:group ref="ku:PrsCDB_VIEWGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:group name="PrsCDB_VIEWGroup">
<xsd:sequence>
<xsd:group ref="ku:PrsTableRefGroup"/>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="PrsJOINType">
<xsd:choice>
<!-- inner cross join clause -->
<xsd:choice>
<xsd:sequence>
<xsd:element name="INNER" type="ku:EmptyType"/>
<xsd:group ref="ku:PrsJoinTableReferences"/>
<xsd:group ref="ku:PrsON_or_USING"/>
</xsd:sequence>
<xsd:sequence>
<xsd:choice>
<xsd:element name="CROSS" type="ku:EmptyType"/>
<xsd:element name="NATURAL_INNER" type="ku:EmptyType"/>
</xsd:choice>
<xsd:group ref="ku:PrsJoinTableReferences"/>
</xsd:sequence>
</xsd:choice>
<!-- outer join clause -->
<xsd:sequence>
<xsd:element name="NATURAL" type="ku:EmptyType" minOccurs="0"/>
<xsd:choice minOccurs="0">
<xsd:element name="LEFT_OUTER_JOIN" type="ku:EmptyType"/>
<xsd:element name="FULL_OUTER_JOIN" type="ku:EmptyType"/>
<xsd:element name="RIGHT_OUTER_JOIN" type="ku:EmptyType"/>
</xsd:choice>
<xsd:group ref="ku:PrsJoinTableReferences"/>
<!-- ON/USING omitted in nested joins -->
<xsd:group ref="ku:PrsON_or_USING" minOccurs="0"/>
</xsd:sequence>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsJOINType - either inner cross join or outer join
******************************************************************** -->
</xsd:complexType>
<xsd:group name="PrsJoinTableReferences">
<xsd:sequence>
<xsd:element name="JOIN_TABLE_1" type="ku:PrsJoinTableType"/>
<xsd:element name="JOIN_TABLE_2" type="ku:PrsJoinTableType"/>
</xsd:sequence>
<!-- *******************************************************************
PrsJoinTableReferences group - the 2 tables on which to join
******************************************************************** -->
</xsd:group>
<xsd:complexType name="PrsJoinTableType">
<xsd:choice>
<xsd:sequence>
<xsd:choice>
<xsd:sequence>
<xsd:choice>
<xsd:element name="QUERY" type="ku:PrsSubqueryType"/>
<xsd:element name="UNION" type="ku:PrsSetExpressionContentType"/>
<xsd:element name="UNION_ALL" type="ku:PrsSetExpressionContentType"/>
<xsd:element name="INTERSECT" type="ku:PrsSetExpressionContentType"/>
<xsd:element name="MINUS" type="ku:PrsSetExpressionContentType"/>
</xsd:choice>
<xsd:element name="TABLE_ALIAS" type="ku:char30ElementWithValue1" minOccurs="0"/>
</xsd:sequence>
<xsd:group ref="ku:PrsTableRefGroup"/>
</xsd:choice>
<xsd:element name="PARTITION_BY" type="ku:PrsQueryPartitionClause" minOccurs="0"/>
</xsd:sequence>
<xsd:element name="JOIN" type="ku:PrsJOINType"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsJoinTableType
******************************************************************** -->
</xsd:complexType>
<xsd:group name="PrsON_or_USING">
<xsd:choice>
<xsd:element name="ON" type="ku:PrsExpressionType"/>
<xsd:element name="USING">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="COLUMN" type="ku:char30ElementWithValue1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<!-- *******************************************************************
PrsON_or_USING - in join clause
******************************************************************** -->
</xsd:group>
<xsd:complexType name="PrsTableRefType">
<xsd:choice>
<xsd:group ref="ku:PrsTableRefGroup"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:group name="PrsTableRefGroup">
<xsd:sequence>
<xsd:element name="SCHEMA" type="ku:char30ElementWithValue1" minOccurs="0"/>
<xsd:element name="TABLE" type="ku:char30ElementWithValue1"/>
<xsd:choice minOccurs="0">
<xsd:element name="PARTITION" type="ku:char30ElementWithValue1"/>
<xsd:element name="SUBPARTITION" type="ku:char30ElementWithValue1"/>
</xsd:choice>
<xsd:element name="FLASHBACK" type="ku:PrsFLASHBACKType" minOccurs="0"/>
<xsd:element name="TABLE_ALIAS" type="ku:char30ElementWithValue1" minOccurs="0"/>
</xsd:sequence>
<!-- *******************************************************************
PrsTableRefType
PrsTableRefGroup
[ SCHEMA ] TABLE [ TABLE_ALIAS] [ FLASHBACK ]
******************************************************************** -->
</xsd:group>
<xsd:complexType name="PrsFLASHBACKType">
<xsd:sequence>
<xsd:element name="VERSIONS" type="ku:PrsVERSIONSType" minOccurs="0"/>
<xsd:element name="AS_OF" type="ku:PrsSCNorTIMESTAMPType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsVERSIONSType">
<xsd:sequence>
<xsd:element name="LOW" type="ku:PrsSCNorTIMESTAMPType"/>
<xsd:element name="HIGH" type="ku:PrsSCNorTIMESTAMPType"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsSCNorTIMESTAMPType">
<xsd:choice>
<xsd:element name="SCN" type="ku:PrsSCNorTIMESTAMPValueType"/>
<xsd:element name="TIMESTAMP" type="ku:PrsSCNorTIMESTAMPValueType"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsSCNorTIMESTAMPValueType">
<xsd:choice>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
<xsd:element name="MINVALUE" type="ku:EmptyType"/>
<xsd:element name="MAXVALUE" type="ku:EmptyType"/>
</xsd:choice>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:group name="PrsTableFunctionGroup">
<xsd:sequence>
<xsd:element name="TABLE_FUNCTION" type="ku:PrsColExpressionType"/>
<xsd:element name="OUTER_JOIN_OP" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="TABLE_ALIAS" type="ku:char30ElementWithValue1" minOccurs="0"/>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="PrsConnectByType">
<xsd:sequence>
<xsd:element name="START_WITH" type="ku:PrsExpressionType" minOccurs="0"/>
<xsd:element name="NOCYCLE" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="CONDITION" type="ku:PrsExpressionType"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsConnectByType
START_WITH
CONDITION
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsGroupByType">
<xsd:sequence>
<xsd:element name="EXPRESSION_LIST">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="EXPRESSION_LIST_ITEM" maxOccurs="unbounded">
<xsd:complexType>
<xsd:choice>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
<xsd:element name="ROLLUP" type="ku:PrsROLLUPType"/>
<xsd:element name="CUBE" type="ku:PrsROLLUPType"/>
<xsd:element name="GROUPING_SETS" type="ku:PrsGROUPING_SETSType"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsGroupByType
EXPRESSION_LIST
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsROLLUPType">
<xsd:sequence>
<xsd:element name="EXPRESSION_LIST" type="ku:PrsEXPRESSION_LISTType"/>
</xsd:sequence>
<!-- *******************************************************************
PrsROLLUPType
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsGROUPING_SETSType">
<xsd:sequence>
<xsd:element name="EXPRESSION_LIST">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="EXPRESSION_LIST_ITEM" maxOccurs="unbounded">
<xsd:complexType>
<xsd:choice>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
<xsd:element name="ROLLUP" type="ku:PrsROLLUPType"/>
<xsd:element name="CUBE" type="ku:PrsROLLUPType"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsGROUPING_SETSType
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsOrderByType">
<xsd:sequence>
<xsd:element name="ORDER_SIBLINGS" type="ku:EmptyType" minOccurs="0"/>
<xsd:element name="ORDER_BY_LIST" type="ku:PrsORDER_BY_LISTType"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
<!-- *******************************************************************
PrsOrderByType
[ ORDER_SIBLINGS ]
ORDER_BY_LIST
******************************************************************** -->
</xsd:complexType>
<xsd:complexType name="PrsORDER_BY_LISTType">
<xsd:sequence>
<xsd:element name="ORDER_BY_LIST_ITEM" type="ku:PrsORDER_BY_LIST_ITEMType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
<xsd:complexType name="PrsORDER_BY_LIST_ITEMType">
<xsd:sequence>
<xsd:choice>
<xsd:group ref="ku:PrsCompoundExpressionGroup"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="src" type="ku:srcType"/>
</xsd:complexType>
</xsd:schema>
OHA YOOOO