MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/rdbms/xml/schema/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/rdbms/xml/schema/kusparse.xsd

<?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