XQuery: Module EOF XQuery ::= Module EOF no referencesModule: VersionDecl LibraryModule MainModule Module ::= VersionDecl? ( LibraryModule | MainModule ) referenced by: XQuery VersionDecl: jsoniq encoding StringLiteral version StringLiteral encoding StringLiteral Separator VersionDecl ::= 'jsoniq' ( 'encoding' StringLiteral | 'version' StringLiteral ( 'encoding' StringLiteral )? ) Separator referenced by: Module LibraryModule: ModuleDecl Prolog LibraryModule ::= ModuleDecl Prolog referenced by: Module ModuleDecl: module namespace NCName = URILiteral Separator ModuleDecl ::= 'module' 'namespace' NCName '=' URILiteral Separator referenced by: LibraryModule Prolog: DefaultNamespaceDecl Setter NamespaceDecl Import FTOptionDecl Separator ContextItemDecl AnnotatedDecl OptionDecl Separator Prolog ::= ( ( DefaultNamespaceDecl | Setter | NamespaceDecl | Import | FTOptionDecl ) Separator )* ( ( ContextItemDecl | AnnotatedDecl | OptionDecl ) Separator )* referenced by: LibraryModule MainModule Separator: ; Separator ::= ';' referenced by: ModuleDecl Prolog VersionDecl Setter: BoundarySpaceDecl DefaultCollationDecl BaseURIDecl ConstructionDecl OrderingModeDecl EmptyOrderDecl RevalidationDecl CopyNamespacesDecl DecimalFormatDecl Setter ::= BoundarySpaceDecl | DefaultCollationDecl | BaseURIDecl | ConstructionDecl | OrderingModeDecl | EmptyOrderDecl | RevalidationDecl | CopyNamespacesDecl | DecimalFormatDecl referenced by: Prolog BoundarySpaceDecl: declare boundary-space preserve strip BoundarySpaceDecl ::= 'declare' 'boundary-space' ( 'preserve' | 'strip' ) referenced by: Setter DefaultCollationDecl: declare default collation URILiteral DefaultCollationDecl ::= 'declare' 'default' 'collation' URILiteral referenced by: Setter BaseURIDecl: declare base-uri URILiteral BaseURIDecl ::= 'declare' 'base-uri' URILiteral referenced by: Setter ConstructionDecl: declare construction strip preserve ConstructionDecl ::= 'declare' 'construction' ( 'strip' | 'preserve' ) referenced by: Setter OrderingModeDecl: declare ordering ordered unordered OrderingModeDecl ::= 'declare' 'ordering' ( 'ordered' | 'unordered' ) referenced by: Setter EmptyOrderDecl: declare default order empty greatest least EmptyOrderDecl ::= 'declare' 'default' 'order' 'empty' ( 'greatest' | 'least' ) referenced by: Setter CopyNamespacesDecl: declare copy-namespaces PreserveMode , InheritMode CopyNamespacesDecl ::= 'declare' 'copy-namespaces' PreserveMode ',' InheritMode referenced by: Setter PreserveMode: preserve no-preserve PreserveMode ::= 'preserve' | 'no-preserve' referenced by: CopyNamespacesDecl InheritMode: inherit no-inherit InheritMode ::= 'inherit' | 'no-inherit' referenced by: CopyNamespacesDecl DecimalFormatDecl: declare decimal-format EQName default decimal-format DFPropertyName = StringLiteral DecimalFormatDecl ::= 'declare' ( 'decimal-format' EQName | 'default' 'decimal-format' ) ( DFPropertyName '=' StringLiteral )* referenced by: Setter DFPropertyName: decimal-separator grouping-separator infinity minus-sign NaN percent per-mille zero-digit digit pattern-separator DFPropertyName ::= 'decimal-separator' | 'grouping-separator' | 'infinity' | 'minus-sign' | 'NaN' | 'percent' | 'per-mille' | 'zero-digit' | 'digit' | 'pattern-separator' referenced by: DecimalFormatDecl Import: SchemaImport ModuleImport Import ::= SchemaImport | ModuleImport referenced by: Prolog SchemaImport: import schema SchemaPrefix URILiteral at URILiteral , SchemaImport ::= 'import' 'schema' SchemaPrefix? URILiteral ( 'at' URILiteral ( ',' URILiteral )* )? referenced by: Import SchemaPrefix: namespace NCName = default element namespace SchemaPrefix ::= 'namespace' NCName '=' | 'default' 'element' 'namespace' referenced by: SchemaImport ModuleImport: import module namespace NCName = URILiteral at URILiteral , ModuleImport ::= 'import' 'module' ( 'namespace' NCName '=' )? URILiteral ( 'at' URILiteral ( ',' URILiteral )* )? referenced by: Import NamespaceDecl: declare namespace NCName = URILiteral NamespaceDecl ::= 'declare' 'namespace' NCName '=' URILiteral referenced by: Prolog DefaultNamespaceDecl: declare default element function namespace URILiteral DefaultNamespaceDecl ::= 'declare' 'default' ( 'element' | 'function' ) 'namespace' URILiteral referenced by: Prolog FTOptionDecl: declare ft-option FTMatchOptions FTOptionDecl ::= 'declare' 'ft-option' FTMatchOptions referenced by: Prolog AnnotatedDecl: declare CompatibilityAnnotation Annotation VarDecl FunctionDecl CollectionDecl IndexDecl ICDecl AnnotatedDecl ::= 'declare' ( CompatibilityAnnotation | Annotation )* ( VarDecl | FunctionDecl | CollectionDecl | IndexDecl | ICDecl ) referenced by: Prolog CompatibilityAnnotation: updating CompatibilityAnnotation ::= 'updating' referenced by: AnnotatedDecl Annotation: % EQName ( Literal , ) Annotation ::= '%' EQName ( '(' Literal ( ',' Literal )* ')' )? referenced by: AnnotatedDecl FunctionTest InlineFunctionExpr VarDeclStatement VarDecl: variable $ VarName TypeDeclaration := VarValue external := VarDefaultValue VarDecl ::= 'variable' '$' VarName TypeDeclaration? ( ':=' VarValue | 'external' ( ':=' VarDefaultValue )? ) referenced by: AnnotatedDecl VarValue: ExprSingle VarValue ::= ExprSingle referenced by: ContextItemDecl VarDecl VarDefaultValue: ExprSingle VarDefaultValue ::= ExprSingle referenced by: ContextItemDecl VarDecl ContextItemDecl: declare context item as ItemType := VarValue external := VarDefaultValue ContextItemDecl ::= 'declare' 'context' 'item' ( 'as' ItemType )? ( ':=' VarValue | 'external' ( ':=' VarDefaultValue )? ) referenced by: Prolog ParamList: Param , ParamList ::= Param ( ',' Param )* referenced by: FunctionDecl InlineFunctionExpr Param: $ EQName TypeDeclaration Param ::= '$' EQName TypeDeclaration? referenced by: ParamList FunctionBody: EnclosedExpr FunctionBody ::= EnclosedExpr referenced by: InlineFunctionExpr EnclosedExpr: { Expr } EnclosedExpr ::= '{' Expr '}' referenced by: FunctionBody OptionDecl: declare option EQName StringLiteral OptionDecl ::= 'declare' 'option' EQName StringLiteral referenced by: Prolog Expr: ExprSingle , Expr ::= ExprSingle ( ',' ExprSingle )* referenced by: ArrayConstructor ArrayLookup CatchClause CompAttrConstructor CompElemConstructor CompPIConstructor EnclosedExpr ExtensionExpr FTWeight FTWordsValue IfExpr IfStatement JSONSimpleObjectUnion OrderedExpr ParenthesizedExpr Predicate PrefixExpr StatementsAndExpr StatementsAndOptionalExpr SwitchExpr SwitchStatement TryTargetExpr TypeswitchExpr TypeswitchStatement URIExpr UnorderedExpr ValidateExpr WhileStatement FLWORExpr: InitialClause IntermediateClause ReturnClause FLWORExpr ::= InitialClause IntermediateClause* ReturnClause referenced by: ExprSingle InitialClause: ForClause LetClause WindowClause InitialClause ::= ForClause | LetClause | WindowClause referenced by: FLWORExpr FLWORStatement IntermediateClause IntermediateClause: InitialClause WhereClause GroupByClause OrderByClause CountClause IntermediateClause ::= InitialClause | WhereClause | GroupByClause | OrderByClause | CountClause referenced by: FLWORExpr FLWORStatement ForClause: for from ForBinding , ForClause ::= ( 'for' | 'from' ) ForBinding ( ',' ForBinding )* referenced by: InitialClause ForBinding: $ VarName TypeDeclaration AllowingEmpty PositionalVar FTScoreVar in ExprSingle ForBinding ::= '$' VarName TypeDeclaration? AllowingEmpty? PositionalVar? FTScoreVar? 'in' ExprSingle referenced by: ForClause AllowingEmpty: allowing empty AllowingEmpty ::= 'allowing' 'empty' referenced by: ForBinding PositionalVar: at $ VarName PositionalVar ::= 'at' '$' VarName referenced by: ForBinding WindowVars FTScoreVar: score $ VarName FTScoreVar ::= 'score' '$' VarName referenced by: ForBinding LetBinding LetClause: let LetBinding , LetClause ::= 'let' LetBinding ( ',' LetBinding )* referenced by: InitialClause LetBinding: $ VarName TypeDeclaration FTScoreVar := ExprSingle LetBinding ::= ( '$' VarName TypeDeclaration? | FTScoreVar ) ':=' ExprSingle referenced by: LetClause WindowClause: for from TumblingWindowClause SlidingWindowClause WindowClause ::= ( 'for' | 'from' ) ( TumblingWindowClause | SlidingWindowClause ) referenced by: InitialClause TumblingWindowClause: tumbling window $ VarName TypeDeclaration in ExprSingle WindowStartCondition WindowEndCondition TumblingWindowClause ::= 'tumbling' 'window' '$' VarName TypeDeclaration? 'in' ExprSingle WindowStartCondition WindowEndCondition? referenced by: WindowClause SlidingWindowClause: sliding window $ VarName TypeDeclaration in ExprSingle WindowStartCondition WindowEndCondition SlidingWindowClause ::= 'sliding' 'window' '$' VarName TypeDeclaration? 'in' ExprSingle WindowStartCondition WindowEndCondition referenced by: WindowClause WindowStartCondition: start WindowVars when ExprSingle WindowStartCondition ::= 'start' WindowVars 'when' ExprSingle referenced by: SlidingWindowClause TumblingWindowClause WindowEndCondition: only end WindowVars when ExprSingle WindowEndCondition ::= 'only'? 'end' WindowVars 'when' ExprSingle referenced by: SlidingWindowClause TumblingWindowClause WindowVars: $ CurrentItem PositionalVar previous $ PreviousItem next $ NextItem WindowVars ::= ( '$' CurrentItem )? PositionalVar? ( 'previous' '$' PreviousItem )? ( 'next' '$' NextItem )? referenced by: WindowEndCondition WindowStartCondition CurrentItem: EQName CurrentItem ::= EQName referenced by: WindowVars PreviousItem: EQName PreviousItem ::= EQName referenced by: WindowVars NextItem: EQName NextItem ::= EQName referenced by: WindowVars CountClause: count $ VarName CountClause ::= 'count' '$' VarName referenced by: IntermediateClause WhereClause: where ExprSingle WhereClause ::= 'where' ExprSingle referenced by: IntermediateClause GroupByClause: group by GroupingSpecList GroupByClause ::= 'group' 'by' GroupingSpecList referenced by: IntermediateClause GroupingSpecList: GroupingSpec , GroupingSpecList ::= GroupingSpec ( ',' GroupingSpec )* referenced by: GroupByClause GroupingSpec: GroupingVariable TypeDeclaration := ExprSingle collation URILiteral GroupingSpec ::= GroupingVariable ( TypeDeclaration? ':=' ExprSingle )? ( 'collation' URILiteral )? referenced by: GroupingSpecList GroupingVariable: ExprSingle GroupingVariable ::= ExprSingle referenced by: GroupingSpec OrderByClause: order by stable order by OrderSpecList OrderByClause ::= ( 'order' 'by' | 'stable' 'order' 'by' ) OrderSpecList referenced by: IntermediateClause OrderSpecList: OrderSpec , OrderSpecList ::= OrderSpec ( ',' OrderSpec )* referenced by: OrderByClause OrderSpec: ExprSingle OrderModifier OrderSpec ::= ExprSingle OrderModifier referenced by: OrderSpecList OrderModifier: ascending descending empty greatest least collation URILiteral OrderModifier ::= ( 'ascending' | 'descending' )? ( 'empty' ( 'greatest' | 'least' ) )? ( 'collation' URILiteral )? referenced by: OrderSpec ReturnClause: return select ExprSingle ReturnClause ::= ( 'return' | 'select' ) ExprSingle referenced by: FLWORExpr QuantifiedExpr: some every $ VarName TypeDeclaration in ExprSingle , satisfies ExprSingle QuantifiedExpr ::= ( 'some' | 'every' ) '$' VarName TypeDeclaration? 'in' ExprSingle ( ',' '$' VarName TypeDeclaration? 'in' ExprSingle )* 'satisfies' ExprSingle referenced by: ExprSimple SwitchExpr: switch ( Expr ) SwitchCaseClause default return select ExprSingle SwitchExpr ::= 'switch' '(' Expr ')' SwitchCaseClause+ 'default' ( 'return' | 'select' ) ExprSingle referenced by: ExprSingle SwitchCaseClause: case SwitchCaseOperand return select ExprSingle SwitchCaseClause ::= ( 'case' SwitchCaseOperand )+ ( 'return' | 'select' ) ExprSingle referenced by: SwitchExpr SwitchCaseOperand: ExprSingle SwitchCaseOperand ::= ExprSingle referenced by: SwitchCaseClause SwitchCaseStatement TypeswitchExpr: typeswitch ( Expr ) CaseClause default $ VarName return select ExprSingle TypeswitchExpr ::= 'typeswitch' '(' Expr ')' CaseClause+ 'default' ( '$' VarName )? ( 'return' | 'select' ) ExprSingle referenced by: ExprSingle CaseClause: case $ VarName as SequenceTypeUnion return select ExprSingle CaseClause ::= 'case' ( '$' VarName 'as' )? SequenceTypeUnion ( 'return' | 'select' ) ExprSingle referenced by: TypeswitchExpr SequenceTypeUnion: SequenceType | SequenceTypeUnion ::= SequenceType ( '|' SequenceType )* referenced by: CaseClause IfExpr: if ( Expr ) then ExprSingle else ExprSingle IfExpr ::= 'if' '(' Expr ')' 'then' ExprSingle 'else' ExprSingle referenced by: ExprSingle TryCatchExpr: TryClause CatchClause TryCatchExpr ::= TryClause CatchClause+ referenced by: ExprSingle TryClause: try { TryTargetExpr } TryClause ::= 'try' '{' TryTargetExpr '}' referenced by: TryCatchExpr TryTargetExpr: Expr TryTargetExpr ::= Expr referenced by: TryClause CatchClause: catch CatchErrorList { Expr } CatchClause ::= 'catch' CatchErrorList '{' Expr '}' referenced by: TryCatchExpr CatchErrorList: NameTest | CatchErrorList ::= NameTest ( '|' NameTest )* referenced by: CatchClause TryCatchStatement OrExpr: AndExpr or OrExpr ::= AndExpr ( 'or' AndExpr )* referenced by: ExprSimple AndExpr: NotExpr and AndExpr ::= NotExpr ( 'and' NotExpr )* referenced by: OrExpr NotExpr: not ComparisonExpr NotExpr ::= 'not'* ComparisonExpr referenced by: AndExpr ComparisonExpr: FTContainsExpr ValueComp GeneralComp NodeComp FTContainsExpr ComparisonExpr ::= FTContainsExpr ( ( ValueComp | GeneralComp | NodeComp ) FTContainsExpr )? referenced by: NotExpr FTContainsExpr: StringConcatExpr contains text FTSelection FTIgnoreOption FTContainsExpr ::= StringConcatExpr ( 'contains' 'text' FTSelection FTIgnoreOption? )? referenced by: ComparisonExpr StringConcatExpr: RangeExpr || StringConcatExpr ::= RangeExpr ( '||' RangeExpr )* referenced by: FTContainsExpr RangeExpr: AdditiveExpr to AdditiveExpr RangeExpr ::= AdditiveExpr ( 'to' AdditiveExpr )? referenced by: StringConcatExpr AdditiveExpr: MultiplicativeExpr + - AdditiveExpr ::= MultiplicativeExpr ( ( '+' | '-' ) MultiplicativeExpr )* referenced by: FTRange FTWindow RangeExpr MultiplicativeExpr: UnionExpr * div idiv mod MultiplicativeExpr ::= UnionExpr ( ( '*' | 'div' | 'idiv' | 'mod' ) UnionExpr )* referenced by: AdditiveExpr UnionExpr: IntersectExceptExpr union | UnionExpr ::= IntersectExceptExpr ( ( 'union' | '|' ) IntersectExceptExpr )* referenced by: FTIgnoreOption MultiplicativeExpr IntersectExceptExpr: InstanceofExpr intersect except IntersectExceptExpr ::= InstanceofExpr ( ( 'intersect' | 'except' ) InstanceofExpr )* referenced by: UnionExpr InstanceofExpr: TreatExpr instance of SequenceType InstanceofExpr ::= TreatExpr ( 'instance' 'of' SequenceType )? referenced by: IntersectExceptExpr TreatExpr: CastableExpr treat as SequenceType TreatExpr ::= CastableExpr ( 'treat' 'as' SequenceType )? referenced by: InstanceofExpr CastableExpr: CastExpr castable as SingleType CastableExpr ::= CastExpr ( 'castable' 'as' SingleType )? referenced by: TreatExpr CastExpr: UnaryExpr cast as SingleType CastExpr ::= UnaryExpr ( 'cast' 'as' SingleType )? referenced by: CastableExpr UnaryExpr: - + ValueExpr UnaryExpr ::= ( '-' | '+' )* ValueExpr referenced by: CastExpr ValueExpr: ValidateExpr SimpleMapExpr ExtensionExpr ValueExpr ::= ValidateExpr | SimpleMapExpr | ExtensionExpr referenced by: UnaryExpr SimpleMapExpr: PathExpr ! SimpleMapExpr ::= PathExpr ( '!' PathExpr )* referenced by: ValueExpr GeneralComp: = != < <= > >= GeneralComp ::= '=' | '!=' | '<' | '<=' | '>' | '>=' referenced by: ComparisonExpr ValueComp: eq ne lt le gt ge ValueComp ::= 'eq' | 'ne' | 'lt' | 'le' | 'gt' | 'ge' referenced by: ComparisonExpr NodeComp: is << >> NodeComp ::= 'is' | '<<' | '>>' referenced by: ComparisonExpr ValidateExpr: validate ValidationMode type TypeName { Expr } ValidateExpr ::= 'validate' ( ValidationMode | 'type' TypeName )? '{' Expr '}' referenced by: ValueExpr ValidationMode: lax strict ValidationMode ::= 'lax' | 'strict' referenced by: ValidateExpr ExtensionExpr: Pragma { Expr } ExtensionExpr ::= Pragma+ '{' Expr? '}' referenced by: ValueExpr Pragma: (# S EQName S PragmaContents #) Pragma ::= '(#' S? EQName ( S PragmaContents )? '#)' /* ws: explicit */ referenced by: ExtensionExpr FTExtensionSelection PathExpr: / RelativePathExpr // RelativePathExpr RelativePathExpr PathExpr ::= '/' ( RelativePathExpr | ) | '//' RelativePathExpr | RelativePathExpr referenced by: ICCollSequenceUnique ICForeignKeyValues IndexDomainExpr IndexKeyExpr SimpleMapExpr RelativePathExpr: PostfixExpr / // ! StepExpr RelativePathExpr ::= PostfixExpr ( ( '/' | '//' | '!' ) StepExpr )* referenced by: PathExpr StepExpr: PostfixExpr AxisStep StepExpr ::= PostfixExpr | AxisStep referenced by: RelativePathExpr AxisStep: ReverseStep ForwardStep PredicateList AxisStep ::= ( ReverseStep | ForwardStep ) PredicateList referenced by: StepExpr ForwardStep: ForwardAxis NodeTest AbbrevForwardStep ForwardStep ::= ForwardAxis NodeTest | AbbrevForwardStep referenced by: AxisStep ForwardAxis: child :: descendant :: attribute :: self :: descendant-or-self :: following-sibling :: following :: ForwardAxis ::= 'child' '::' | 'descendant' '::' | 'attribute' '::' | 'self' '::' | 'descendant-or-self' '::' | 'following-sibling' '::' | 'following' '::' referenced by: ForwardStep AbbrevForwardStep: @ NodeTest AbbrevForwardStep ::= '@'? NodeTest referenced by: ForwardStep ReverseStep: ReverseAxis NodeTest AbbrevReverseStep ReverseStep ::= ReverseAxis NodeTest | AbbrevReverseStep referenced by: AxisStep ReverseAxis: parent :: ancestor :: preceding-sibling :: preceding :: ancestor-or-self :: ReverseAxis ::= 'parent' '::' | 'ancestor' '::' | 'preceding-sibling' '::' | 'preceding' '::' | 'ancestor-or-self' '::' referenced by: ReverseStep AbbrevReverseStep: .. AbbrevReverseStep ::= '..' referenced by: ReverseStep NodeTest: KindTest NameTest NodeTest ::= KindTest | NameTest referenced by: AbbrevForwardStep ForwardStep ReverseStep NameTest: EQName Wildcard NameTest ::= EQName | Wildcard referenced by: CatchErrorList NodeTest PostfixExpr: PrimaryExpr Predicate ArgumentList ObjectLookup ArrayLookup ArrayUnboxing PostfixExpr ::= PrimaryExpr ( Predicate | ArgumentList | ObjectLookup | ArrayLookup | ArrayUnboxing )* referenced by: JSONDeleteExpr JSONRenameExpr JSONReplaceExpr RelativePathExpr StepExpr ObjectLookup: . StringLiteral NCName ParenthesizedExpr VarRef ContextItemExpr ObjectLookup ::= '.' ( StringLiteral | NCName | ParenthesizedExpr | VarRef | ContextItemExpr ) referenced by: PostfixExpr ArrayLookup: [ [ Expr ] ] ArrayLookup ::= '[' '[' Expr ']' ']' referenced by: PostfixExpr ArrayUnboxing: [ ] ArrayUnboxing ::= '[' ']' referenced by: PostfixExpr ArgumentList: ( Argument , ) ArgumentList ::= '(' ( Argument ( ',' Argument )* )? ')' referenced by: FunctionCall PostfixExpr PredicateList: Predicate PredicateList ::= Predicate* referenced by: AxisStep Predicate: [ Expr ] Predicate ::= '[' Expr ']' referenced by: PostfixExpr PredicateList Literal: NumericLiteral StringLiteral BooleanLiteral NullLiteral Literal ::= NumericLiteral | StringLiteral | BooleanLiteral | NullLiteral referenced by: Annotation PrimaryExpr BooleanLiteral: true false BooleanLiteral ::= 'true' | 'false' referenced by: Literal NullLiteral: null NullLiteral ::= 'null' referenced by: Literal NumericLiteral: IntegerLiteral DecimalLiteral DoubleLiteral NumericLiteral ::= IntegerLiteral | DecimalLiteral | DoubleLiteral referenced by: Literal VarRef: $ VarName VarRef ::= '$' VarName referenced by: ICCollNode ICCollSequence ICCollSequenceUnique ICForeignKeyValues ObjectLookup PrimaryExpr VarName: EQName VarName ::= EQName referenced by: AssignStatement CaseClause CaseStatement CountClause FTScoreVar ForBinding LetBinding PositionalVar QuantifiedExpr SlidingWindowClause TransformExpr TumblingWindowClause TypeswitchExpr TypeswitchStatement VarDecl VarDeclStatement VarRef ParenthesizedExpr: ( Expr ) ParenthesizedExpr ::= '(' Expr? ')' referenced by: ObjectLookup PrimaryExpr ContextItemExpr: $$ ContextItemExpr ::= '$$' referenced by: ObjectLookup PrimaryExpr OrderedExpr: ordered { Expr } OrderedExpr ::= 'ordered' '{' Expr '}' referenced by: PrimaryExpr UnorderedExpr: unordered { Expr } UnorderedExpr ::= 'unordered' '{' Expr '}' referenced by: PrimaryExpr FunctionCall: FunctionName ArgumentList FunctionCall ::= FunctionName ArgumentList referenced by: PrimaryExpr Argument: ExprSingle ArgumentPlaceholder Argument ::= ExprSingle | ArgumentPlaceholder referenced by: ArgumentList ArgumentPlaceholder: ? ArgumentPlaceholder ::= '?' referenced by: Argument Constructor: DirectConstructor ComputedConstructor Constructor ::= DirectConstructor | ComputedConstructor referenced by: PrimaryExpr DirectConstructor: DirElemConstructor DirCommentConstructor DirPIConstructor DirectConstructor ::= DirElemConstructor | DirCommentConstructor | DirPIConstructor referenced by: Constructor DirElemContent DirElemConstructor: < QName DirAttributeList /> > DirElemContent </ QName S > DirElemConstructor ::= '<' QName DirAttributeList ( '/>' | '>' DirElemContent* '</' QName S? '>' ) /* ws: explicit */ referenced by: DirectConstructor DirAttributeList: S QName S = S DirAttributeValue DirAttributeList ::= ( S ( QName S? '=' S? DirAttributeValue )? )* /* ws: explicit */ referenced by: DirElemConstructor DirAttributeValue: " EscapeQuot QuotAttrValueContent " ' EscapeApos AposAttrValueContent ' DirAttributeValue ::= '"' ( EscapeQuot | QuotAttrValueContent )* '"' | "'" ( EscapeApos | AposAttrValueContent )* "'" /* ws: explicit */ referenced by: DirAttributeList QuotAttrValueContent: QuotAttrContentChar CommonContent QuotAttrValueContent ::= QuotAttrContentChar | CommonContent referenced by: DirAttributeValue AposAttrValueContent: AposAttrContentChar CommonContent AposAttrValueContent ::= AposAttrContentChar | CommonContent referenced by: DirAttributeValue DirElemContent: DirectConstructor CDataSection CommonContent ElementContentChar DirElemContent ::= DirectConstructor | CDataSection | CommonContent | ElementContentChar referenced by: DirElemConstructor DirCommentConstructor: <!-- DirCommentContents --> DirCommentConstructor ::= '<!--' DirCommentContents '-->' /* ws: explicit */ referenced by: DirectConstructor DirPIConstructor: <? PITarget S DirPIContents ?> DirPIConstructor ::= '<?' PITarget ( S DirPIContents )? '?>' /* ws: explicit */ referenced by: DirectConstructor ComputedConstructor: CompDocConstructor CompElemConstructor CompAttrConstructor CompNamespaceConstructor CompTextConstructor CompCommentConstructor CompPIConstructor ComputedConstructor ::= CompDocConstructor | CompElemConstructor | CompAttrConstructor | CompNamespaceConstructor | CompTextConstructor | CompCommentConstructor | CompPIConstructor referenced by: Constructor CompElemConstructor: element EQName { Expr } { ContentExpr } CompElemConstructor ::= 'element' ( EQName | '{' Expr '}' ) '{' ContentExpr? '}' referenced by: ComputedConstructor CompNamespaceConstructor: namespace Prefix { PrefixExpr } { URIExpr } CompNamespaceConstructor ::= 'namespace' ( Prefix | '{' PrefixExpr '}' ) '{' URIExpr '}' referenced by: ComputedConstructor Prefix: NCName Prefix ::= NCName referenced by: CompNamespaceConstructor PrefixedName PrefixExpr: Expr PrefixExpr ::= Expr referenced by: CompNamespaceConstructor URIExpr: Expr URIExpr ::= Expr referenced by: CompNamespaceConstructor FunctionItemExpr: NamedFunctionRef InlineFunctionExpr FunctionItemExpr ::= NamedFunctionRef | InlineFunctionExpr referenced by: PrimaryExpr NamedFunctionRef: EQName # IntegerLiteral NamedFunctionRef ::= EQName '#' IntegerLiteral referenced by: FunctionItemExpr InlineFunctionExpr: Annotation function ( ParamList ) as SequenceType FunctionBody InlineFunctionExpr ::= Annotation* 'function' '(' ParamList? ')' ( 'as' SequenceType )? FunctionBody referenced by: FunctionItemExpr SingleType: SimpleTypeName ? SingleType ::= SimpleTypeName '?'? referenced by: CastExpr CastableExpr TypeDeclaration: as SequenceType TypeDeclaration ::= 'as' SequenceType referenced by: ForBinding GroupingSpec LetBinding Param QuantifiedExpr SlidingWindowClause TumblingWindowClause VarDecl VarDeclStatement SequenceType: empty-sequence ( ) ItemType OccurrenceIndicator SequenceType ::= 'empty-sequence'? '(' ')' | ItemType ( OccurrenceIndicator | ) referenced by: CaseStatement FunctionDecl InlineFunctionExpr InstanceofExpr SequenceTypeUnion TreatExpr TypeDeclaration TypedFunctionTest OccurrenceIndicator: ? * + OccurrenceIndicator ::= '?' | '*'^OccurrenceIndicator | '+' referenced by: CollectionTypeDecl IndexKeyTypeDecl SequenceType ItemType: KindTest item ( ) FunctionTest AtomicOrUnionType ParenthesizedItemType JSONTest StructuredItemTest ItemType ::= KindTest | 'item' '(' ')' | FunctionTest | AtomicOrUnionType | ParenthesizedItemType | JSONTest | StructuredItemTest referenced by: ContextItemDecl ParenthesizedItemType SequenceType JSONTest: JSONItemTest JSONObjectTest JSONArrayTest JSONTest ::= JSONItemTest | JSONObjectTest | JSONArrayTest referenced by: ItemType StructuredItemTest: structured-item ( ) StructuredItemTest ::= 'structured-item' ( '(' ')' )? referenced by: ItemType JSONItemTest: json-item ( ) JSONItemTest ::= 'json-item' ( '(' ')' )? referenced by: JSONTest JSONObjectTest: object ( ) JSONObjectTest ::= 'object' ( '(' ')' )? referenced by: JSONTest JSONArrayTest: array ( ) JSONArrayTest ::= 'array' ( '(' ')' )? referenced by: JSONTest AtomicOrUnionType: EQName AtomicOrUnionType ::= EQName referenced by: ItemType KindTest: DocumentTest ElementTest AttributeTest SchemaElementTest SchemaAttributeTest PITest CommentTest TextTest NamespaceNodeTest AnyKindTest KindTest ::= DocumentTest | ElementTest | AttributeTest | SchemaElementTest | SchemaAttributeTest | PITest | CommentTest | TextTest | NamespaceNodeTest | AnyKindTest referenced by: CollectionTypeDecl ItemType NodeTest AnyKindTest: node ( ) AnyKindTest ::= 'node' '(' ')' referenced by: KindTest DocumentTest: document-node ( ElementTest SchemaElementTest ) DocumentTest ::= 'document-node' '(' ( ElementTest | SchemaElementTest )? ')' referenced by: KindTest TextTest: text ( ) TextTest ::= 'text' '(' ')' referenced by: KindTest CommentTest: comment ( ) CommentTest ::= 'comment' '(' ')' referenced by: KindTest NamespaceNodeTest: namespace-node ( ) NamespaceNodeTest ::= 'namespace-node' '(' ')' referenced by: KindTest PITest: processing-instruction ( NCName StringLiteral ) PITest ::= 'processing-instruction' '(' ( NCName | StringLiteral )? ')' referenced by: KindTest AttributeTest: attribute ( AttribNameOrWildcard , TypeName ) AttributeTest ::= 'attribute' '(' ( AttribNameOrWildcard ( ',' TypeName )? )? ')' referenced by: KindTest AttribNameOrWildcard: AttributeName * AttribNameOrWildcard ::= AttributeName | '*' referenced by: AttributeTest SchemaAttributeTest: schema-attribute ( AttributeDeclaration ) SchemaAttributeTest ::= 'schema-attribute' '(' AttributeDeclaration ')' referenced by: KindTest AttributeDeclaration: AttributeName AttributeDeclaration ::= AttributeName referenced by: SchemaAttributeTest ElementTest: element ( ElementNameOrWildcard , TypeName ? ) ElementTest ::= 'element' '(' ( ElementNameOrWildcard ( ',' TypeName '?'? )? )? ')' referenced by: DocumentTest KindTest ElementNameOrWildcard: ElementName * ElementNameOrWildcard ::= ElementName | '*' referenced by: ElementTest SchemaElementTest: schema-element ( ElementDeclaration ) SchemaElementTest ::= 'schema-element' '(' ElementDeclaration ')' referenced by: DocumentTest KindTest ElementDeclaration: ElementName ElementDeclaration ::= ElementName referenced by: SchemaElementTest AttributeName: EQName AttributeName ::= EQName referenced by: AttribNameOrWildcard AttributeDeclaration ElementName: EQName ElementName ::= EQName referenced by: ElementDeclaration ElementNameOrWildcard SimpleTypeName: TypeName SimpleTypeName ::= TypeName referenced by: SingleType TypeName: EQName TypeName ::= EQName referenced by: AttributeTest ElementTest SimpleTypeName ValidateExpr FunctionTest: Annotation AnyFunctionTest TypedFunctionTest FunctionTest ::= Annotation* ( AnyFunctionTest | TypedFunctionTest ) referenced by: ItemType AnyFunctionTest: function ( * ) AnyFunctionTest ::= 'function' '(' '*' ')' referenced by: FunctionTest TypedFunctionTest: function ( SequenceType , ) as SequenceType TypedFunctionTest ::= 'function' '(' ( SequenceType ( ',' SequenceType )* )? ')' 'as' SequenceType referenced by: FunctionTest ParenthesizedItemType: ( ItemType ) ParenthesizedItemType ::= '(' ItemType ')' referenced by: ItemType RevalidationDecl: declare revalidation strict lax skip RevalidationDecl ::= 'declare' 'revalidation' ( 'strict' | 'lax' | 'skip' ) referenced by: Setter InsertExprTargetChoice: as first last into after before InsertExprTargetChoice ::= ( 'as' ( 'first' | 'last' ) )? 'into' | 'after' | 'before' referenced by: InsertExpr InsertExpr: insert node nodes SourceExpr InsertExprTargetChoice TargetExpr InsertExpr ::= 'insert' ( 'node' | 'nodes' ) SourceExpr InsertExprTargetChoice TargetExpr referenced by: ExprSimple DeleteExpr: delete node nodes TargetExpr DeleteExpr ::= 'delete' ( 'node' | 'nodes' ) TargetExpr referenced by: ExprSimple ReplaceExpr: replace value of node TargetExpr with ExprSingle ReplaceExpr ::= 'replace' ( 'value' 'of' )? 'node' TargetExpr 'with' ExprSingle referenced by: ExprSimple RenameExpr: rename node TargetExpr as NewNameExpr RenameExpr ::= 'rename' 'node' TargetExpr 'as' NewNameExpr referenced by: ExprSimple SourceExpr: ExprSingle SourceExpr ::= ExprSingle referenced by: InsertExpr TargetExpr: ExprSingle TargetExpr ::= ExprSingle referenced by: DeleteExpr InsertExpr RenameExpr ReplaceExpr NewNameExpr: ExprSingle NewNameExpr ::= ExprSingle referenced by: RenameExpr TransformExpr: copy $ VarName := ExprSingle , modify ExprSingle return select ExprSingle TransformExpr ::= 'copy' '$' VarName ':=' ExprSingle ( ',' '$' VarName ':=' ExprSingle )* 'modify' ExprSingle ( 'return' | 'select' ) ExprSingle referenced by: ExprSimple FTSelection: FTOr FTPosFilter FTSelection ::= FTOr FTPosFilter* referenced by: FTContainsExpr FTExtensionSelection FTPrimary FTWeight: weight { Expr } FTWeight ::= 'weight' '{' Expr '}' referenced by: FTPrimaryWithOptions FTOr: FTAnd ftor FTOr ::= FTAnd ( 'ftor' FTAnd )* referenced by: FTSelection FTAnd: FTMildNot ftand FTAnd ::= FTMildNot ( 'ftand' FTMildNot )* referenced by: FTOr FTMildNot: FTUnaryNot in not FTMildNot ::= FTUnaryNot ( 'not' 'in' FTUnaryNot )* referenced by: FTAnd FTUnaryNot: ftnot FTPrimaryWithOptions FTUnaryNot ::= 'ftnot'? FTPrimaryWithOptions referenced by: FTMildNot FTPrimaryWithOptions: FTPrimary FTMatchOptions FTWeight FTPrimaryWithOptions ::= FTPrimary FTMatchOptions? FTWeight? referenced by: FTUnaryNot FTPrimary: FTWords FTTimes ( FTSelection ) FTExtensionSelection FTPrimary ::= FTWords FTTimes? | '(' FTSelection ')' | FTExtensionSelection referenced by: FTPrimaryWithOptions FTWords: FTWordsValue FTAnyallOption FTWords ::= FTWordsValue FTAnyallOption? referenced by: FTPrimary FTWordsValue: StringLiteral { Expr } FTWordsValue ::= StringLiteral | '{' Expr '}' referenced by: FTWords FTExtensionSelection: Pragma { FTSelection } FTExtensionSelection ::= Pragma+ '{' FTSelection? '}' referenced by: FTPrimary FTAnyallOption: any word all words phrase FTAnyallOption ::= 'any' 'word'? | 'all' 'words'? | 'phrase' referenced by: FTWords FTTimes: occurs FTRange times FTTimes ::= 'occurs' FTRange 'times' referenced by: FTPrimary FTRange: exactly AdditiveExpr at least AdditiveExpr most AdditiveExpr from AdditiveExpr to AdditiveExpr FTRange ::= 'exactly' AdditiveExpr | 'at' ( 'least' AdditiveExpr | 'most' AdditiveExpr ) | 'from' AdditiveExpr 'to' AdditiveExpr referenced by: FTDistance FTTimes FTPosFilter: FTOrder FTWindow FTDistance FTScope FTContent FTPosFilter ::= FTOrder | FTWindow | FTDistance | FTScope | FTContent referenced by: FTSelection FTOrder: ordered FTOrder ::= 'ordered' referenced by: FTPosFilter FTWindow: window AdditiveExpr FTUnit FTWindow ::= 'window' AdditiveExpr FTUnit referenced by: FTPosFilter FTDistance: distance FTRange FTUnit FTDistance ::= 'distance' FTRange FTUnit referenced by: FTPosFilter FTUnit: words sentences paragraphs FTUnit ::= 'words' | 'sentences' | 'paragraphs' referenced by: FTDistance FTWindow FTScope: same different FTBigUnit FTScope ::= ( 'same' | 'different' ) FTBigUnit referenced by: FTPosFilter FTBigUnit: sentence paragraph FTBigUnit ::= 'sentence' | 'paragraph' referenced by: FTScope FTContent: at start end entire content FTContent ::= 'at' ( 'start' | 'end' ) | 'entire' 'content' referenced by: FTPosFilter FTMatchOptions: using FTMatchOption FTMatchOptions ::= ( 'using' FTMatchOption )+ referenced by: FTOptionDecl FTPrimaryWithOptions FTMatchOption: FTLanguageOption FTWildCardOption FTThesaurusOption FTStemOption FTCaseOption FTDiacriticsOption FTStopWordOption FTExtensionOption FTMatchOption ::= FTLanguageOption | FTWildCardOption | FTThesaurusOption | FTStemOption | FTCaseOption | FTDiacriticsOption | FTStopWordOption | FTExtensionOption referenced by: FTMatchOptions FTCaseOption: case insensitive sensitive lowercase uppercase FTCaseOption ::= 'case' ( 'insensitive' | 'sensitive' ) | 'lowercase' | 'uppercase' referenced by: FTMatchOption FTDiacriticsOption: diacritics insensitive sensitive FTDiacriticsOption ::= 'diacritics' ( 'insensitive' | 'sensitive' ) referenced by: FTMatchOption FTStemOption: stemming no stemming FTStemOption ::= 'stemming' | 'no' 'stemming' referenced by: FTMatchOption FTThesaurusOption: thesaurus FTThesaurusID default ( FTThesaurusID default , FTThesaurusID ) no thesaurus FTThesaurusOption ::= 'thesaurus' ( FTThesaurusID | 'default' | '(' ( FTThesaurusID | 'default' ) ( ',' FTThesaurusID )* ')' ) | 'no' 'thesaurus' referenced by: FTMatchOption FTThesaurusID: at URILiteral relationship StringLiteral FTLiteralRange levels FTThesaurusID ::= 'at' URILiteral ( 'relationship' StringLiteral )? ( FTLiteralRange 'levels' )? referenced by: FTThesaurusOption FTLiteralRange: exactly IntegerLiteral at least IntegerLiteral most IntegerLiteral from IntegerLiteral to IntegerLiteral FTLiteralRange ::= 'exactly' IntegerLiteral | 'at' ( 'least' IntegerLiteral | 'most' IntegerLiteral ) | 'from' IntegerLiteral 'to' IntegerLiteral referenced by: FTThesaurusID FTStopWordOption: stop words FTStopWords FTStopWordsInclExcl default FTStopWordsInclExcl no stop words FTStopWordOption ::= 'stop' 'words' ( FTStopWords FTStopWordsInclExcl* | 'default' FTStopWordsInclExcl* ) | 'no' 'stop' 'words' referenced by: FTMatchOption FTStopWords: at URILiteral ( StringLiteral , ) FTStopWords ::= 'at' URILiteral | '(' StringLiteral ( ',' StringLiteral )* ')' referenced by: FTStopWordOption FTStopWordsInclExcl FTStopWordsInclExcl: union except FTStopWords FTStopWordsInclExcl ::= ( 'union' | 'except' ) FTStopWords referenced by: FTStopWordOption FTLanguageOption: language StringLiteral FTLanguageOption ::= 'language' StringLiteral referenced by: FTMatchOption FTWildCardOption: wildcards no wildcards FTWildCardOption ::= 'wildcards' | 'no' 'wildcards' referenced by: FTMatchOption FTExtensionOption: option EQName StringLiteral FTExtensionOption ::= 'option' EQName StringLiteral referenced by: FTMatchOption FTIgnoreOption: without content UnionExpr FTIgnoreOption ::= 'without' 'content' UnionExpr referenced by: FTContainsExpr CollectionDecl: collection EQName CollectionTypeDecl CollectionDecl ::= 'collection' EQName CollectionTypeDecl? referenced by: AnnotatedDecl CollectionTypeDecl: as KindTest OccurrenceIndicator CollectionTypeDecl ::= 'as' KindTest OccurrenceIndicator? referenced by: CollectionDecl IndexName: EQName IndexName ::= EQName referenced by: IndexDecl IndexDomainExpr: PathExpr IndexDomainExpr ::= PathExpr referenced by: IndexDecl IndexKeySpec: IndexKeyExpr IndexKeyTypeDecl IndexKeyCollation IndexKeySpec ::= IndexKeyExpr IndexKeyTypeDecl? IndexKeyCollation? referenced by: IndexDecl IndexKeyExpr: PathExpr IndexKeyExpr ::= PathExpr referenced by: IndexKeySpec IndexKeyTypeDecl: as AtomicType OccurrenceIndicator IndexKeyTypeDecl ::= 'as' AtomicType OccurrenceIndicator? referenced by: IndexKeySpec AtomicType: EQName AtomicType ::= EQName referenced by: IndexKeyTypeDecl IndexKeyCollation: collation URILiteral IndexKeyCollation ::= 'collation' URILiteral referenced by: IndexKeySpec IndexDecl: index IndexName on nodes IndexDomainExpr by IndexKeySpec , IndexDecl ::= 'index' IndexName 'on' 'nodes' IndexDomainExpr 'by' IndexKeySpec ( ',' IndexKeySpec )* referenced by: AnnotatedDecl ICDecl: integrity constraint EQName ICCollection ICForeignKey ICDecl ::= 'integrity' 'constraint' EQName ( ICCollection | ICForeignKey ) referenced by: AnnotatedDecl ICCollection: on collection EQName ICCollSequence ICCollSequenceUnique ICCollNode ICCollection ::= 'on' 'collection' EQName ( ICCollSequence | ICCollSequenceUnique | ICCollNode ) referenced by: ICDecl ICCollSequence: VarRef check ExprSingle ICCollSequence ::= VarRef 'check' ExprSingle referenced by: ICCollection ICCollSequenceUnique: node VarRef check unique key PathExpr ICCollSequenceUnique ::= 'node' VarRef 'check' 'unique' 'key' PathExpr referenced by: ICCollection ICCollNode: foreach node VarRef check ExprSingle ICCollNode ::= 'foreach' 'node' VarRef 'check' ExprSingle referenced by: ICCollection ICForeignKey: foreign key ICForeignKeySource ICForeignKeyTarget ICForeignKey ::= 'foreign' 'key' ICForeignKeySource ICForeignKeyTarget referenced by: ICDecl ICForeignKeySource: from ICForeignKeyValues ICForeignKeySource ::= 'from' ICForeignKeyValues referenced by: ICForeignKey ICForeignKeyTarget: to ICForeignKeyValues ICForeignKeyTarget ::= 'to' ICForeignKeyValues referenced by: ICForeignKey ICForeignKeyValues: collection EQName node VarRef key PathExpr ICForeignKeyValues ::= 'collection' EQName 'node' VarRef 'key' PathExpr referenced by: ICForeignKeySource ICForeignKeyTarget Comment: (: CommentContents Comment :) Comment ::= '(:' ( CommentContents | Comment )* ':)' /* ws: explicit */ referenced by: Comment Whitespace Whitespace: S Comment Whitespace ::= S^WS | Comment /* ws: definition */ no referencesEQName: FunctionName attribute comment document-node element empty-sequence function if item namespace-node node processing-instruction schema-attribute schema-element switch text typeswitch array json-item structured-item EQName ::= FunctionName | 'attribute' | 'comment' | 'document-node' | 'element' | 'empty-sequence' | 'function' | 'if' | 'item' | 'namespace-node' | 'node' | 'processing-instruction' | 'schema-attribute' | 'schema-element' | 'switch' | 'text' | 'typeswitch' | 'array' | 'json-item' | 'structured-item' referenced by: Annotation AtomicOrUnionType AtomicType AttributeName CollectionDecl CompAttrConstructor CompElemConstructor CurrentItem DecimalFormatDecl ElementName FTExtensionOption FunctionDecl FunctionName ICCollection ICDecl ICForeignKeyValues IndexName NameTest NamedFunctionRef NextItem OptionDecl Param Pragma PreviousItem TypeName VarName FunctionName: EQName after ancestor ancestor-or-self and as ascending before case cast castable child collation copy count declare default delete descendant descendant-or-self descending div document else empty end eq every except first following following-sibling for ge group gt idiv import insert instance intersect into is last le let lt mod modify