[1] |
module | ::= |
versionDecl? (libraryModule | mainModule)
|
[2] |
versionDecl | ::= |
XQUERY VERSION stringliteral (ENCODING stringliteral)? separator
|
[3] |
mainModule | ::= |
prolog queryBody
|
[4] |
libraryModule | ::= |
moduleDecl prolog
|
[5] |
moduleDecl | ::= |
MODULE NAMESPACE NCNAME EQUALS uriliteral separator
|
[6] |
prolog | ::= |
baseDecl? (((defaultNamespaceDecl | namespaceDecl | setter | importa) separator!) | prefixDecl)* ((varDecl | functionDecl | optionDecl) separator!)*
|
[7] |
setter | ::= |
boundarySpaceDecl | defaultCollationDecl | baseURIDecl | constructionDecl | orderingModeDecl | emptyOrderDecl | copyNamespacesDecl
|
[8] |
importa | ::= |
schemaImport | moduleImport
|
[9] |
separator | ::= |
SEMICOLON
|
[10] |
namespaceDecl | ::= |
DECLARE NAMESPACE NCNAME EQUALS QSTRING
|
[11] |
boundarySpaceDecl | ::= |
DECLARE BOUNDARYSPACE (PRESERVE | STRIP)
|
[12] |
defaultNamespaceDecl | ::= |
DECLARE DEFAULT (ELEMENT | FUNCTION) NAMESPACE QSTRING
|
[13] |
optionDecl | ::= |
DECLARE OPTION qname stringliteral
|
[14] |
orderingModeDecl | ::= |
DECLARE ORDERING (ORDERED | UNORDERED)
|
[15] |
emptyOrderDecl | ::= |
DECLARE DEFAULT ORDER EMPTY (GREATEST | LEAST )
|
[16] |
copyNamespacesDecl | ::= |
DECLARE! COPYNAMESPACES^ preserveMode COMMA! inheritMode
|
[17] |
preserveMode | ::= |
PRESERVE | NOPRESERVE
|
[18] |
inheritMode | ::= |
INHERIT | NOINHERIT
|
[19] |
defaultCollationDecl | ::= |
DECLARE DEFAULT COLLATION uriliteral
|
[20] |
baseURIDecl | ::= |
DECLARE BASEURI QSTRING
|
[21] |
schemaImport | ::= |
IMPORT SCHEMA schemaPrefix? uriliteral (AT uriliteral (COMMA uriliteral)*)?
|
[22] |
schemaPrefix | ::= |
NAMESPACE! NCNAME EQUALS! | DEFAULT ELEMENT! NAMESPACE!
|
[23] |
moduleImport | ::= |
IMPORT MODULE (NAMESPACE NCNAME EQUALS)? uriliteral (AT uriliteral (COMMA uriliteral)*)?
|
[24] |
varDecl | ::= |
DECLARE VARIABLE VAR typeDeclaration? ( ASSIGN exprSingle | EXTERNAL )
|
[25] |
constructionDecl | ::= |
DECLARE CONSTRUCTION (STRIP | PRESERVE)
|
[26] |
functionDecl | ::= |
DECLARE FUNCTION qname LPAR paramList? RPAR (AS sequenceType)? (enclosedExpr | EXTERNAL)
|
[27] |
paramList | ::= |
param (COMMA! param)*
|
[28] |
param | ::= |
VAR typeDeclaration?
|
[29] |
enclosedExpr | ::= |
LCURLY! expr RCURLY!
|
[30] |
queryBody | ::= |
exprSingle (COMMA exprSingle)*
|
[31] |
expr | ::= |
exprSingle (COMMA! exprSingle)*
|
[32] |
exprSingle | ::= |
flworExpr | quantifiedExpr | typeSwitchExpr | constructQuery | orExpr | ifExpr
|
[33] |
flworExpr | ::= |
(CONSTRUCT constructTemplate) | (RETURN exprSingle) | forletClause
|
[34] |
forletClause | ::= |
FOR! (sparqlForClause | sqlForClause | (xqueryForClause whereClause? orderByClause?)) | letClause whereClause? orderByClause?
|
[35] |
sparqlForClause | ::= |
DISTINCT? sparqlVarOrFunction+ datasetClause* endpointClause? sWhereClause solutionmodifier valuesClause | DISTINCT? STAR datasetClause* endpointClause? sWhereClause solutionmodifier valuesClause
|
[36] |
distinctOrReduced | ::= |
DISTINCT | REDUCED
|
[37] |
endpointClause | ::= |
ENDPOINT sourceSelector
|
[38] |
sparqlVarOrFunction | ::= |
VAR | LPAR expression AS VAR RPAR
|
[39] |
xqueryForClause | ::= |
singleForClause (COMMA! singleForClause)*
|
[40] |
singleForClause | ::= |
VAR typeDeclaration? positionalVar? IN exprSingle
|
[41] |
positionalVar | ::= |
AT! VAR
|
[42] |
letClause | ::= |
LET! singleLetClause (COMMA! singleLetClause)*
|
[43] |
singleLetClause | ::= |
VAR typeDeclaration? ASSIGN exprSingle
|
[44] |
whereClause | ::= |
WHERE exprSingle
|
[45] |
orderByClause | ::= |
ORDER BY orderSpecList | STABLE ORDER BY orderSpecList
|
[46] |
orderSpecList | ::= |
orderSpec (COMMA orderSpec)*
|
[47] |
orderSpec | ::= |
exprSingle orderModifier
|
[48] |
orderModifier | ::= |
(ASCENDING | DESCENDING)? (EMPTY (GREATEST | LEAST))? (COLLATION uriliteral)?
|
[49] |
quantifiedExpr | ::= |
(SOME | EVERY) VAR typeDeclaration? IN exprSingle (COMMA VAR typeDeclaration? IN exprSingle)* SATISFIES exprSingle
|
[50] |
typeSwitchExpr | ::= |
TYPESWITCH^ LPAR! expr RPAR! caseClause+ DEFAULT! VAR? RETURN! exprSingle
|
[51] |
caseClause | ::= |
CASE (VAR AS)? sequenceType RETURN exprSingle
|
[52] |
ifExpr | ::= |
IF^ LPAR! expr RPAR! THEN! exprSingle ELSE! exprSingle
|
[53] |
orExpr | ::= |
andExpr (OR^ andExpr)*
|
[54] |
andExpr | ::= |
comparisonExpr (AND comparisonExpr)*
|
[55] |
comparisonExpr | ::= |
((valueComp^ | generalComp^ | nodeComp^) rangeExpr)?
|
[56] |
rangeExpr | ::= |
additiveExpr (TO additiveExpr)?
|
[57] |
additiveExpr | ::= |
multiplicativeExpr ((PLUS | MINUS) multiplicativeExpr)*
|
[58] |
multiplicativeExpr | ::= |
unionExpr ((STAR | DIV | IDIV | MOD) unionExpr)*
|
[59] |
unionExpr | ::= |
intersectExceptExpr ((UNION | UNIONSYMBOL) intersectExceptExpr)*
|
[60] |
intersectExceptExpr | ::= |
instanceOfExpr ((INTERSECT | EXCEPT) instanceOfExpr)*
|
[61] |
instanceOfExpr | ::= |
treatExpr (INSTANCE OF sequenceType)?
|
[62] |
treatExpr | ::= |
castableExpr (TREAT AS sequenceType)?
|
[63] |
castableExpr | ::= |
castExpr (CASTABLE AS singleType)?
|
[64] |
castExpr | ::= |
unaryExpr (CAST AS singleType)?
|
[65] |
unaryExpr | ::= |
(MINUS | PLUS)* valueExpr
|
[66] |
valueExpr | ::= |
pathExpr | validateExpr | extensionExpr
|
[67] |
generalComp | ::= |
EQUALS | LESSTHAN | GREATERTHAN | LESSTHANEQUALS | GREATERTHANEQUALS | HAFENEQUALS
|
[68] |
valueComp | ::= |
( EQ | NE | LT | LE | GT | GE )
|
[69] |
nodeComp | ::= |
( LESSTHANLESSTHAN | GREATERTHANGREATERTHAN | IS )
|
[70] |
validateExpr | ::= |
VALIDATE validationMode? LCURLY! expr RCURLY!
|
[71] |
validationMode | ::= |
(LAX | STRICT)
|
[72] |
extensionExpr | ::= |
LCURLY! expr? RCURLY!
|
[73] |
pathExpr | ::= |
(SLASH SLASH) | (SLASH relativePathExpr) | SLASH | relativePathExpr
|
[74] |
relativePathExpr | ::= |
stepExpr (SLASH SLASH? stepExpr)*
|
[75] |
stepExpr | ::= |
filterExpr | axisStep
|
[76] |
axisStep | ::= |
(reverseStep | forwardStep) predicateList
|
[77] |
forwardStep | ::= |
forwardAxis nodeTest | abbrevForwardStep
|
[78] |
forwardAxis | ::= |
CHILD COLONCOLON | DESCENDANT COLONCOLON | ATTRIBUTE COLONCOLON | SELF COLONCOLON | DESCENDANTORSELF COLONCOLON | FOLLOWINGSIBLING COLONCOLON | FOLLOWING COLONCOLON
|
[79] |
abbrevForwardStep | ::= |
AT? nodeTest
|
[80] |
reverseStep | ::= |
reverseAxis nodeTest | abbrevReverseStep
|
[81] |
reverseAxis | ::= |
PARENT COLONCOLON | ANCESTOR COLONCOLON | PRECEDINGSIBLING COLONCOLON | PRECEDING COLONCOLON | ANCESTORORSELF COLONCOLON
|
[82] |
abbrevReverseStep | ::= |
DOTDOT
|
[83] |
nodeTest | ::= |
kindTest | nameTest
|
[84] |
nameTest | ::= |
qname | wildCard
|
[85] |
wildCard | ::= |
STAR | STAR COLON NCNAME | NCNAME COLON STAR
|
[86] |
filterExpr | ::= |
primaryExpr predicateList
|
[87] |
predicateList | ::= |
predicate*
|
[88] |
predicate | ::= |
LBRACKET expr RBRACKET
|
[89] |
primaryExpr | ::= |
varRef | literal | parenthesizedExpr | contextItemExpr | functionCall | orderedExpr | unorderedExpr | constructor
|
[90] |
literal | ::= |
numericliteral | stringliteral
|
[91] |
numericliteral | ::= |
integerLiteral | decimalLiteral
|
[92] |
varRef | ::= |
VAR
|
[93] |
varName | ::= |
qname
|
[94] |
parenthesizedExpr | ::= |
LPAR expr? RPAR
|
[95] |
contextItemExpr | ::= |
DOT
|
[96] |
orderedExpr | ::= |
ORDERED LCURLY! expr RCURLY!
|
[97] |
unorderedExpr | ::= |
UNORDERED LCURLY! expr RCURLY!
|
[98] |
functionCall | ::= |
qname LPAR (exprSingle (COMMA exprSingle)*)? RPAR
|
[99] |
constructor | ::= |
directConstructor | computedConstructor
|
[100] |
directConstructor | ::= |
dirElemConstructor
|
[101] |
dirElemConstructor | ::= |
LESSTHAN qname dirAttributeList (ENDTAG| (GREATERTHAN dirElemContent* ENDELM qname WHITESPACE? GREATERTHAN))
|
[102] |
dirAttributeList | ::= |
(WHITESPACE! dirAttribute?)*
|
[103] |
dirAttribute | ::= |
qname WHITESPACE? EQUALS WHITESPACE? dirAttributeValue
|
[104] |
dirAttributeValue | ::= |
enclosedExpr | QSTRING
|
[105] |
dirElemContent | ::= |
directConstructor | commonContent | WHITESPACE | NCNAMEELM | cDataSection
|
[106] |
commonContent | ::= |
(enclosedExpr_) | | LCURLY LCURLY | RCURLY RCURLY
|
[107] |
cDataSection | ::= |
CDATASTART CDATAELMEND
|
[108] |
computedConstructor | ::= |
compDocConstructor | compElemConstructor | compAttrConstructor | compTextConstructor | compCommentConstructor | compPIConstructor
|
[109] |
compDocConstructor | ::= |
DOCUMENT enclosedExpr
|
[110] |
compElemConstructor | ::= |
ELEMENT ( qname | enclosedExpr_) LCURLY contentExpr? RCURLY
|
[111] |
contentExpr | ::= |
expr
|
[112] |
compAttrConstructor | ::= |
ATTRIBUTE (qname | enclosedExpr) LCURLY expr? RCURLY
|
[113] |
compTextConstructor | ::= |
TEXT enclosedExpr_
|
[114] |
| ::= |
COMMENT enclosedExpr
|
[115] |
compPIConstructor | ::= |
PROCESSINGINSTRUCTION ( NCNAME | enclosedExpr) LCURLY expr? RCURLY
|
[116] |
singleType | ::= |
atomicType QUESTIONMARK?
|
[117] |
typeDeclaration | ::= |
AS! sequenceType
|
[118] |
sequenceType | ::= |
EMPTYSEQUENCE LPAR RPAR | itemType occurrenceIndicator?
|
[119] |
occurrenceIndicator | ::= |
QUESTIONMARK
|
[120] |
itemType | ::= |
ITEM LPAR RPAR | atomicType | kindTest
|
[121] |
atomicType | ::= |
qname
|
[122] |
kindTest | ::= |
documentTest | elementTest | attributeTest | schemaElementTest | schemaAttributeTest | piTest | commentTest | textTest | anyKindTest
|
[123] |
anyKindTest | ::= |
NODE LPAR RPAR
|
[124] |
documentTest | ::= |
DOCUMENTNODE LPAR (elementTest | schemaElementTest)? RPAR
|
[125] |
textTest | ::= |
TEXT LPAR RPAR
|
[126] |
| ::= |
COMMENT LPAR RPAR
|
[127] |
piTest | ::= |
PROCESSINGINSTRUCTION LPAR (NCNAME | stringliteral)? RPAR
|
[128] |
attributeTest | ::= |
ATTRIBUTE LPAR (attributeNameOrWildcard (COMMA typeName)?)? RPAR
|
[129] |
attributeNameOrWildcard | ::= |
attributeName | STAR
|
[130] |
schemaAttributeTest | ::= |
SCHEMAATTRIBUTE LPAR attributeDeclaration RPAR
|
[131] |
attributeDeclaration | ::= |
attributeName
|
[132] |
elementTest | ::= |
ELEMENT LPAR (elementNameOrWildcard (COMMA typeName QUESTIONMARK?)?)? RPAR
|
[133] |
elementNameOrWildcard | ::= |
elementName | STAR
|
[134] |
schemaElementTest | ::= |
SCHEMAELEMENT LPAR elementDeclaration RPAR
|
[135] |
elementDeclaration | ::= |
elementName
|
[136] |
attributeName | ::= |
qname
|
[137] |
elementName | ::= |
qname
|
[138] |
typeName | ::= |
qname
|
[139] |
uriliteral | ::= |
stringliteral
|
[140] |
integerLiteral | ::= |
INTEGER
|
[141] |
decimalLiteral | ::= |
DECIMAL
|
[142] |
stringliteral | ::= |
QSTRING
|