<DEFAULT> TOKEN : {
<IntegerLiteral: <Digits>>
}
|
<DEFAULT> TOKEN : {
<DecimalLiteral: "." <Digits> | <Digits> "." (["0"-"9"])*>
}
|
<DEFAULT> TOKEN : {
<DoubleLiteral: ("." <Digits> | <Digits> ("." (["0"-"9"])*)?) ["e","E"] (["+","-"])? <Digits>>
}
|
<DEFAULT> TOKEN : {
<StringLiteral: "\"" (<PredefinedEntityRef> | <CharRef> | <EscapeQuot> | ~["\"","&"])* "\"" | "\'" (<PredefinedEntityRef> | <CharRef> | <EscapeApos> | ~["\'","&"])* "\'">
}
|
<FTPOSFILTER,FTMATCHOPTION,PROLOG_SPECIAL,PROLOG_NCNAME,DECLAREORDERING,DEFAULT,PROLOG,OPERAND,OPERATOR,KINDTEST,NAMESPACEDECL,SINGLETYPE,ITEMTYPE,NAMESPACEKEYWORD,VARNAME,OCCURRENCEINDICATOR,CLOSEKINDTEST,XQUERYVERSION,PRAGMA,OPTION,URITOOPERATOR> SKIP : {
<DUMMYLABEL: <skip_>>
}
|
<DEFAULT> TOKEN : {
<#skip_: (<WhitespaceChar>)+>
}
|
<DEFAULT> TOKEN : {
<Minus: "-">
}
|
<DEFAULT> TOKEN : {
<Plus: "+">
}
|
<DEFAULT> TOKEN : {
<External: "external">
}
|
<DEFAULT> TOKEN : {
<Ascending: "ascending">
}
|
<DEFAULT> TOKEN : {
<Descending: "descending">
}
|
<DEFAULT> TOKEN : {
<Greatest: "greatest">
}
|
<DEFAULT> TOKEN : {
<Least: "least">
}
|
<DEFAULT> TOKEN : {
<#Prefix: <NCNameTok>>
}
|
<DEFAULT> TOKEN : {
<#LocalPart: <NCNameTok>>
}
|
<DEFAULT> TOKEN : {
<#Nmstart: <Letter> | "_">
}
|
<DEFAULT> TOKEN : {
<#Nmchar: <Letter> | <CombiningChar> | <Extender> | <Digit> | "." | "-" | "_">
}
|
<DEFAULT,ELEMENT_CONTENT,QUOT_ATTRIBUTE_CONTENT,APOS_ATTRIBUTE_CONTENT> TOKEN : {
<PredefinedEntityRef: "&" ("lt" | "gt" | "amp" | "quot" | "apos") ";">
}
|
<QUOT_ATTRIBUTE_CONTENT> TOKEN : {
<EscapeQuot: "\"\""> : QUOT_ATTRIBUTE_CONTENT
}
|
<APOS_ATTRIBUTE_CONTENT> TOKEN : {
<EscapeApos: "\'\'"> : APOS_ATTRIBUTE_CONTENT
}
|
<DEFAULT> TOKEN : {
<#HexDigits: (["0"-"9","a"-"f","A"-"F"])+>
}
|
<ELEMENT_CONTENT,QUOT_ATTRIBUTE_CONTENT,APOS_ATTRIBUTE_CONTENT> TOKEN : {
<Lbrace: "{"> : DEFAULT
}
|
<DEFAULT> TOKEN : {
<LbraceExprEnclosure: "{"> : DEFAULT
}
|
<DEFAULT> TOKEN : {
<Rbrace: "}"> : {
}
|
<ELEMENT_CONTENT,QUOT_ATTRIBUTE_CONTENT,APOS_ATTRIBUTE_CONTENT> TOKEN : {
<RbraceErrorInContent: "}"> : DEFAULT
}
|
<ELEMENT_CONTENT,QUOT_ATTRIBUTE_CONTENT,APOS_ATTRIBUTE_CONTENT> TOKEN : {
<LCurlyBraceEscape: "{{">
}
|
<ELEMENT_CONTENT,QUOT_ATTRIBUTE_CONTENT,APOS_ATTRIBUTE_CONTENT> TOKEN : {
<RCurlyBraceEscape: "}}">
}
|
<ELEMENT_CONTENT,QUOT_ATTRIBUTE_CONTENT,APOS_ATTRIBUTE_CONTENT> TOKEN : {
<Amp: "&">
}
|
<DEFAULT> TOKEN : {
<LessThanOpOrTagO: "<"> : START_TAG
}
|
<ELEMENT_CONTENT> TOKEN : {
<StartTagOpen: "<"> : START_TAG
}
|
<QUOT_ATTRIBUTE_CONTENT,APOS_ATTRIBUTE_CONTENT> TOKEN : {
<AttrLTCharError: "<"> : DEFAULT
}
|
<START_TAG> TOKEN : {
<StartTagClose: ">"> : ELEMENT_CONTENT
}
|
<START_TAG> TOKEN : {
<OpenQuot: "\""> : QUOT_ATTRIBUTE_CONTENT
}
|
<QUOT_ATTRIBUTE_CONTENT> TOKEN : {
<CloseQuot: "\""> : START_TAG
}
|
<START_TAG> TOKEN : {
<OpenApos: "\'"> : APOS_ATTRIBUTE_CONTENT
}
|
<APOS_ATTRIBUTE_CONTENT> TOKEN : {
<CloseApos: "\'"> : START_TAG
}
|
<PRAGMACONTENTS> TOKEN : {
<ExtensionContentChar: <Char>>
}
|
<ELEMENT_CONTENT> TOKEN : {
<ElementContentChar: <Char>> : ELEMENT_CONTENT
}
|
<QUOT_ATTRIBUTE_CONTENT> TOKEN : {
<QuotAttrContentChar: <Char>> : QUOT_ATTRIBUTE_CONTENT
}
|
<APOS_ATTRIBUTE_CONTENT> TOKEN : {
<AposAttrContentChar: <Char>> : APOS_ATTRIBUTE_CONTENT
}
|
<XML_COMMENT> TOKEN : {
<CommentContentChar: <Char>> : XML_COMMENT
}
|
<START_TAG> TOKEN : {
<EmptyTagClose: "/>"> : {
}
|
<ELEMENT_CONTENT> TOKEN : {
<EndTagOpen: "</"> : END_TAG
}
|
<END_TAG> TOKEN : {
<EndTagClose: ">"> : {
}
|
<START_TAG> TOKEN : {
<ValueIndicator: "="> : START_TAG
}
|
<DEFAULT> TOKEN : {
<PragmaOpen: "(#"> : PRAGMA
}
|
<PRAGMACONTENTS,PRAGMACONTENTSSPACEDIVIDER> TOKEN : {
<PragmaClose: "#)"> : DEFAULT
}
|
<XML_COMMENT> TOKEN : {
<XMLCommentDoubleDashError: "-" "-"> : XML_COMMENT
}
|
<XML_COMMENT> TOKEN : {
<CommentContentCharDash: "-" <Char>> : XML_COMMENT
}
|
<DEFAULT> TOKEN : {
<ProcessingInstructionStart: "<?"> : PROCESSING_INSTRUCTION
}
|
<ELEMENT_CONTENT> TOKEN : {
<ProcessingInstructionStartForElementContent: "<?"> : PROCESSING_INSTRUCTION
}
|
<PROCESSING_INSTRUCTION,PROCESSING_INSTRUCTION_CONTENT> TOKEN : {
<ProcessingInstructionEnd: "?>"> : {
}
|
<PROCESSING_INSTRUCTION_CONTENT> TOKEN : {
<PIContentChar: ["\t","\r","\n"," "-"\ufffd"]> : PROCESSING_INSTRUCTION_CONTENT
}
|
<CDATA_SECTION> TOKEN : {
<CDataSectionChar: ["\t","\r","\n"," "-"\ufffd"]> : CDATA_SECTION
}
|
<DEFAULT> TOKEN : {
<CdataSectionStart: "<![CDATA["> : CDATA_SECTION
}
|
<ELEMENT_CONTENT> TOKEN : {
<CdataSectionStartForElementContent: "<![CDATA["> : CDATA_SECTION
}
|
<CDATA_SECTION> TOKEN : {
<CdataSectionEnd: "]" "]" ">"> : {
}
|
<DEFAULT> TOKEN : {
<XmlCommentStart: "<!--"> : XML_COMMENT
}
|
<ELEMENT_CONTENT> TOKEN : {
<XmlCommentStartForElementContent: "<!--"> : XML_COMMENT
}
|
<XML_COMMENT> TOKEN : {
<XmlCommentEnd: "-->"> : {
}
|
<DEFAULT> SPECIAL : {
<#Comment: <CommentStart> (<CommentContents>)* <CommentEnd>>
}
|
<DEFAULT,EXPR_COMMENT> SPECIAL : {
<CommentStart: "(:"> : EXPR_COMMENT
}
|
<EXPR_COMMENT> SPECIAL : {
<CommentContent: <Char>>
}
|
<EXPR_COMMENT> SPECIAL : {
<CommentEnd: ":)"> : {
}
|
<DEFAULT> TOKEN : {
<Slash: "/">
}
|
<DEFAULT> TOKEN : {
<SlashSlash: "//">
}
|
<PROCESSING_INSTRUCTION> TOKEN : {
<PITargetError: "xml" | "Xml" | "xMl" | "xmL" | "XMl" | "xML" | "xMl" | "XML" | "XmL"> : PROCESSING_INSTRUCTION
}
|
<PROCESSING_INSTRUCTION> TOKEN : {
<PITarget: <NCNameTok>> : PROCESSING_INSTRUCTION
}
|
<DEFAULT,ELEMENT_CONTENT,QUOT_ATTRIBUTE_CONTENT,APOS_ATTRIBUTE_CONTENT> TOKEN : {
<CharRef: "&#" (<Digits> | "x" <HexDigits>) ";">
}
|
<DEFAULT> TOKEN : {
<QNameToken: (<Prefix> ":")? <LocalPart>>
}
|
<PRAGMA> TOKEN : {
<QNameForPragma: <QNameToken>> : PRAGMACONTENTSSPACEDIVIDER
}
|
<START_TAG> TOKEN : {
<TagQName: <QNameToken>>
}
|
<END_TAG> TOKEN : {
<EndTagQName: <QNameToken>>
}
|
<DEFAULT> TOKEN : {
<#NCNameTok: <Nmstart> (<Nmchar>)*>
}
|
<DEFAULT> TOKEN : {
<NCNameColonStar: <NCNameTok> ":" "*">
}
|
<DEFAULT> TOKEN : {
<StarColonNCName: "*" ":" <NCNameTok>>
}
|
<DEFAULT,START_TAG,END_TAG> TOKEN : {
<S: (<WhitespaceChar>)+>
}
|
<PRAGMACONTENTSSPACEDIVIDER> TOKEN : {
<SForPragma: (<WhitespaceChar>)+> : PRAGMACONTENTS
}
|
<PROCESSING_INSTRUCTION> TOKEN : {
<SForPI: (<WhitespaceChar>)+> : PROCESSING_INSTRUCTION_CONTENT
}
|
<DEFAULT> TOKEN : {
<Char: ["\t","\r","\n"," "-"\ufffd"]>
}
|
<DEFAULT> TOKEN : {
<#Digits: (["0"-"9"])+>
}
|
<DEFAULT> SPECIAL : {
<#CommentContents: (<CommentContent>)+>
}
|
<DEFAULT> TOKEN : {
<#WhitespaceChar: ["\t","\r","\n"," "]>
}
|
<DEFAULT> TOKEN : {
<#Letter: <BaseChar> | <Ideographic>>
}
|
<DEFAULT> TOKEN : {
<#BaseChar: ["A"-"Z","a"-"z","\u00c0"-"\u00d6","\u00d8"-"\u00f6","\u00f8"-"\u00ff","\u0100"-"\u0131","\u0134"-"\u013e","\u0141"-"\u0148","\u014a"-"\u017e","\u0180"-"\u01c3","\u01cd"-"\u01f0","\u01f4"-"\u01f5","\u01fa"-"\u0217","\u0250"-"\u02a8","\u02bb"-"\u02c1","\u0386","\u0388"-"\u038a","\u038c","\u038e"-"\u03a1","\u03a3"-"\u03ce","\u03d0"-"\u03d6","\u03da","\u03dc","\u03de","\u03e0","\u03e2"-"\u03f3","\u0401"-"\u040c","\u040e"-"\u044f","\u0451"-"\u045c","\u045e"-"\u0481","\u0490"-"\u04c4","\u04c7"-"\u04c8","\u04cb"-"\u04cc","\u04d0"-"\u04eb","\u04ee"-"\u04f5","\u04f8"-"\u04f9","\u0531"-"\u0556","\u0559","\u0561"-"\u0586","\u05d0"-"\u05ea","\u05f0"-"\u05f2","\u0621"-"\u063a","\u0641"-"\u064a","\u0671"-"\u06b7","\u06ba"-"\u06be","\u06c0"-"\u06ce","\u06d0"-"\u06d3","\u06d5","\u06e5"-"\u06e6","\u0905"-"\u0939","\u093d","\u0958"-"\u0961","\u0985"-"\u098c","\u098f"-"\u0990","\u0993"-"\u09a8","\u09aa"-"\u09b0","\u09b2","\u09b6"-"\u09b9","\u09dc"-"\u09dd","\u09df"-"\u09e1","\u09f0"-"\u09f1","\u0a05"-"\u0a0a","\u0a0f"-"\u0a10","\u0a13"-"\u0a28","\u0a2a"-"\u0a30","\u0a32"-"\u0a33","\u0a35"-"\u0a36","\u0a38"-"\u0a39","\u0a59"-"\u0a5c","\u0a5e","\u0a72"-"\u0a74","\u0a85"-"\u0a8b","\u0a8d","\u0a8f"-"\u0a91","\u0a93"-"\u0aa8","\u0aaa"-"\u0ab0","\u0ab2"-"\u0ab3","\u0ab5"-"\u0ab9","\u0abd","\u0ae0","\u0b05"-"\u0b0c","\u0b0f"-"\u0b10","\u0b13"-"\u0b28","\u0b2a"-"\u0b30","\u0b32"-"\u0b33","\u0b36"-"\u0b39","\u0b3d","\u0b5c"-"\u0b5d","\u0b5f"-"\u0b61","\u0b85"-"\u0b8a","\u0b8e"-"\u0b90","\u0b92"-"\u0b95","\u0b99"-"\u0b9a","\u0b9c","\u0b9e"-"\u0b9f","\u0ba3"-"\u0ba4","\u0ba8"-"\u0baa","\u0bae"-"\u0bb5","\u0bb7"-"\u0bb9","\u0c05"-"\u0c0c","\u0c0e"-"\u0c10","\u0c12"-"\u0c28","\u0c2a"-"\u0c33","\u0c35"-"\u0c39","\u0c60"-"\u0c61","\u0c85"-"\u0c8c","\u0c8e"-"\u0c90","\u0c92"-"\u0ca8","\u0caa"-"\u0cb3","\u0cb5"-"\u0cb9","\u0cde","\u0ce0"-"\u0ce1","\u0d05"-"\u0d0c","\u0d0e"-"\u0d10","\u0d12"-"\u0d28","\u0d2a"-"\u0d39","\u0d60"-"\u0d61","\u0e01"-"\u0e2e","\u0e30","\u0e32"-"\u0e33","\u0e40"-"\u0e45","\u0e81"-"\u0e82","\u0e84","\u0e87"-"\u0e88","\u0e8a","\u0e8d","\u0e94"-"\u0e97","\u0e99"-"\u0e9f","\u0ea1"-"\u0ea3","\u0ea5","\u0ea7","\u0eaa"-"\u0eab","\u0ead"-"\u0eae","\u0eb0","\u0eb2"-"\u0eb3","\u0ebd","\u0ec0"-"\u0ec4","\u0f40"-"\u0f47","\u0f49"-"\u0f69","\u10a0"-"\u10c5","\u10d0"-"\u10f6","\u1100","\u1102"-"\u1103","\u1105"-"\u1107","\u1109","\u110b"-"\u110c","\u110e"-"\u1112","\u113c","\u113e","\u1140","\u114c","\u114e","\u1150","\u1154"-"\u1155","\u1159","\u115f"-"\u1161","\u1163","\u1165","\u1167","\u1169","\u116d"-"\u116e","\u1172"-"\u1173","\u1175","\u119e","\u11a8","\u11ab","\u11ae"-"\u11af","\u11b7"-"\u11b8","\u11ba","\u11bc"-"\u11c2","\u11eb","\u11f0","\u11f9","\u1e00"-"\u1e9b","\u1ea0"-"\u1ef9","\u1f00"-"\u1f15","\u1f18"-"\u1f1d","\u1f20"-"\u1f45","\u1f48"-"\u1f4d","\u1f50"-"\u1f57","\u1f59","\u1f5b","\u1f5d","\u1f5f"-"\u1f7d","\u1f80"-"\u1fb4","\u1fb6"-"\u1fbc","\u1fbe","\u1fc2"-"\u1fc4","\u1fc6"-"\u1fcc","\u1fd0"-"\u1fd3","\u1fd6"-"\u1fdb","\u1fe0"-"\u1fec","\u1ff2"-"\u1ff4","\u1ff6"-"\u1ffc","\u2126","\u212a"-"\u212b","\u212e","\u2180"-"\u2182","\u3041"-"\u3094","\u30a1"-"\u30fa","\u3105"-"\u312c","\uac00"-"\ud7a3"]>
}
|
<DEFAULT> TOKEN : {
<#Ideographic: ["\u4e00"-"\u9fa5","\u3007","\u3021"-"\u3029"]>
}
|
<DEFAULT> TOKEN : {
<#CombiningChar: ["\u0300"-"\u0345","\u0360"-"\u0361","\u0483"-"\u0486","\u0591"-"\u05a1","\u05a3"-"\u05b9","\u05bb"-"\u05bd","\u05bf","\u05c1"-"\u05c2","\u05c4","\u064b"-"\u0652","\u0670","\u06d6"-"\u06dc","\u06dd"-"\u06df","\u06e0"-"\u06e4","\u06e7"-"\u06e8","\u06ea"-"\u06ed","\u0901"-"\u0903","\u093c","\u093e"-"\u094c","\u094d","\u0951"-"\u0954","\u0962"-"\u0963","\u0981"-"\u0983","\u09bc","\u09be","\u09bf","\u09c0"-"\u09c4","\u09c7"-"\u09c8","\u09cb"-"\u09cd","\u09d7","\u09e2"-"\u09e3","\u0a02","\u0a3c","\u0a3e","\u0a3f","\u0a40"-"\u0a42","\u0a47"-"\u0a48","\u0a4b"-"\u0a4d","\u0a70"-"\u0a71","\u0a81"-"\u0a83","\u0abc","\u0abe"-"\u0ac5","\u0ac7"-"\u0ac9","\u0acb"-"\u0acd","\u0b01"-"\u0b03","\u0b3c","\u0b3e"-"\u0b43","\u0b47"-"\u0b48","\u0b4b"-"\u0b4d","\u0b56"-"\u0b57","\u0b82"-"\u0b83","\u0bbe"-"\u0bc2","\u0bc6"-"\u0bc8","\u0bca"-"\u0bcd","\u0bd7","\u0c01"-"\u0c03","\u0c3e"-"\u0c44","\u0c46"-"\u0c48","\u0c4a"-"\u0c4d","\u0c55"-"\u0c56","\u0c82"-"\u0c83","\u0cbe"-"\u0cc4","\u0cc6"-"\u0cc8","\u0cca"-"\u0ccd","\u0cd5"-"\u0cd6","\u0d02"-"\u0d03","\u0d3e"-"\u0d43","\u0d46"-"\u0d48","\u0d4a"-"\u0d4d","\u0d57","\u0e31","\u0e34"-"\u0e3a","\u0e47"-"\u0e4e","\u0eb1","\u0eb4"-"\u0eb9","\u0ebb"-"\u0ebc","\u0ec8"-"\u0ecd","\u0f18"-"\u0f19","\u0f35","\u0f37","\u0f39","\u0f3e","\u0f3f","\u0f71"-"\u0f84","\u0f86"-"\u0f8b","\u0f90"-"\u0f95","\u0f97","\u0f99"-"\u0fad","\u0fb1"-"\u0fb7","\u0fb9","\u20d0"-"\u20dc","\u20e1","\u302a"-"\u302f","\u3099","\u309a"]>
}
|
<DEFAULT> TOKEN : {
<#Digit: ["0"-"9","\u0660"-"\u0669","\u06f0"-"\u06f9","\u0966"-"\u096f","\u09e6"-"\u09ef","\u0a66"-"\u0a6f","\u0ae6"-"\u0aef","\u0b66"-"\u0b6f","\u0be7"-"\u0bef","\u0c66"-"\u0c6f","\u0ce6"-"\u0cef","\u0d66"-"\u0d6f","\u0e50"-"\u0e59","\u0ed0"-"\u0ed9","\u0f20"-"\u0f29"]>
}
|
<DEFAULT> TOKEN : {
<#Extender: ["\u00b7","\u02d0","\u02d1","\u0387","\u0640","\u0e46","\u0ec6","\u3005","\u3031"-"\u3035","\u309d"-"\u309e","\u30fc"-"\u30fe"]>
}
|
<DEFAULT> TOKEN : {
<NotNumber: ("." <Digits> | <Digits> ("." (["0"-"9"])*)?) (["e","E"] (["+","-"])? <Digits>)? ["a"-"z","A"-"Z"] (["0"-"9","a"-"z","A"-"Z"])*>
}
|
CUnit |
::= |
Module <EOF> |
Module |
::= |
( VersionDecl )? ( LibraryModule | MainModule ) |
VersionDecl |
::= |
"xquery" "version" <StringLiteral> ( "encoding" <StringLiteral> )? Separator |
MainModule |
::= |
Prolog QueryBody |
LibraryModule |
::= |
ModuleDecl Prolog |
ModuleDecl |
::= |
"module" "namespace" NCName "=" URILiteral Separator |
Prolog |
::= |
( ( DefaultNamespaceDecl | Setter | NamespaceDecl | Import ) Separator )* ( ( VarDecl | FunctionDecl | OptionDecl | FTOptionDecl ) Separator )* |
Setter |
::= |
( BoundarySpaceDecl | DefaultCollationDecl | BaseURIDecl | ConstructionDecl | OrderingModeDecl | EmptyOrderDecl | CopyNamespacesDecl ) |
Import |
::= |
( SchemaImport | ModuleImport ) |
Separator |
::= |
";" |
NamespaceDecl |
::= |
"declare" "namespace" NCName "=" URILiteral |
BoundarySpaceDecl |
::= |
"declare" "boundary-space" ( "preserve" | "strip" ) |
DefaultNamespaceDecl |
::= |
"declare" "default" ( "element" | "function" ) "namespace" URILiteral |
OptionDecl |
::= |
"declare" "option" QName <StringLiteral> |
FTOptionDecl |
::= |
"declare" "ft-option" FTMatchOptions |
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" |
DefaultCollationDecl |
::= |
"declare" "default" "collation" URILiteral |
BaseURIDecl |
::= |
"declare" "base-uri" URILiteral |
SchemaImport |
::= |
"import" "schema" ( SchemaPrefix )? URILiteral ( "at" URILiteral ( "," URILiteral )* )? |
SchemaPrefix |
::= |
( ( "namespace" NCName "=" ) | ( "default" "element" "namespace" ) ) |
ModuleImport |
::= |
"import" "module" ( "namespace" NCName "=" )? URILiteral ( "at" URILiteral ( "," URILiteral )* )? |
VarDecl |
::= |
"declare" "variable" "$" QName ( TypeDeclaration )? ( ( ":=" ExprSingle ) | <External> ) |
ConstructionDecl |
::= |
"declare" "construction" ( "strip" | "preserve" ) |
FunctionDecl |
::= |
"declare" "function" QName "(" ( ParamList )? ")" ( "as" SequenceType )? ( EnclosedExpr | <External> ) |
ParamList |
::= |
Param ( "," Param )* |
Param |
::= |
"$" QName ( TypeDeclaration )? |
EnclosedExpr |
::= |
( <Lbrace> | <LbraceExprEnclosure> ) Expr <Rbrace> |
QueryBody |
::= |
Expr |
Expr |
::= |
ExprSingle ( "," ExprSingle )* |
ExprSingle |
::= |
( FLWORExpr | QuantifiedExpr | TypeswitchExpr | IfExpr | OrExpr ) |
FLWORExpr |
::= |
( ( ForClause | LetClause ) )+ ( WhereClause )? ( OrderByClause )? "return" ExprSingle |
ForClause |
::= |
"for" "$" VarName ( TypeDeclaration )? ( PositionalVar )? ( FTScoreVar )? "in" ExprSingle ( "," "$" VarName ( TypeDeclaration )? ( PositionalVar )? ( FTScoreVar )? "in" ExprSingle )* |
PositionalVar |
::= |
"at" "$" VarName |
FTScoreVar |
::= |
"score" "$" VarName |
LetClause |
::= |
( ( "let" "$" VarName ( TypeDeclaration )? ) | ( "let" "score" "$" VarName ) ) ":=" ExprSingle ( "," ( ( "$" VarName ( TypeDeclaration )? ) | FTScoreVar ) ":=" ExprSingle )* |
WhereClause |
::= |
"where" ExprSingle |
OrderByClause |
::= |
( ( "order" "by" ) | ( "stable" "order" "by" ) ) OrderSpecList |
OrderSpecList |
::= |
OrderSpec ( "," OrderSpec )* |
OrderSpec |
::= |
ExprSingle OrderModifier |
OrderModifier |
::= |
( ( <Ascending> | <Descending> ) )? ( "empty" ( <Greatest> | <Least> ) )? ( "collation" URILiteral )? |
QuantifiedExpr |
::= |
( "some" | "every" ) "$" VarName ( TypeDeclaration )? "in" ExprSingle ( "," "$" VarName ( TypeDeclaration )? "in" ExprSingle )* "satisfies" ExprSingle |
TypeswitchExpr |
::= |
"typeswitch" "(" Expr ")" ( CaseClause )+ "default" ( "$" VarName )? "return" ExprSingle |
CaseClause |
::= |
"case" ( "$" VarName "as" )? SequenceType "return" ExprSingle |
IfExpr |
::= |
"if" "(" Expr ")" "then" ExprSingle "else" ExprSingle |
OrExpr |
::= |
AndExpr ( "or" AndExpr )* |
AndExpr |
::= |
ComparisonExpr ( "and" ComparisonExpr )* |
ComparisonExpr |
::= |
FTContainsExpr ( ( ValueComp | GeneralComp | NodeComp ) FTContainsExpr )? |
// TODO - Not yet implemented.
|
FTContainsExpr |
::= |
RangeExpr ( "ftcontains" FTSelection ( FTIgnoreOption )? )? |
RangeExpr |
::= |
AdditiveExpr ( "to" AdditiveExpr )? |
AdditiveExpr |
::= |
MultiplicativeExpr ( ( <Plus> | <Minus> ) 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" SingleType )? |
CastExpr |
::= |
UnaryExpr ( "cast" "as" SingleType )? |
UnaryExpr |
::= |
( <Minus> | <Plus> )* ValueExpr |
ValueExpr |
::= |
( ValidateExpr | PathExpr | ExtensionExpr ) |
GeneralComp |
::= |
( "=" | "!=" | <LessThanOpOrTagO> | "<=" | ">" | ">=" ) |
ValueComp |
::= |
( "eq" | "ne" | "lt" | "le" | "gt" | "ge" ) |
NodeComp |
::= |
( "is" | "<<" | ">>" ) |
ValidateExpr |
::= |
"validate" ( ValidationMode )? <LbraceExprEnclosure> Expr <Rbrace> |
ValidationMode |
::= |
( "lax" | "strict" ) |
ExtensionExpr |
::= |
( Pragma )+ <LbraceExprEnclosure> ( Expr )? <Rbrace> |
Pragma |
::= |
<PragmaOpen> ( <S> )? <QNameForPragma> ( <SForPragma> PragmaContents )? <PragmaClose> |
PragmaContents |
::= |
( <ExtensionContentChar> )* |
PathExpr |
::= |
( <Slash> ( RelativePathExpr )? | <SlashSlash> RelativePathExpr | RelativePathExpr ) |
RelativePathExpr |
::= |
StepExpr ( ( <Slash> | <SlashSlash> ) StepExpr )* |
StepExpr |
::= |
FilterExpr |
|
| |
AxisStep |
AxisStep |
::= |
( ReverseStep | ForwardStep ) PredicateList |
ForwardStep |
::= |
ForwardAxis NodeTest |
|
| |
AbbrevForwardStep |
ForwardAxis |
::= |
( "child" "::" | "descendant" "::" | "attribute" "::" | "self" "::" | "descendant-or-self" "::" | "following-sibling" "::" | "following" "::" ) |
AbbrevForwardStep |
::= |
( "@" )? NodeTest |
ReverseStep |
::= |
ReverseAxis NodeTest |
|
| |
AbbrevReverseStep |
ReverseAxis |
::= |
( "parent" "::" | "ancestor" "::" | "preceding-sibling" "::" | "preceding" "::" | "ancestor-or-self" "::" ) |
AbbrevReverseStep |
::= |
".." |
NodeTest |
::= |
( KindTest | NameTest ) |
NameTest |
::= |
( QName | Wildcard ) |
Wildcard |
::= |
( "*" | <NCNameColonStar> | <StarColonNCName> ) |
FilterExpr |
::= |
PrimaryExpr PredicateList |
PredicateList |
::= |
( Predicate )* |
Predicate |
::= |
"[" Expr "]" |
PrimaryExpr |
::= |
( Literal | VarRef | ParenthesizedExpr | ContextItemExpr | FunctionCall | OrderedExpr | UnorderedExpr | Constructor ) |
Literal |
::= |
NumericLiteral |
|
| |
<StringLiteral> |
NumericLiteral |
::= |
( <IntegerLiteral> | <DecimalLiteral> | <DoubleLiteral> ) |
VarRef |
::= |
"$" VarName |
VarName |
::= |
QName |
ParenthesizedExpr |
::= |
"(" ( Expr )? ")" |
ContextItemExpr |
::= |
"." |
OrderedExpr |
::= |
"ordered" <LbraceExprEnclosure> Expr <Rbrace> |
UnorderedExpr |
::= |
"unordered" <LbraceExprEnclosure> Expr <Rbrace> |
FunctionCall |
::= |
FunctionQName "(" ( ExprSingle ( "," ExprSingle )* )? ")" |
Constructor |
::= |
( DirectConstructor | ComputedConstructor ) |
DirectConstructor |
::= |
( DirElemConstructor | DirCommentConstructor | DirPIConstructor ) |
DirElemConstructor |
::= |
( <LessThanOpOrTagO> | <StartTagOpen> ) <TagQName> DirAttributeList ( <EmptyTagClose> | ( <StartTagClose> ( ( EnclosedExpr | DirectConstructor | CDataSection ) | <PredefinedEntityRef> | <CharRef> | <LCurlyBraceEscape> | <RCurlyBraceEscape> | <ElementContentChar> )* <EndTagOpen> <EndTagQName> ( <S> )? <EndTagClose> ) ) |
DirAttributeList |
::= |
( <S> ( <TagQName> ( <S> )? <ValueIndicator> ( <S> )? DirAttributeValue )? )* |
DirAttributeValue |
::= |
( ( <OpenQuot> ( <EscapeQuot> | <QuotAttrContentChar> | EnclosedExpr | <PredefinedEntityRef> | <CharRef> | <LCurlyBraceEscape> | <RCurlyBraceEscape> )* <CloseQuot> ) | ( <OpenApos> ( <EscapeApos> | <AposAttrContentChar> | EnclosedExpr | <PredefinedEntityRef> | <CharRef> | <LCurlyBraceEscape> | <RCurlyBraceEscape> )* <CloseApos> ) ) |
DirCommentConstructor |
::= |
( <XmlCommentStartForElementContent> | <XmlCommentStart> ) DirCommentContents <XmlCommentEnd> |
DirCommentContents |
::= |
( ( <CommentContentChar> | <CommentContentCharDash> ) )* |
DirPIConstructor |
::= |
( <ProcessingInstructionStartForElementContent> | <ProcessingInstructionStart> ) <PITarget> ( <SForPI> DirPIContents )? <ProcessingInstructionEnd> |
DirPIContents |
::= |
( <PIContentChar> )* |
CDataSection |
::= |
( <CdataSectionStartForElementContent> | <CdataSectionStart> ) CDataSectionContents <CdataSectionEnd> |
CDataSectionContents |
::= |
( <CDataSectionChar> )* |
ComputedConstructor |
::= |
( CompDocConstructor | CompElemConstructor | CompAttrConstructor | CompTextConstructor | CompCommentConstructor | CompPIConstructor ) |
CompDocConstructor |
::= |
"document" <LbraceExprEnclosure> Expr <Rbrace> |
CompElemConstructor |
::= |
"element" ( QName | ( <LbraceExprEnclosure> Expr <Rbrace> ) ) <LbraceExprEnclosure> ( ContentExpr )? <Rbrace> |
ContentExpr |
::= |
Expr |
CompAttrConstructor |
::= |
"attribute" ( QName | ( <LbraceExprEnclosure> Expr <Rbrace> ) ) <LbraceExprEnclosure> ( Expr )? <Rbrace> |
CompTextConstructor |
::= |
"text" <LbraceExprEnclosure> Expr <Rbrace> |
CompCommentConstructor |
::= |
"comment" <LbraceExprEnclosure> Expr <Rbrace> |
CompPIConstructor |
::= |
"processing-instruction" ( NCName | ( <LbraceExprEnclosure> Expr <Rbrace> ) ) <LbraceExprEnclosure> ( Expr )? <Rbrace> |
SingleType |
::= |
AtomicType ( "?" )? |
TypeDeclaration |
::= |
"as" SequenceType |
SequenceType |
::= |
( ( "empty-sequence" "(" ")" ) | ( ItemType ( OccurrenceIndicator )? ) ) |
OccurrenceIndicator |
::= |
( "?" | "*" | <Plus> ) |
ItemType |
::= |
( KindTest | ( "item" "(" ")" ) | AtomicType ) |
AtomicType |
::= |
QName |
KindTest |
::= |
( DocumentTest | ElementTest | AttributeTest | SchemaElementTest | SchemaAttributeTest | PITest | CommentTest | TextTest | AnyKindTest ) |
AnyKindTest |
::= |
"node" "(" ")" |
DocumentTest |
::= |
"document-node" "(" ( ( ElementTest | SchemaElementTest ) )? ")" |
TextTest |
::= |
"text" "(" ")" |
CommentTest |
::= |
"comment" "(" ")" |
PITest |
::= |
"processing-instruction" "(" ( ( NCName | <StringLiteral> ) )? ")" |
AttributeTest |
::= |
"attribute" "(" ( ( AttribNameOrWildcard ( "," TypeName )? ) )? ")" |
AttribNameOrWildcard |
::= |
( AttributeName | "*" ) |
SchemaAttributeTest |
::= |
"schema-attribute" "(" AttributeDeclaration ")" |
AttributeDeclaration |
::= |
AttributeName |
ElementTest |
::= |
"element" "(" ( ( ElementNameOrWildcard ( "," TypeName ( "?" )? )? ) )? ")" |
ElementNameOrWildcard |
::= |
( ElementName | "*" ) |
SchemaElementTest |
::= |
"schema-element" "(" ElementDeclaration ")" |
ElementDeclaration |
::= |
ElementName |
AttributeName |
::= |
QName |
ElementName |
::= |
QName |
TypeName |
::= |
QName |
URILiteral |
::= |
<StringLiteral> |
FTSelection |
::= |
FTOr ( FTPosFilter )* ( "weight" RangeExpr )? |
FTOrExpr |
::= |
FTOr |
FTOr |
::= |
FTAnd ( "ftor" FTAnd )* |
FTAnd |
::= |
FTMildNot ( "ftand" FTMildNot )* |
FTMildNot |
::= |
FTUnaryNot ( ( "not" "in" ) FTUnaryNot )* |
FTUnaryNot |
::= |
( "ftnot" )? FTPrimaryWithOptions |
FTPrimaryWithOptions |
::= |
( FTPrimary ( FTMatchOptions )? ) |
FTPrimary |
::= |
( ( FTWords ( FTTimes )? ) | ( "(" FTSelection ")" ) | FTExtensionSelection ) |
FTWords |
::= |
FTWordsValue ( FTAnyallOption )? |
FTWordsValue |
::= |
( Literal | ( <LbraceExprEnclosure> Expr <Rbrace> ) ) |
FTExtensionSelection |
::= |
( Pragma )+ <LbraceExprEnclosure> ( FTSelection )? <Rbrace> |
FTAnyallOption |
::= |
( ( "any" ( "word" )? ) | ( "all" ( "words" )? ) | "phrase" ) |
FTTimes |
::= |
"occurs" FTRange "times" |
FTRange |
::= |
( ( "exactly" AdditiveExpr ) | ( "at" <Least> AdditiveExpr ) | ( "at" "most" AdditiveExpr ) | ( "from" AdditiveExpr "to" AdditiveExpr ) ) |
FTPosFilter |
::= |
( FTOrder | FTWindow | FTDistance | FTScope | FTContent ) |
FTOrder |
::= |
"ordered" |
FTWindow |
::= |
"window" AdditiveExpr FTUnit |
FTDistance |
::= |
"distance" FTRange FTUnit |
FTUnit |
::= |
( "words" | "sentences" | "paragraphs" ) |
FTScope |
::= |
( "same" | "different" ) FTBigUnit |
FTBigUnit |
::= |
( "sentence" | "paragraph" ) |
FTContent |
::= |
( ( "at" "start" ) | ( "at" "end" ) | ( "entire" "content" ) ) |
FTMatchOptions |
::= |
( FTMatchOption )+ |
FTMatchOption |
::= |
FTLanguageOption |
|
| |
FTWildCardOption |
|
| |
FTThesaurusOption |
|
| |
FTStemOption |
|
| |
FTCaseOption |
|
| |
FTDiacriticsOption |
|
| |
FTStopwordOption |
|
| |
FTExtensionOption |
FTCaseOption |
::= |
( ( "case" "insensitive" ) | ( "case" "sensitive" ) | "lowercase" | "uppercase" ) |
FTDiacriticsOption |
::= |
( ( "diacritics" "insensitive" ) | ( "diacritics" "sensitive" ) ) |
FTStemOption |
::= |
( ( "with" "stemming" ) | ( "without" "stemming" ) ) |
FTThesaurusOption |
::= |
( ( "with" "thesaurus" ( FTThesaurusID | "default" ) ) | ( "with" "thesaurus" "(" ( FTThesaurusID | "default" ) ( "," FTThesaurusID )* ")" ) | ( "without" "thesaurus" ) ) |
FTThesaurusID |
::= |
"at" URILiteral ( "relationship" <StringLiteral> )? ( FTRange "levels" )? |
FTStopwordOption |
::= |
( ( "with" "stop" "words" FTRefOrList ( FTInclExclStringLiteral )* ) | ( "without" "stop" "words" ) | ( "with" "default" "stop" "words" ( FTInclExclStringLiteral )* ) ) |
FTRefOrList |
::= |
( ( "at" URILiteral ) | ( "(" <StringLiteral> ( "," <StringLiteral> )* ")" ) ) |
FTInclExclStringLiteral |
::= |
( "union" | "except" ) FTRefOrList |
FTLanguageOption |
::= |
"language" <StringLiteral> |
FTWildCardOption |
::= |
( ( "with" "wildcards" ) | ( "without" "wildcards" ) ) |
FTExtensionOption |
::= |
"option" QName <StringLiteral> |
FTIgnoreOption |
::= |
"without" "content" UnionExpr |
NCName |
::= |
QName |
QName |
::= |
FunctionQName |
|
| |
"attribute" |
|
| |
"comment" |
|
| |
"document-node" |
|
| |
"element" |
|
| |
"if" |
|
| |
"item" |
|
| |
"node" |
|
| |
"processing-instruction" |
|
| |
"schema-attribute" |
|
| |
"schema-element" |
|
| |
"text" |
|
| |
"typeswitch" |
|
| |
"empty-sequence" |
FunctionQName |
::= |
<QNameToken> |
|
| |
<External> |
|
| |
"xquery" |
|
| |
"version" |
|
| |
"encoding" |
|
| |
"module" |
|
| |
"namespace" |
|
| |
"declare" |
|
| |
"boundary-space" |
|
| |
"preserve" |
|
| |
"strip" |
|
| |
"default" |
|
| |
"function" |
|
| |
"option" |
|
| |
"ft-option" |
|
| |
"ordering" |
|
| |
"ordered" |
|
| |
"unordered" |
|
| |
"order" |
|
| |
"empty" |
|
| |
<Greatest> |
|
| |
<Least> |
|
| |
"copy-namespaces" |
|
| |
"no-preserve" |
|
| |
"inherit" |
|
| |
"no-inherit" |
|
| |
"collation" |
|
| |
"base-uri" |
|
| |
"import" |
|
| |
"schema" |
|
| |
"at" |
|
| |
"variable" |
|
| |
"construction" |
|
| |
"as" |
|
| |
"lax" |
|
| |
"strict" |
|
| |
"return" |
|
| |
"for" |
|
| |
"in" |
|
| |
"score" |
|
| |
"let" |
|
| |
"where" |
|
| |
"by" |
|
| |
"stable" |
|
| |
<Ascending> |
|
| |
<Descending> |
|
| |
"some" |
|
| |
"every" |
|
| |
"satisfies" |
|
| |
"case" |
|
| |
"then" |
|
| |
"else" |
|
| |
"or" |
|
| |
"and" |
|
| |
"ftcontains" |
|
| |
"to" |
|
| |
"div" |
|
| |
"idiv" |
|
| |
"mod" |
|
| |
"union" |
|
| |
"intersect" |
|
| |
"except" |
|
| |
"instance" |
|
| |
"of" |
|
| |
"treat" |
|
| |
"castable" |
|
| |
"cast" |
|
| |
"eq" |
|
| |
"ne" |
|
| |
"lt" |
|
| |
"le" |
|
| |
"gt" |
|
| |
"ge" |
|
| |
"is" |
|
| |
"validate" |
|
| |
"child" |
|
| |
"descendant" |
|
| |
"self" |
|
| |
"descendant-or-self" |
|
| |
"following-sibling" |
|
| |
"following" |
|
| |
"parent" |
|
| |
"ancestor" |
|
| |
"preceding-sibling" |
|
| |
"preceding" |
|
| |
"ancestor-or-self" |
|
| |
"document" |
|
| |
"weight" |
|
| |
"not" |
|
| |
"lowercase" |
|
| |
"uppercase" |
|
| |
"sensitive" |
|
| |
"insensitive" |
|
| |
"with" |
|
| |
"diacritics" |
|
| |
"without" |
|
| |
"stemming" |
|
| |
"thesaurus" |
|
| |
"relationship" |
|
| |
"levels" |
|
| |
"stop" |
|
| |
"words" |
|
| |
"language" |
|
| |
"wildcards" |
|
| |
"start" |
|
| |
"end" |
|
| |
"entire" |
|
| |
"content" |
|
| |
"any" |
|
| |
"all" |
|
| |
"phrase" |
|
| |
"word" |
|
| |
"exactly" |
|
| |
"most" |
|
| |
"from" |
|
| |
"distance" |
|
| |
"window" |
|
| |
"occurs" |
|
| |
"times" |
|
| |
"same" |
|
| |
"different" |
|
| |
"sentences" |
|
| |
"paragraphs" |
|
| |
"sentence" |
|
| |
"paragraph" |
|
| |
"type" |