1302 lines
No EOL
38 KiB
EBNF
1302 lines
No EOL
38 KiB
EBNF
/* XQuery 4.0: An XML Query Language
|
||
* version https://qt4cg.org/specifications/xquery-40/
|
||
* extracted from https://qt4cg.org/specifications/xquery-40/xquery-40.html on Tue Aug 12, 2025, 21:13 (UTC+02)
|
||
* and transformed by rexify-xquery-40.xq
|
||
*/
|
||
|
||
Module ::= VersionDecl? ( LibraryModule | MainModule ) EOF
|
||
VersionDecl
|
||
::= 'xquery' ( 'encoding' StringLiteral | 'version' StringLiteral ( 'encoding' StringLiteral )? ) Separator
|
||
Separator
|
||
::= ';'
|
||
LibraryModule
|
||
::= ModuleDecl Prolog
|
||
ModuleDecl
|
||
::= 'module' 'namespace' NCName '=' URILiteral Separator
|
||
NCName ::= UnreservedNCName
|
||
| 'NaN'
|
||
| 'allowing'
|
||
| 'ancestor'
|
||
| 'ancestor-or-self'
|
||
| 'and'
|
||
| 'array'
|
||
| 'as'
|
||
| 'ascending'
|
||
| 'at'
|
||
| 'attribute'
|
||
| 'base-uri'
|
||
| 'boundary-space'
|
||
| 'by'
|
||
| 'case'
|
||
| 'cast'
|
||
| 'castable'
|
||
| 'catch'
|
||
| 'child'
|
||
| 'collation'
|
||
| 'comment'
|
||
| 'construction'
|
||
| 'context'
|
||
| 'copy-namespaces'
|
||
| 'count'
|
||
| 'decimal-format'
|
||
| 'decimal-separator'
|
||
| 'declare'
|
||
| 'default'
|
||
| 'descendant'
|
||
| 'descendant-or-self'
|
||
| 'descending'
|
||
| 'digit'
|
||
| 'div'
|
||
| 'document'
|
||
| 'document-node'
|
||
| 'element'
|
||
| 'else'
|
||
| 'empty'
|
||
| 'empty-sequence'
|
||
| 'encoding'
|
||
| 'end'
|
||
| 'enum'
|
||
| 'eq'
|
||
| 'every'
|
||
| 'except'
|
||
| 'exponent-separator'
|
||
| 'external'
|
||
| 'false'
|
||
| 'finally'
|
||
| 'fixed'
|
||
| 'fn'
|
||
| 'following'
|
||
| 'following-or-self'
|
||
| 'following-sibling'
|
||
| 'following-sibling-or-self'
|
||
| 'follows'
|
||
| 'for'
|
||
| 'function'
|
||
| 'ge'
|
||
| 'get'
|
||
| 'gnode'
|
||
| 'greatest'
|
||
| 'group'
|
||
| 'grouping-separator'
|
||
| 'gt'
|
||
| 'idiv'
|
||
| 'if'
|
||
| 'import'
|
||
| 'in'
|
||
| 'infinity'
|
||
| 'inherit'
|
||
| 'instance'
|
||
| 'intersect'
|
||
| 'is'
|
||
| 'is-not'
|
||
| 'item'
|
||
| 'jnode'
|
||
| 'key'
|
||
| 'lax'
|
||
| 'le'
|
||
| 'least'
|
||
| 'let'
|
||
| 'lt'
|
||
| 'map'
|
||
| 'member'
|
||
| 'minus-sign'
|
||
| 'mod'
|
||
| 'module'
|
||
| 'namespace'
|
||
| 'namespace-node'
|
||
| 'ne'
|
||
| 'next'
|
||
| 'no-inherit'
|
||
| 'no-preserve'
|
||
| 'node'
|
||
| 'of'
|
||
| 'only'
|
||
| 'option'
|
||
| 'or'
|
||
| 'order'
|
||
| 'ordered'
|
||
| 'ordering'
|
||
| 'otherwise'
|
||
| 'parent'
|
||
| 'pattern-separator'
|
||
| 'per-mille'
|
||
| 'percent'
|
||
| 'precedes'
|
||
| 'preceding'
|
||
| 'preceding-or-self'
|
||
| 'preceding-sibling'
|
||
| 'preceding-sibling-or-self'
|
||
| 'preserve'
|
||
| 'previous'
|
||
| 'processing-instruction'
|
||
| 'record'
|
||
| 'return'
|
||
| 'satisfies'
|
||
| 'schema'
|
||
| 'schema-attribute'
|
||
| 'schema-element'
|
||
| 'self'
|
||
| 'sliding'
|
||
| 'some'
|
||
| 'stable'
|
||
| 'start'
|
||
| 'strict'
|
||
| 'strip'
|
||
| 'switch'
|
||
| 'text'
|
||
| 'then'
|
||
| 'to'
|
||
| 'treat'
|
||
| 'true'
|
||
| 'try'
|
||
| 'tumbling'
|
||
| 'type'
|
||
| 'typeswitch'
|
||
| 'union'
|
||
| 'unordered'
|
||
| 'validate'
|
||
| 'value'
|
||
| 'variable'
|
||
| 'version'
|
||
| 'when'
|
||
| 'where'
|
||
| 'while'
|
||
| 'window'
|
||
| 'xquery'
|
||
| 'zero-digit'
|
||
| '<'
|
||
| '<<'
|
||
| '>'
|
||
| '>>'
|
||
URILiteral
|
||
::= StringLiteral
|
||
Prolog ::= ( ( DefaultNamespaceDecl | Setter | NamespaceDecl | Import ) Separator )* ( ( ContextValueDecl | VarDecl | FunctionDecl | ItemTypeDecl | NamedRecordTypeDecl | OptionDecl ) Separator )*
|
||
DefaultNamespaceDecl
|
||
::= 'declare' 'fixed'? 'default' ( 'element' | 'function' ) 'namespace' URILiteral
|
||
Setter ::= BoundarySpaceDecl
|
||
| DefaultCollationDecl
|
||
| BaseURIDecl
|
||
| ConstructionDecl
|
||
| OrderingModeDecl
|
||
| EmptyOrderDecl
|
||
| CopyNamespacesDecl
|
||
| DecimalFormatDecl
|
||
BoundarySpaceDecl
|
||
::= 'declare' 'boundary-space' ( 'preserve' | 'strip' )
|
||
DefaultCollationDecl
|
||
::= 'declare' 'default' 'collation' URILiteral
|
||
BaseURIDecl
|
||
::= 'declare' 'base-uri' URILiteral
|
||
ConstructionDecl
|
||
::= 'declare' 'construction' ( 'strip' | 'preserve' )
|
||
OrderingModeDecl
|
||
::= 'declare' 'ordering' ( 'ordered' | 'unordered' )
|
||
EmptyOrderDecl
|
||
::= 'declare' 'default' 'order' 'empty' ( 'greatest' | 'least' )
|
||
CopyNamespacesDecl
|
||
::= 'declare' 'copy-namespaces' PreserveMode ',' InheritMode
|
||
PreserveMode
|
||
::= 'preserve'
|
||
| 'no-preserve'
|
||
InheritMode
|
||
::= 'inherit'
|
||
| 'no-inherit'
|
||
DecimalFormatDecl
|
||
::= 'declare' ( 'decimal-format' EQName | 'default' 'decimal-format' ) ( DFPropertyName '=' StringLiteral )*
|
||
EQName ::= QName
|
||
| URIQualifiedName
|
||
QName ::= UnreservedFunctionQName
|
||
| 'attribute'
|
||
| 'comment'
|
||
| 'document-node'
|
||
| 'element'
|
||
| 'namespace-node'
|
||
| 'node'
|
||
| 'schema-attribute'
|
||
| 'schema-element'
|
||
| 'processing-instruction'
|
||
| 'text'
|
||
| 'array'
|
||
| 'enum'
|
||
| 'fn'
|
||
| 'function'
|
||
| 'gnode'
|
||
| 'get'
|
||
| 'if'
|
||
| 'item'
|
||
| 'jnode'
|
||
| 'map'
|
||
| 'record'
|
||
| 'switch'
|
||
| 'type'
|
||
| 'typeswitch'
|
||
UnreservedFunctionQName
|
||
::= UnreservedQName
|
||
| 'NaN'
|
||
| 'allowing'
|
||
| 'ancestor'
|
||
| 'ancestor-or-self'
|
||
| 'and'
|
||
| 'as'
|
||
| 'ascending'
|
||
| 'at'
|
||
| 'base-uri'
|
||
| 'boundary-space'
|
||
| 'by'
|
||
| 'case'
|
||
| 'cast'
|
||
| 'castable'
|
||
| 'catch'
|
||
| 'child'
|
||
| 'collation'
|
||
| 'construction'
|
||
| 'context'
|
||
| 'copy-namespaces'
|
||
| 'count'
|
||
| 'decimal-format'
|
||
| 'decimal-separator'
|
||
| 'declare'
|
||
| 'default'
|
||
| 'descendant'
|
||
| 'descendant-or-self'
|
||
| 'descending'
|
||
| 'digit'
|
||
| 'div'
|
||
| 'document'
|
||
| 'else'
|
||
| 'empty'
|
||
| 'empty-sequence'
|
||
| 'encoding'
|
||
| 'end'
|
||
| 'eq'
|
||
| 'every'
|
||
| 'except'
|
||
| 'exponent-separator'
|
||
| 'external'
|
||
| 'false'
|
||
| 'finally'
|
||
| 'fixed'
|
||
| 'following'
|
||
| 'following-or-self'
|
||
| 'following-sibling'
|
||
| 'following-sibling-or-self'
|
||
| 'follows'
|
||
| 'for'
|
||
| 'ge'
|
||
| 'greatest'
|
||
| 'group'
|
||
| 'grouping-separator'
|
||
| 'gt'
|
||
| 'idiv'
|
||
| 'import'
|
||
| 'in'
|
||
| 'infinity'
|
||
| 'inherit'
|
||
| 'instance'
|
||
| 'intersect'
|
||
| 'is'
|
||
| 'is-not'
|
||
| 'key'
|
||
| 'lax'
|
||
| 'le'
|
||
| 'least'
|
||
| 'let'
|
||
| 'lt'
|
||
| 'member'
|
||
| 'minus-sign'
|
||
| 'mod'
|
||
| 'module'
|
||
| 'namespace'
|
||
| 'ne'
|
||
| 'next'
|
||
| 'no-inherit'
|
||
| 'no-preserve'
|
||
| 'of'
|
||
| 'only'
|
||
| 'option'
|
||
| 'or'
|
||
| 'order'
|
||
| 'ordered'
|
||
| 'ordering'
|
||
| 'otherwise'
|
||
| 'parent'
|
||
| 'pattern-separator'
|
||
| 'per-mille'
|
||
| 'percent'
|
||
| 'precedes'
|
||
| 'preceding'
|
||
| 'preceding-or-self'
|
||
| 'preceding-sibling'
|
||
| 'preceding-sibling-or-self'
|
||
| 'preserve'
|
||
| 'previous'
|
||
| 'return'
|
||
| 'satisfies'
|
||
| 'schema'
|
||
| 'self'
|
||
| 'sliding'
|
||
| 'some'
|
||
| 'stable'
|
||
| 'start'
|
||
| 'strict'
|
||
| 'strip'
|
||
| 'then'
|
||
| 'to'
|
||
| 'treat'
|
||
| 'true'
|
||
| 'try'
|
||
| 'tumbling'
|
||
| 'union'
|
||
| 'unordered'
|
||
| 'validate'
|
||
| 'value'
|
||
| 'variable'
|
||
| 'version'
|
||
| 'when'
|
||
| 'where'
|
||
| 'while'
|
||
| 'window'
|
||
| 'xquery'
|
||
| 'zero-digit'
|
||
| '<'
|
||
| '<<'
|
||
| '>'
|
||
| '>>'
|
||
DFPropertyName
|
||
::= 'decimal-separator'
|
||
| 'grouping-separator'
|
||
| 'infinity'
|
||
| 'minus-sign'
|
||
| 'NaN'
|
||
| 'percent'
|
||
| 'per-mille'
|
||
| 'zero-digit'
|
||
| 'digit'
|
||
| 'pattern-separator'
|
||
| 'exponent-separator'
|
||
NamespaceDecl
|
||
::= 'declare' 'namespace' NCName '=' URILiteral
|
||
Import ::= SchemaImport
|
||
| ModuleImport
|
||
SchemaImport
|
||
::= 'import' 'schema' SchemaPrefix? URILiteral ( 'at' URILiteral ( ',' URILiteral )* )?
|
||
SchemaPrefix
|
||
::= 'namespace' NCName '='
|
||
| 'fixed'? 'default' 'element' 'namespace'
|
||
ModuleImport
|
||
::= 'import' 'module' ( 'namespace' NCName '=' )? URILiteral ( 'at' URILiteral ( ',' URILiteral )* )?
|
||
ContextValueDecl
|
||
::= 'declare' 'context' ( 'value' ( 'as' SequenceType )? | 'item' ( 'as' ItemType )? ) ( ':=' VarValue | 'external' ( ':=' VarDefaultValue )? )
|
||
SequenceType
|
||
::= 'empty-sequence' '(' ')'
|
||
| ItemType ( OccurrenceIndicator / )
|
||
ItemType ::= RegularItemType
|
||
| FunctionType
|
||
| TypeName
|
||
| ChoiceItemType
|
||
RegularItemType
|
||
::= AnyItemTest
|
||
| NodeKindTest
|
||
| GNodeType
|
||
| JNodeType
|
||
| MapType
|
||
| ArrayType
|
||
| RecordType
|
||
| EnumerationType
|
||
AnyItemTest
|
||
::= 'item' '(' ')'
|
||
NodeKindTest
|
||
::= DocumentTest
|
||
| ElementTest
|
||
| AttributeTest
|
||
| SchemaElementTest
|
||
| SchemaAttributeTest
|
||
| PITest
|
||
| CommentTest
|
||
| TextTest
|
||
| NamespaceNodeTest
|
||
| AnyNodeKindTest
|
||
DocumentTest
|
||
::= 'document-node' '(' ( ElementTest | SchemaElementTest | NameTestUnion )? ')'
|
||
ElementTest
|
||
::= 'element' '(' ( NameTestUnion ( ',' TypeName '?'? )? )? ')'
|
||
NameTestUnion
|
||
::= NameTest ( '|' NameTest )*
|
||
NameTest ::= EQName
|
||
| Wildcard
|
||
TypeName ::= EQName
|
||
SchemaElementTest
|
||
::= 'schema-element' '(' ElementName ')'
|
||
ElementName
|
||
::= EQName
|
||
AttributeTest
|
||
::= 'attribute' '(' ( NameTestUnion ( ',' TypeName )? )? ')'
|
||
SchemaAttributeTest
|
||
::= 'schema-attribute' '(' AttributeName ')'
|
||
AttributeName
|
||
::= EQName
|
||
PITest ::= 'processing-instruction' '(' ( NCName | StringLiteral )? ')'
|
||
CommentTest
|
||
::= 'comment' '(' ')'
|
||
TextTest ::= 'text' '(' ')'
|
||
NamespaceNodeTest
|
||
::= 'namespace-node' '(' ')'
|
||
AnyNodeKindTest
|
||
::= 'node' '(' ')'
|
||
GNodeType
|
||
::= 'gnode' '(' ')'
|
||
JNodeType
|
||
::= 'jnode' '(' SequenceType? ')'
|
||
MapType ::= AnyMapType
|
||
| TypedMapType
|
||
AnyMapType
|
||
::= 'map' '(' '*' ')'
|
||
TypedMapType
|
||
::= 'map' '(' ItemType ',' SequenceType ')'
|
||
ArrayType
|
||
::= AnyArrayType
|
||
| TypedArrayType
|
||
AnyArrayType
|
||
::= 'array' '(' '*' ')'
|
||
TypedArrayType
|
||
::= 'array' '(' SequenceType ')'
|
||
RecordType
|
||
::= AnyRecordType
|
||
| TypedRecordType
|
||
AnyRecordType
|
||
::= 'record' '(' '*' ')'
|
||
TypedRecordType
|
||
::= 'record' '(' ( FieldDeclaration ( ',' FieldDeclaration )* )? ExtensibleFlag? ')'
|
||
FieldDeclaration
|
||
::= FieldName '?'? ( 'as' SequenceType )?
|
||
FieldName
|
||
::= NCName
|
||
| StringLiteral
|
||
ExtensibleFlag
|
||
::= ',' '*'
|
||
EnumerationType
|
||
::= 'enum' '(' StringLiteral ( ',' StringLiteral )* ')'
|
||
FunctionType
|
||
::= Annotation* ( AnyFunctionType | TypedFunctionType )
|
||
Annotation
|
||
::= '%' EQName ( '(' AnnotationValue ( ',' AnnotationValue )* ')' )?
|
||
AnnotationValue
|
||
::= StringLiteral
|
||
| '-'? NumericLiteral
|
||
| QNameLiteral
|
||
| 'true' '(' ')'
|
||
| 'false' '(' ')'
|
||
NumericLiteral
|
||
::= IntegerLiteral
|
||
| HexIntegerLiteral
|
||
| BinaryIntegerLiteral
|
||
| DecimalLiteral
|
||
| DoubleLiteral
|
||
QNameLiteral
|
||
::= '#' EQName
|
||
AnyFunctionType
|
||
::= ( 'function' | 'fn' ) '(' '*' ')'
|
||
TypedFunctionType
|
||
::= ( 'function' | 'fn' ) '(' ( TypedFunctionParam ( ',' TypedFunctionParam )* )? ')' 'as' SequenceType
|
||
TypedFunctionParam
|
||
::= ( '$' EQName 'as' )? SequenceType
|
||
ChoiceItemType
|
||
::= '(' ItemType ( '|' ItemType )* ')'
|
||
OccurrenceIndicator
|
||
::= '?'
|
||
| '*'
|
||
| '+'
|
||
VarValue ::= ExprSingle
|
||
ExprSingle
|
||
::= FLWORExpr
|
||
| QuantifiedExpr
|
||
| SwitchExpr
|
||
| TypeswitchExpr
|
||
| IfExpr
|
||
| TryCatchExpr
|
||
| OrExpr
|
||
FLWORExpr
|
||
::= InitialClause IntermediateClause* ReturnClause
|
||
InitialClause
|
||
::= ForClause
|
||
| LetClause
|
||
| WindowClause
|
||
ForClause
|
||
::= 'for' ForBinding ( ',' ForBinding )*
|
||
ForBinding
|
||
::= ForItemBinding
|
||
| ForMemberBinding
|
||
| ForEntryBinding
|
||
ForItemBinding
|
||
::= VarNameAndType AllowingEmpty? PositionalVar? 'in' ExprSingle
|
||
VarNameAndType
|
||
::= '$' EQName TypeDeclaration?
|
||
TypeDeclaration
|
||
::= 'as' SequenceType
|
||
AllowingEmpty
|
||
::= 'allowing' 'empty'
|
||
PositionalVar
|
||
::= 'at' VarName
|
||
VarName ::= '$' EQName
|
||
ForMemberBinding
|
||
::= 'member' VarNameAndType PositionalVar? 'in' ExprSingle
|
||
ForEntryBinding
|
||
::= ( ForEntryKeyBinding ForEntryValueBinding? | ForEntryValueBinding ) PositionalVar? 'in' ExprSingle
|
||
ForEntryKeyBinding
|
||
::= 'key' VarNameAndType
|
||
ForEntryValueBinding
|
||
::= 'value' VarNameAndType
|
||
LetClause
|
||
::= 'let' LetBinding ( ',' LetBinding )*
|
||
LetBinding
|
||
::= LetValueBinding
|
||
| LetSequenceBinding
|
||
| LetArrayBinding
|
||
| LetMapBinding
|
||
LetValueBinding
|
||
::= VarNameAndType ':=' ExprSingle
|
||
LetSequenceBinding
|
||
::= '$' '(' VarNameAndType ( ',' VarNameAndType )* ')' TypeDeclaration? ':=' ExprSingle
|
||
LetArrayBinding
|
||
::= '$' '[' VarNameAndType ( ',' VarNameAndType )* ']' TypeDeclaration? ':=' ExprSingle
|
||
LetMapBinding
|
||
::= '$' '{' VarNameAndType ( ',' VarNameAndType )* '}' TypeDeclaration? ':=' ExprSingle
|
||
WindowClause
|
||
::= 'for' ( TumblingWindowClause | SlidingWindowClause )
|
||
TumblingWindowClause
|
||
::= 'tumbling' 'window' VarNameAndType 'in' ExprSingle WindowStartCondition? WindowEndCondition?
|
||
WindowStartCondition
|
||
::= 'start' WindowVars ( 'when' ExprSingle )?
|
||
WindowVars
|
||
::= CurrentVar? PositionalVar? PreviousVar? NextVar?
|
||
CurrentVar
|
||
::= VarName
|
||
PreviousVar
|
||
::= 'previous' VarName
|
||
NextVar ::= 'next' VarName
|
||
WindowEndCondition
|
||
::= 'only'? 'end' WindowVars ( 'when' ExprSingle )?
|
||
SlidingWindowClause
|
||
::= 'sliding' 'window' VarNameAndType 'in' ExprSingle WindowStartCondition? WindowEndCondition
|
||
IntermediateClause
|
||
::= InitialClause
|
||
| WhereClause
|
||
| WhileClause
|
||
| GroupByClause
|
||
| OrderByClause
|
||
| CountClause
|
||
WhereClause
|
||
::= 'where' ExprSingle
|
||
WhileClause
|
||
::= 'while' ExprSingle
|
||
GroupByClause
|
||
::= 'group' 'by' GroupingSpec ( ',' GroupingSpec )*
|
||
GroupingSpec
|
||
::= VarName ( TypeDeclaration? ':=' ExprSingle )? ( 'collation' URILiteral )?
|
||
OrderByClause
|
||
::= 'stable'? 'order' 'by' OrderSpec ( ',' OrderSpec )*
|
||
OrderSpec
|
||
::= ExprSingle OrderModifier
|
||
OrderModifier
|
||
::= ( 'ascending' | 'descending' )? ( 'empty' ( 'greatest' | 'least' ) )? ( 'collation' URILiteral )?
|
||
CountClause
|
||
::= 'count' VarName
|
||
ReturnClause
|
||
::= 'return' ExprSingle
|
||
QuantifiedExpr
|
||
::= ( 'some' | 'every' ) QuantifierBinding ( ',' QuantifierBinding )* 'satisfies' ExprSingle
|
||
QuantifierBinding
|
||
::= VarNameAndType 'in' ExprSingle
|
||
SwitchExpr
|
||
::= 'switch' SwitchComparand ( SwitchCases | BracedSwitchCases )
|
||
SwitchComparand
|
||
::= '(' Expr? ')'
|
||
Expr ::= ExprSingle ( ',' ExprSingle )*
|
||
SwitchCases
|
||
::= SwitchCaseClause+ 'default' 'return' ExprSingle
|
||
SwitchCaseClause
|
||
::= ( 'case' SwitchCaseOperand )+ 'return' ExprSingle
|
||
SwitchCaseOperand
|
||
::= Expr
|
||
BracedSwitchCases
|
||
::= '{' SwitchCases '}'
|
||
TypeswitchExpr
|
||
::= 'typeswitch' '(' Expr ')' ( TypeswitchCases | BracedTypeswitchCases )
|
||
TypeswitchCases
|
||
::= CaseClause+ 'default' VarName? 'return' ExprSingle
|
||
CaseClause
|
||
::= 'case' ( VarName 'as' )? SequenceTypeUnion 'return' ExprSingle
|
||
SequenceTypeUnion
|
||
::= SequenceType ( '|' SequenceType )*
|
||
BracedTypeswitchCases
|
||
::= '{' TypeswitchCases '}'
|
||
IfExpr ::= 'if' '(' Expr ')' ( UnbracedActions | BracedAction )
|
||
UnbracedActions
|
||
::= 'then' ExprSingle 'else' ExprSingle
|
||
BracedAction
|
||
::= EnclosedExpr
|
||
EnclosedExpr
|
||
::= '{' Expr? '}'
|
||
TryCatchExpr
|
||
::= TryClause ( CatchClause+ FinallyClause? | FinallyClause )
|
||
TryClause
|
||
::= 'try' EnclosedExpr
|
||
CatchClause
|
||
::= 'catch' NameTestUnion EnclosedExpr
|
||
FinallyClause
|
||
::= 'finally' EnclosedExpr
|
||
OrExpr ::= AndExpr ( 'or' AndExpr )*
|
||
AndExpr ::= ComparisonExpr ( 'and' ComparisonExpr )*
|
||
ComparisonExpr
|
||
::= OtherwiseExpr ( ( ValueComp | GeneralComp | NodeComp ) OtherwiseExpr )?
|
||
OtherwiseExpr
|
||
::= StringConcatExpr ( 'otherwise' StringConcatExpr )*
|
||
StringConcatExpr
|
||
::= RangeExpr ( '||' RangeExpr )*
|
||
RangeExpr
|
||
::= AdditiveExpr ( 'to' AdditiveExpr )?
|
||
AdditiveExpr
|
||
::= MultiplicativeExpr ( ( '+' | '-' ) MultiplicativeExpr )*
|
||
MultiplicativeExpr
|
||
::= UnionExpr ( ( '*' | '×' | 'div' | '÷' | 'idiv' | 'mod' ) UnionExpr )*
|
||
UnionExpr
|
||
::= IntersectExceptExpr ( ( 'union' | '|' ) IntersectExceptExpr )*
|
||
IntersectExceptExpr
|
||
::= InstanceofExpr ( ( 'intersect' | 'except' ) InstanceofExpr )*
|
||
InstanceofExpr
|
||
::= TreatExpr ( 'instance' 'of' SequenceType )?
|
||
TreatExpr
|
||
::= CastableExpr ( 'treat' 'as' SequenceType )?
|
||
CastableExpr
|
||
::= CastExpr ( 'castable' 'as' CastTarget '?'? )?
|
||
CastExpr ::= PipelineExpr ( 'cast' 'as' CastTarget '?'? )?
|
||
PipelineExpr
|
||
::= ArrowExpr ( ( '->' | '->' ) ArrowExpr )*
|
||
ArrowExpr
|
||
::= UnaryExpr ( SequenceArrowTarget | MappingArrowTarget )*
|
||
UnaryExpr
|
||
::= ( '-' | '+' )* ValueExpr
|
||
ValueExpr
|
||
::= ValidateExpr
|
||
| ExtensionExpr
|
||
| SimpleMapExpr
|
||
ValidateExpr
|
||
::= 'validate' ( ValidationMode | 'type' TypeName )? '{' Expr '}'
|
||
ValidationMode
|
||
::= 'lax'
|
||
| 'strict'
|
||
ExtensionExpr
|
||
::= Pragma+ '{' Expr? '}'
|
||
Pragma ::= '(#' S EQName ( S PragmaContents )? '#)'
|
||
/* ws: explicit */
|
||
SimpleMapExpr
|
||
::= PathExpr ( '!' PathExpr )*
|
||
PathExpr ::= AbsolutePathExpr
|
||
| RelativePathExpr
|
||
AbsolutePathExpr
|
||
::= '/' ( RelativePathExpr / )
|
||
| '//' RelativePathExpr
|
||
RelativePathExpr
|
||
::= StepExpr ( ( '/' | '//' ) StepExpr )*
|
||
StepExpr ::= PostfixExpr
|
||
| AxisStep
|
||
PostfixExpr
|
||
::= PrimaryExpr
|
||
| FilterExpr
|
||
| DynamicFunctionCall
|
||
| LookupExpr
|
||
| MethodCall
|
||
| FilterExprAM
|
||
PrimaryExpr
|
||
::= Literal
|
||
| VarRef
|
||
| ParenthesizedExpr
|
||
| ContextValueRef
|
||
| FunctionCall
|
||
| OrderedExpr
|
||
| UnorderedExpr
|
||
| NodeConstructor
|
||
| FunctionItemExpr
|
||
| MapConstructor
|
||
| ArrayConstructor
|
||
| StringTemplate
|
||
| StringConstructor
|
||
| UnaryLookup
|
||
Literal ::= NumericLiteral
|
||
| StringLiteral
|
||
| QNameLiteral
|
||
VarRef ::= '$' EQName
|
||
ParenthesizedExpr
|
||
::= '(' Expr? ')'
|
||
ContextValueRef
|
||
::= '.'
|
||
FunctionCall
|
||
::= UnreservedFunctionEQName ArgumentList
|
||
UnreservedFunctionEQName
|
||
::= UnreservedFunctionQName
|
||
| URIQualifiedName
|
||
ArgumentList
|
||
::= '(' ( PositionalArguments ( ',' KeywordArguments )? | KeywordArguments )? ')'
|
||
PositionalArguments
|
||
::= Argument
|
||
| PositionalArguments ',' Argument
|
||
Argument ::= ExprSingle
|
||
| ArgumentPlaceholder
|
||
ArgumentPlaceholder
|
||
::= '?'
|
||
KeywordArguments
|
||
::= KeywordArgument ( ',' KeywordArgument )*
|
||
KeywordArgument
|
||
::= EQName ':=' Argument
|
||
OrderedExpr
|
||
::= 'ordered' EnclosedExpr
|
||
UnorderedExpr
|
||
::= 'unordered' EnclosedExpr
|
||
NodeConstructor
|
||
::= DirectConstructor
|
||
| ComputedConstructor
|
||
DirectConstructor
|
||
::= DirElemConstructor
|
||
| DirCommentConstructor
|
||
| DirPIConstructor
|
||
DirElemConstructor
|
||
::= '<'^DirElemConstructor QName DirAttributeList ( '/>' | '>' DirElemContent* '</' QName S? '>' )
|
||
/* ws: explicit */
|
||
DirAttributeList
|
||
::= ( S ( QName S? '=' S? DirAttributeValue )? )*
|
||
/* ws: explicit */
|
||
DirAttributeValue
|
||
::= '"' ( EscapeQuot | QuotAttrValueContent )* '"'
|
||
| "'" ( EscapeApos | AposAttrValueContent )* "'"
|
||
/* ws: explicit */
|
||
QuotAttrValueContent
|
||
::= QuotAttrContentChar
|
||
| CommonContent
|
||
CommonContent
|
||
::= PredefinedEntityRef
|
||
| CharRef
|
||
| '{{'
|
||
| '}}'
|
||
| EnclosedExpr
|
||
AposAttrValueContent
|
||
::= AposAttrContentChar
|
||
| CommonContent
|
||
DirElemContent
|
||
::= DirectConstructor
|
||
| CDataSection
|
||
| CommonContent
|
||
| ElementContentChar
|
||
CDataSection
|
||
::= '<![CDATA[' CDataSectionContents ']]>'
|
||
/* ws: explicit */
|
||
DirCommentConstructor
|
||
::= '<!--' DirCommentContents '-->'
|
||
/* ws: explicit */
|
||
DirPIConstructor
|
||
::= '<?' PITarget ( S DirPIContents )? '?>'
|
||
/* ws: explicit */
|
||
ComputedConstructor
|
||
::= CompDocConstructor
|
||
| CompElemConstructor
|
||
| CompAttrConstructor
|
||
| CompNamespaceConstructor
|
||
| CompTextConstructor
|
||
| CompCommentConstructor
|
||
| CompPIConstructor
|
||
CompDocConstructor
|
||
::= 'document' EnclosedExpr
|
||
CompElemConstructor
|
||
::= 'element' CompNodeName EnclosedContentExpr
|
||
CompNodeName
|
||
::= QNameLiteral
|
||
| UnreservedName
|
||
| '{' Expr '}'
|
||
UnreservedName
|
||
::= UnreservedQName
|
||
| URIQualifiedName
|
||
EnclosedContentExpr
|
||
::= EnclosedExpr
|
||
CompAttrConstructor
|
||
::= 'attribute' CompNodeName EnclosedExpr
|
||
CompNamespaceConstructor
|
||
::= 'namespace' CompNodeNCName EnclosedExpr
|
||
CompNodeNCName
|
||
::= MarkedNCName
|
||
| UnreservedNCName
|
||
| '{' Expr '}'
|
||
MarkedNCName
|
||
::= '#' NCName
|
||
CompTextConstructor
|
||
::= 'text' EnclosedExpr
|
||
CompCommentConstructor
|
||
::= 'comment' EnclosedExpr
|
||
CompPIConstructor
|
||
::= 'processing-instruction' CompNodeNCName EnclosedExpr
|
||
FunctionItemExpr
|
||
::= NamedFunctionRef
|
||
| InlineFunctionExpr
|
||
NamedFunctionRef
|
||
::= UnreservedFunctionEQName '#' IntegerLiteral
|
||
InlineFunctionExpr
|
||
::= Annotation* ( 'function' | 'fn' ) FunctionSignature? FunctionBody
|
||
FunctionSignature
|
||
::= '(' ParamList ')' TypeDeclaration?
|
||
ParamList
|
||
::= ( VarNameAndType ( ',' VarNameAndType )* )?
|
||
FunctionBody
|
||
::= EnclosedExpr
|
||
MapConstructor
|
||
::= 'map'? '{' ( MapConstructorEntry ( ',' MapConstructorEntry )* )? '}'
|
||
MapConstructorEntry
|
||
::= ExprSingle ( ':' ExprSingle )?
|
||
ArrayConstructor
|
||
::= SquareArrayConstructor
|
||
| CurlyArrayConstructor
|
||
SquareArrayConstructor
|
||
::= '[' ( ExprSingle ( ',' ExprSingle )* )? ']'
|
||
CurlyArrayConstructor
|
||
::= 'array' EnclosedExpr
|
||
StringTemplate
|
||
::= '`' ( StringTemplateFixedPart | StringTemplateVariablePart )* '`'
|
||
/* ws: explicit */
|
||
StringTemplateVariablePart
|
||
::= EnclosedExpr
|
||
StringConstructor
|
||
::= '``[' StringConstructorContent ']``'
|
||
/* ws: explicit */
|
||
StringConstructorContent
|
||
::= StringConstructorChars ( StringInterpolation StringConstructorChars )*
|
||
/* ws: explicit */
|
||
StringInterpolation
|
||
::= '`' EnclosedExpr '`'
|
||
/* ws: explicit */
|
||
UnaryLookup
|
||
::= Lookup
|
||
Lookup ::= '?' KeySpecifier
|
||
KeySpecifier
|
||
::= NCName
|
||
| Literal
|
||
| ContextValueRef
|
||
| VarRef
|
||
| ParenthesizedExpr
|
||
| LookupWildcard
|
||
LookupWildcard
|
||
::= '*'
|
||
FilterExpr
|
||
::= PostfixExpr Predicate
|
||
Predicate
|
||
::= '[' Expr ']'
|
||
DynamicFunctionCall
|
||
::= PostfixExpr PositionalArgumentList
|
||
PositionalArgumentList
|
||
::= '(' PositionalArguments? ')'
|
||
LookupExpr
|
||
::= PostfixExpr Lookup
|
||
MethodCall
|
||
::= PostfixExpr '?>' NCName PositionalArgumentList
|
||
FilterExprAM
|
||
::= PostfixExpr '?[' Expr ']'
|
||
AxisStep ::= ( AbbreviatedStep | FullStep ) Predicate*
|
||
AbbreviatedStep
|
||
::= '..'
|
||
| '@' NodeTest
|
||
| SimpleNodeTest
|
||
NodeTest ::= UnionNodeTest
|
||
| SimpleNodeTest
|
||
UnionNodeTest
|
||
::= '(' SimpleNodeTest ( '|' SimpleNodeTest )* ')'
|
||
SimpleNodeTest
|
||
::= TypeTest
|
||
| Selector
|
||
TypeTest ::= RegularItemType
|
||
| 'type' '(' SequenceType ')'
|
||
Selector ::= EQName
|
||
| Wildcard
|
||
| 'get' '(' Expr ')'
|
||
FullStep ::= Axis NodeTest
|
||
Axis ::= ( 'ancestor' | 'ancestor-or-self' | 'attribute' | 'child' | 'descendant' | 'descendant-or-self' | 'following' | 'following-or-self' | 'following-sibling' | 'following-sibling-or-self' | 'parent' | 'preceding' | 'preceding-or-self' | 'preceding-sibling' | 'preceding-sibling-or-self' | 'self' ) '::'
|
||
SequenceArrowTarget
|
||
::= ( '=>' | '=>' ) ArrowTarget
|
||
ArrowTarget
|
||
::= FunctionCall
|
||
| RestrictedDynamicCall
|
||
RestrictedDynamicCall
|
||
::= ( VarRef | ParenthesizedExpr | FunctionItemExpr | MapConstructor | ArrayConstructor ) PositionalArgumentList
|
||
MappingArrowTarget
|
||
::= ( '=!>' | '=!>' ) ArrowTarget
|
||
CastTarget
|
||
::= TypeName
|
||
| ChoiceItemType
|
||
| EnumerationType
|
||
ValueComp
|
||
::= 'eq'
|
||
| 'ne'
|
||
| 'lt'
|
||
| 'le'
|
||
| 'gt'
|
||
| 'ge'
|
||
GeneralComp
|
||
::= '='
|
||
| '!='
|
||
| ( '<'^GeneralComp | '<' )
|
||
| ( '<=' | '<=' )
|
||
| ( '>' | '>' )
|
||
| ( '>=' | '>=' )
|
||
NodeComp ::= 'is'
|
||
| 'is-not'
|
||
| NodePrecedes
|
||
| NodeFollows
|
||
NodePrecedes
|
||
::= ( '<<' | '<<' )
|
||
| 'precedes'
|
||
NodeFollows
|
||
::= ( '>>' | '>>' )
|
||
| 'follows'
|
||
VarDefaultValue
|
||
::= ExprSingle
|
||
VarDecl ::= 'declare' Annotation* 'variable' VarNameAndType ( ':=' VarValue | 'external' ( ':=' VarDefaultValue )? )
|
||
FunctionDecl
|
||
::= 'declare' Annotation* 'function' UnreservedFunctionEQName '(' ParamListWithDefaults? ')' TypeDeclaration? ( FunctionBody | 'external' )
|
||
ParamListWithDefaults
|
||
::= ParamWithDefault ( ',' ParamWithDefault )*
|
||
ParamWithDefault
|
||
::= VarNameAndType ( ':=' ExprSingle )?
|
||
ItemTypeDecl
|
||
::= 'declare' Annotation* 'type' EQName 'as' ItemType
|
||
NamedRecordTypeDecl
|
||
::= 'declare' Annotation* 'record' EQName '(' ( ExtendedFieldDeclaration ( ',' ExtendedFieldDeclaration )* )? ExtensibleFlag? ')'
|
||
ExtendedFieldDeclaration
|
||
::= FieldDeclaration ( ':=' ExprSingle )?
|
||
OptionDecl
|
||
::= 'declare' 'option' EQName StringLiteral
|
||
MainModule
|
||
::= Prolog QueryBody
|
||
QueryBody
|
||
::= Expr
|
||
Whitespace
|
||
::= S^WS
|
||
| Comment
|
||
/* ws: definition */
|
||
Comment ::= '(:' ( CommentContents | Comment )* ':)'
|
||
/* ws: explicit */
|
||
|
||
<?TOKENS?>
|
||
|
||
StringLiteral
|
||
::= AposStringLiteral
|
||
| QuotStringLiteral
|
||
/* ws: explicit */
|
||
AposStringLiteral
|
||
::= "'" ( PredefinedEntityRef | CharRef | EscapeApos | [^'&] )* "'"
|
||
/* ws: explicit */
|
||
PredefinedEntityRef
|
||
::= '&' ( 'lt' | 'gt' | 'amp' | 'quot' | 'apos' ) ';'
|
||
/* ws: explicit */
|
||
CharRef ::= '&#' [0-9]+ ';'
|
||
| '&#x' [0-9a-fA-F]+ ';'
|
||
EscapeApos
|
||
::= "''"
|
||
/* ws: explicit */
|
||
QuotStringLiteral
|
||
::= '"' ( PredefinedEntityRef | CharRef | EscapeQuot | [^"&] )* '"'
|
||
/* ws: explicit */
|
||
EscapeQuot
|
||
::= '""'
|
||
/* ws: explicit */
|
||
AposAttrContentChar
|
||
::= Char - ['{}<&]
|
||
Char ::= #x9
|
||
| #xA
|
||
| #xD
|
||
| [#x20-#xD7FF]
|
||
| [#xE000-#xFFFD]
|
||
| [#x10000-#x10FFFF]
|
||
CDataSectionContents
|
||
::= Char* - ( Char* ']]>' Char* ) & ']]'
|
||
UnreservedNCName
|
||
::= NCName - ReservedName
|
||
NCName ::= Name - ( Char* ':' Char* )
|
||
Name ::= NameStartChar NameChar*
|
||
NameStartChar
|
||
::= ':'
|
||
| [A-Z]
|
||
| '_'
|
||
| [a-z]
|
||
| [#xC0-#xD6]
|
||
| [#xD8-#xF6]
|
||
| [#xF8-#x2FF]
|
||
| [#x370-#x37D]
|
||
| [#x37F-#x1FFF]
|
||
| [#x200C-#x200D]
|
||
| [#x2070-#x218F]
|
||
| [#x2C00-#x2FEF]
|
||
| [#x3001-#xD7FF]
|
||
| [#xF900-#xFDCF]
|
||
| [#xFDF0-#xFFFD]
|
||
| [#x10000-#xEFFFF]
|
||
NameChar ::= NameStartChar
|
||
| '-'
|
||
| '.'
|
||
| [0-9]
|
||
| #xB7
|
||
| [#x0300-#x036F]
|
||
| [#x203F-#x2040]
|
||
ReservedName
|
||
::= 'NaN'
|
||
| 'allowing'
|
||
| 'ancestor'
|
||
| 'ancestor-or-self'
|
||
| 'and'
|
||
| 'array'
|
||
| 'as'
|
||
| 'ascending'
|
||
| 'at'
|
||
| 'attribute'
|
||
| 'base-uri'
|
||
| 'boundary-space'
|
||
| 'by'
|
||
| 'case'
|
||
| 'cast'
|
||
| 'castable'
|
||
| 'catch'
|
||
| 'child'
|
||
| 'collation'
|
||
| 'comment'
|
||
| 'construction'
|
||
| 'context'
|
||
| 'copy-namespaces'
|
||
| 'count'
|
||
| 'decimal-format'
|
||
| 'decimal-separator'
|
||
| 'declare'
|
||
| 'default'
|
||
| 'descendant'
|
||
| 'descendant-or-self'
|
||
| 'descending'
|
||
| 'digit'
|
||
| 'div'
|
||
| 'document'
|
||
| 'document-node'
|
||
| 'element'
|
||
| 'else'
|
||
| 'empty'
|
||
| 'empty-sequence'
|
||
| 'encoding'
|
||
| 'end'
|
||
| 'enum'
|
||
| 'eq'
|
||
| 'every'
|
||
| 'except'
|
||
| 'exponent-separator'
|
||
| 'external'
|
||
| 'false'
|
||
| 'finally'
|
||
| 'fixed'
|
||
| 'fn'
|
||
| 'following'
|
||
| 'following-or-self'
|
||
| 'following-sibling'
|
||
| 'following-sibling-or-self'
|
||
| 'follows'
|
||
| 'for'
|
||
| 'function'
|
||
| 'ge'
|
||
| 'get'
|
||
| 'gnode'
|
||
| 'greatest'
|
||
| 'group'
|
||
| 'grouping-separator'
|
||
| 'gt'
|
||
| 'idiv'
|
||
| 'if'
|
||
| 'import'
|
||
| 'in'
|
||
| 'infinity'
|
||
| 'inherit'
|
||
| 'instance'
|
||
| 'intersect'
|
||
| 'is'
|
||
| 'is-not'
|
||
| 'item'
|
||
| 'jnode'
|
||
| 'key'
|
||
| 'lax'
|
||
| 'le'
|
||
| 'least'
|
||
| 'let'
|
||
| 'lt'
|
||
| 'map'
|
||
| 'member'
|
||
| 'minus-sign'
|
||
| 'mod'
|
||
| 'module'
|
||
| 'namespace'
|
||
| 'namespace-node'
|
||
| 'ne'
|
||
| 'next'
|
||
| 'no-inherit'
|
||
| 'no-preserve'
|
||
| 'node'
|
||
| 'of'
|
||
| 'only'
|
||
| 'option'
|
||
| 'or'
|
||
| 'order'
|
||
| 'ordered'
|
||
| 'ordering'
|
||
| 'otherwise'
|
||
| 'parent'
|
||
| 'pattern-separator'
|
||
| 'per-mille'
|
||
| 'percent'
|
||
| 'precedes'
|
||
| 'preceding'
|
||
| 'preceding-or-self'
|
||
| 'preceding-sibling'
|
||
| 'preceding-sibling-or-self'
|
||
| 'preserve'
|
||
| 'previous'
|
||
| 'processing-instruction'
|
||
| 'record'
|
||
| 'return'
|
||
| 'satisfies'
|
||
| 'schema'
|
||
| 'schema-attribute'
|
||
| 'schema-element'
|
||
| 'self'
|
||
| 'sliding'
|
||
| 'some'
|
||
| 'stable'
|
||
| 'start'
|
||
| 'strict'
|
||
| 'strip'
|
||
| 'switch'
|
||
| 'text'
|
||
| 'then'
|
||
| 'to'
|
||
| 'treat'
|
||
| 'true'
|
||
| 'try'
|
||
| 'tumbling'
|
||
| 'type'
|
||
| 'typeswitch'
|
||
| 'union'
|
||
| 'unordered'
|
||
| 'validate'
|
||
| 'value'
|
||
| 'variable'
|
||
| 'version'
|
||
| 'when'
|
||
| 'where'
|
||
| 'while'
|
||
| 'window'
|
||
| 'xquery'
|
||
| 'zero-digit'
|
||
| '<'
|
||
| '<<'
|
||
| '>'
|
||
| '>>'
|
||
S ::= ( #x20 | #x9 | #xD | #xA )+
|
||
DirCommentContents
|
||
::= ( Char - '-' | '-' ( Char - '-' ) )*
|
||
/* ws: explicit */
|
||
ElementContentChar
|
||
::= Char - [{}<&]
|
||
PITarget ::= NCName - ( ( 'X' | 'x' ) ( 'M' | 'm' ) ( 'L' | 'l' ) )
|
||
DirPIContents
|
||
::= Char* - ( Char* '?>' Char* ) & '?'
|
||
URIQualifiedName
|
||
::= BracedURILiteral NCName
|
||
/* ws: explicit */
|
||
BracedURILiteral
|
||
::= 'Q' '{' ( PredefinedEntityRef | CharRef | [^&{}] )* '}'
|
||
/* ws: explicit */
|
||
EOF ::= $
|
||
IntegerLiteral
|
||
::= Digits
|
||
/* ws: explicit */
|
||
Digits ::= DecDigit ( ( DecDigit | '_' )* DecDigit )?
|
||
/* ws: explicit */
|
||
DecDigit ::= [0-9]
|
||
/* ws: explicit */
|
||
Wildcard ::= '*'
|
||
| NCName ':*'
|
||
| '*:' NCName
|
||
| BracedURILiteral '*'
|
||
/* ws: explicit */
|
||
HexIntegerLiteral
|
||
::= '0x' HexDigits
|
||
/* ws: explicit */
|
||
HexDigits
|
||
::= HexDigit ( ( HexDigit | '_' )* HexDigit )?
|
||
/* ws: explicit */
|
||
HexDigit ::= [0-9a-fA-F]
|
||
/* ws: explicit */
|
||
BinaryIntegerLiteral
|
||
::= '0b' BinaryDigits
|
||
/* ws: explicit */
|
||
BinaryDigits
|
||
::= BinaryDigit ( ( BinaryDigit | '_' )* BinaryDigit )?
|
||
/* ws: explicit */
|
||
BinaryDigit
|
||
::= [0-1]
|
||
/* ws: explicit */
|
||
DecimalLiteral
|
||
::= '.' Digits
|
||
| Digits '.' Digits?
|
||
/* ws: explicit */
|
||
DoubleLiteral
|
||
::= ( '.' Digits | Digits ( '.' Digits? )? ) [eE] [+#x2D]? Digits
|
||
/* ws: explicit */
|
||
PragmaContents
|
||
::= Char* - ( Char* '#)' Char* ) & '#'
|
||
QuotAttrContentChar
|
||
::= Char - ["{}<&]
|
||
StringConstructorChars
|
||
::= Char* - ( Char* ( '`{' | ']``' ) Char* ) & ( '`{' | ']`' )
|
||
StringTemplateFixedPart
|
||
::= ( Char - ( '{' | '}' | '`' ) | '{{' | '}}' | '``' )+
|
||
/* ws: explicit */
|
||
UnreservedQName
|
||
::= QName - ReservedName
|
||
QName ::= PrefixedName
|
||
| UnprefixedName
|
||
PrefixedName
|
||
::= Prefix ':' LocalPart
|
||
Prefix ::= NCName
|
||
LocalPart
|
||
::= NCName
|
||
UnprefixedName
|
||
::= LocalPart
|
||
CommentContents
|
||
::= ( Char+ - ( Char* ( '(:' | ':)' ) Char* ) ) - ( Char* '(' ) & ':'
|
||
| Char+ - ( Char* ( '(:' | ':)' ) Char* ) & '('
|
||
/* ws: explicit */
|
||
QNameOrKeywordDelimiter
|
||
::= $
|
||
| ':'
|
||
| Char - NameChar
|
||
NCNameDelimiter
|
||
::= $ $
|
||
| ( Char - NameChar ) ( $ | Char )
|
||
| ':' ( Char - NameStartChar )
|
||
NumericLiteralDelimiter
|
||
::= QNameOrKeywordDelimiter
|
||
| '-'
|
||
GeneralCompDelimiter
|
||
::= [^?]
|
||
DirElemConstructorDelimiter
|
||
::= QName ( S QName S? '=' | S? [/>] )
|
||
'*' << Wildcard
|
||
QNameOrKeywordDelimiter
|
||
\\ UnreservedQName 'NaN' 'allowing' 'ancestor' 'ancestor-or-self' 'and' 'array' 'as' 'ascending' 'at' 'attribute' 'base-uri' 'boundary-space' 'by' 'case' 'cast' 'castable' 'catch' 'child' 'collation' 'comment' 'construction' 'context' 'copy-namespaces' 'count' 'decimal-format' 'decimal-separator' 'declare' 'default' 'descendant' 'descendant-or-self' 'descending' 'digit' 'div' 'document' 'document-node' 'element' 'else' 'empty' 'empty-sequence' 'encoding' 'end' 'enum' 'eq' 'every' 'except' 'exponent-separator' 'external' 'false' 'finally' 'fixed' 'fn' 'following' 'following-or-self' 'following-sibling' 'following-sibling-or-self' 'follows' 'for' 'function' 'ge' 'get' 'gnode' 'greatest' 'group' 'grouping-separator' 'gt' 'idiv' 'if' 'import' 'in' 'infinity' 'inherit' 'instance' 'intersect' 'is' 'is-not' 'item' 'jnode' 'key' 'lax' 'le' 'least' 'let' 'lt' 'map' 'member' 'minus-sign' 'mod' 'module' 'namespace' 'namespace-node' 'ne' 'next' 'no-inherit' 'no-preserve' 'node' 'of' 'only' 'option' 'or' 'order' 'ordered' 'ordering' 'otherwise' 'parent' 'pattern-separator' 'per-mille' 'percent' 'precedes' 'preceding' 'preceding-or-self' 'preceding-sibling' 'preceding-sibling-or-self' 'preserve' 'previous' 'processing-instruction' 'record' 'return' 'satisfies' 'schema' 'schema-attribute' 'schema-element' 'self' 'sliding' 'some' 'stable' 'start' 'strict' 'strip' 'switch' 'text' 'then' 'to' 'treat' 'true' 'try' 'tumbling' 'type' 'typeswitch' 'union' 'unordered' 'validate' 'value' 'variable' 'version' 'when' 'where' 'while' 'window' 'xquery' 'zero-digit'
|
||
Char \\ '<' '<=' '>' '>=' '>>' '<<' '</' '<<' '<='
|
||
NCNameDelimiter
|
||
\\ UnreservedNCName
|
||
NumericLiteralDelimiter
|
||
\\ DecimalLiteral DoubleLiteral IntegerLiteral
|
||
GeneralCompDelimiter
|
||
\\ '<'^GeneralComp
|
||
DirElemConstructorDelimiter
|
||
\\ '<'^DirElemConstructor
|
||
S \\ '(#' |