XPath | ::= | (DefaultElementNamespaceDecl ";") (NamespaceDecl ";") Expr |
AbbreviatedStep | ::= | (".." | ("@" NodeTest) | SimpleNodeTest) |
AbsolutePathExpr | ::= | (("/" RelativePathExpr) | ("//" RelativePathExpr)) |
AdditiveExpr | ::= | MultiplicativeExpr (("+" | "-") MultiplicativeExpr) |
AndExpr | ::= | ComparisonExpr ("and" ComparisonExpr) |
AnyArrayType | ::= | "array" "(" "*" ")" |
AnyFunctionType | ::= | ("function" | "fn") "(" "*" ")" |
AnyItemTest | ::= | "item" "(" ")" |
AnyMapType | ::= | "map" "(" "*" ")" |
AnyNodeKindTest | ::= | "node" "(" ")" |
AposStringLiteral | ::= | ("'" (EscapeApos | [']) "'") |
Argument | ::= | (ExprSingle | ArgumentPlaceholder) |
ArgumentList | ::= | "(" ((PositionalArguments ("," KeywordArguments)) | KeywordArguments) ")" |
ArgumentPlaceholder | ::= | "?" |
ArrayConstructor | ::= | (SquareArrayConstructor | CurlyArrayConstructor) |
ArrayType | ::= | (AnyArrayType | TypedArrayType) |
ArrowExpr | ::= | UnaryExpr (SequenceArrowTarget | MappingArrowTarget) |
ArrowTarget | ::= | (FunctionCall | RestrictedDynamicCall) |
AttributeName | ::= | EQName |
AttributeTest | ::= | "attribute" "(" (NameTestUnion ("," TypeName)) ")" |
Axis | ::= | ("ancestor" | "ancestor-or-self" | "attribute" | "child" | "descendant" | "descendant-or-self" | "following" | "following-or-self" | "following-sibling" | "following-sibling-or-self" | "namespace" | "parent" | "preceding" | "preceding-or-self" | "preceding-sibling" | "preceding-sibling-or-self" | "self") "::" |
AxisStep | ::= | (AbbreviatedStep | FullStep) Predicate |
BaseChar | ::= | [AA–ZZ aa–zz ÀÀ–ÖÖ ØØ–öö øø–ÿÿ ĀĀ–ıı ĴĴ–ľľ ŁŁ–ňň ŊŊ–žž ƀƀ–ǃǃ ǍǍ–ǰǰ ǴǴ–ǵǵ ǺǺ–ȗȗ ɐɐ–ʨʨ ʻʻ–ˁˁ ΆΆ ΈΈ–ΊΊ ΌΌ ΎΎ–ΡΡ ΣΣ–ώώ ϐϐ–ϖϖ ϚϚ ϜϜ ϞϞ ϠϠ ϢϢ–ϳϳ ЁЁ–ЌЌ ЎЎ–яя ёё–ќќ ўў–ҁҁ ҐҐ–ӄӄ ӇӇ–ӈӈ ӋӋ–ӌӌ ӐӐ–ӫӫ ӮӮ–ӵӵ ӸӸ–ӹӹ ԱԱ–ՖՖ ՙՙ աա–ֆֆ אא–תת װװ–ײײ ءء–غغ فف–يي ٱٱ–ڷڷ ںں–ھھ ۀۀ–ێێ ېې–ۓۓ ەە ۥۥ–ۦۦ अअ–हह ऽऽ क़क़–ॡॡ অঅ–ঌঌ এএ–ঐঐ ওও–নন পপ–রর লল শশ–হহ ড়ড়–ঢ়ঢ় য়য়–ৡৡ ৰৰ–ৱৱ ਅਅ–ਊਊ ਏਏ–ਐਐ ਓਓ–ਨਨ ਪਪ–ਰਰ ਲਲ–ਲ਼ਲ਼ ਵਵ–ਸ਼ਸ਼ ਸਸ–ਹਹ ਖ਼ਖ਼–ੜੜ ਫ਼ਫ਼ ੲੲ–ੴੴ અઅ–ઋઋ ઍઍ એએ–ઑઑ ઓઓ–નન પપ–રર લલ–ળળ વવ–હહ ઽઽ ૠૠ ଅଅ–ଌଌ ଏଏ–ଐଐ ଓଓ–ନନ ପପ–ରର ଲଲ–ଳଳ ଶଶ–ହହ ଽଽ ଡ଼ଡ଼–ଢ଼ଢ଼ ୟୟ–ୡୡ அஅ–ஊஊ எஎ–ஐஐ ஒஒ–கக ஙங–சச ஜஜ ஞஞ–டட ணண–தத நந–பப மம–வவ ஷஷ–ஹஹ అఅ–ఌఌ ఎఎ–ఐఐ ఒఒ–నన పప–ళళ వవ–హహ ౠౠ–ౡౡ ಅಅ–ಌಌ ಎಎ–ಐಐ ಒಒ–ನನ ಪಪ–ಳಳ ವವ–ಹಹ ೞೞ ೠೠ–ೡೡ അഅ–ഌഌ എഎ–ഐഐ ഒഒ–നന പപ–ഹഹ ൠൠ–ൡൡ กก–ฮฮ ะะ าา–ำำ เเ–ๅๅ ກກ–ຂຂ ຄຄ ງງ–ຈຈ ຊຊ ຍຍ ດດ–ທທ ນນ–ຟຟ ມມ–ຣຣ ລລ ວວ ສສ–ຫຫ ອອ–ຮຮ ະະ າາ–ຳຳ ຽຽ ເເ–ໄໄ ཀཀ–ཇཇ ཉཉ–ཀྵཀྵ ႠႠ–ჅჅ აა–ჶჶ ᄀᄀ ᄂᄂ–ᄃᄃ ᄅᄅ–ᄇᄇ ᄉᄉ ᄋᄋ–ᄌᄌ ᄎᄎ–ᄒᄒ ᄼᄼ ᄾᄾ ᅀᅀ ᅌᅌ ᅎᅎ ᅐᅐ ᅔᅔ–ᅕᅕ ᅙᅙ ᅟᅟ–ᅡᅡ ᅣᅣ ᅥᅥ ᅧᅧ ᅩᅩ ᅭᅭ–ᅮᅮ ᅲᅲ–ᅳᅳ ᅵᅵ ᆞᆞ ᆨᆨ ᆫᆫ ᆮᆮ–ᆯᆯ ᆷᆷ–ᆸᆸ ᆺᆺ ᆼᆼ–ᇂᇂ ᇫᇫ ᇰᇰ ᇹᇹ ḀḀ–ẛẛ ẠẠ–ỹỹ ἀἀ–ἕἕ ἘἘ–ἝἝ ἠἠ–ὅὅ ὈὈ–ὍὍ ὐὐ–ὗὗ ὙὙ ὛὛ ὝὝ ὟὟ–ώώ ᾀᾀ–ᾴᾴ ᾶᾶ–ᾼᾼ ιι ῂῂ–ῄῄ ῆῆ–ῌῌ ῐῐ–ΐΐ ῖῖ–ΊΊ ῠῠ–ῬῬ ῲῲ–ῴῴ ῶῶ–ῼῼ ΩΩ KK–ÅÅ ℮℮ ↀↀ–ↂↂ ぁぁ–ゔゔ ァァ–ヺヺ ㄅㄅ–ㄬㄬ 가가–힣힣 ] |
BinaryDigit | ::= | [01] |
BinaryDigits | ::= | (BinaryDigit ((BinaryDigit | "_") BinaryDigit)) |
BinaryIntegerLiteral | ::= | ("0b" BinaryDigits) |
BracedAction | ::= | EnclosedExpr |
BracedURILiteral | ::= | "Q" "{" ([{}]) "}" |
CastableExpr | ::= | CastExpr ("castable" "as" CastTarget "?") |
CastExpr | ::= | PipelineExpr ("cast" "as" CastTarget "?") |
CastTarget | ::= | (TypeName | ChoiceItemType | EnumerationType) |
Char | ::= | [	 


  –� ] |
ChoiceItemType | ::= | "(" ItemType ")" |
CombiningChar | ::= | [̀–ͅ ͠–͡ ҃–҆ ֑–֡ ֣–ֹ ֻ–ֽ ֿ ׁ–ׂ ׄ ً–ْ ٰ ۖ–ۜ ۝–۟ ۠–ۤ ۧ–ۨ ۪–ۭ ँ–ः ़ ा–ौ ् ॑–॔ ॢ–ॣ ঁ–ঃ ় া ি ী–ৄ ে–ৈ ো–্ ৗ ৢ–ৣ ਂ ਼ ਾ ਿ ੀ–ੂ ੇ–ੈ ੋ–੍ ੰ–ੱ ઁ–ઃ ઼ ા–ૅ ે–ૉ ો–્ ଁ–ଃ ଼ ା–ୃ େ–ୈ ୋ–୍ ୖ–ୗ ஂ–ஃ ா–ூ ெ–ை ொ–் ௗ ఁ–ః ా–ౄ ె–ై ొ–్ ౕ–ౖ ಂ–ಃ ಾ–ೄ ೆ–ೈ ೊ–್ ೕ–ೖ ം–ഃ ാ–ൃ െ–ൈ ൊ–് ൗ ั ิ–ฺ ็–๎ ັ ິ–ູ ົ–ຼ ່–ໍ ༘–༙ ༵ ༷ ༹ ༾ ༿ ཱ–྄ ྆–ྋ ྐ–ྕ ྗ ྙ–ྭ ྱ–ྷ ྐྵ ⃐–⃜ ⃡ 〪–〯 ゙ ゚ ] |
| ::= | CommentStart (CommentContents | Comment) CommentEnd |
| ::= | Char |
| ::= | CommentContent |
| ::= | ":)" |
| ::= | "(:" |
| ::= | "comment" "(" ")" |
ComparisonExpr | ::= | OtherwiseExpr ((ValueComp | GeneralComp | NodeComp) OtherwiseExpr) |
Constant | ::= | (StringLiteral | ("-" NumericLiteral) | QNameLiteral | ("true" "(" ")") | ("false" "(" ")")) |
ContextValueRef | ::= | "." |
CurlyArrayConstructor | ::= | "array" EnclosedExpr |
DecDigit | ::= | [0–9] |
DecimalLiteral | ::= | (("." Digits) | (Digits "." Digits)) |
DefaultElementNamespaceDecl | ::= | "declare" "default" "element" "namespace" URILiteral |
Digit | ::= | [00–99 ٠٠–٩٩ ۰۰–۹۹ ००–९९ ০০–৯৯ ੦੦–੯੯ ૦૦–૯૯ ୦୦–୯୯ ௧௧–௯௯ ౦౦–౯౯ ೦೦–೯೯ ൦൦–൯൯ ๐๐–๙๙ ໐໐–໙໙ ༠༠–༩༩ ] |
Digits | ::= | (DecDigit ((DecDigit | "_") DecDigit)) |
DocumentTest | ::= | "document-node" "(" (ElementTest | SchemaElementTest | NameTestUnion) ")" |
DoubleLiteral | ::= | (("." Digits) | (Digits ("." Digits))) [eE] [+-] Digits |
DynamicFunctionCall | ::= | PostfixExpr PositionalArgumentList |
ElementName | ::= | EQName |
ElementTest | ::= | "element" "(" (NameTestUnion ("," TypeName "?")) ")" |
EnclosedExpr | ::= | "{" Expr "}" |
EnumerationType | ::= | "enum" "(" StringLiteral ")" |
EQName | ::= | (QName | URIQualifiedName) |
EscapeApos | ::= | "''" |
EscapeQuot | ::= | """" |
Expr | ::= | ExprSingle |
ExprSingle | ::= | (ForExpr | LetExpr | QuantifiedExpr | IfExpr | OrExpr) |
Extender | ::= | [·· ːː ˑˑ ·· ــ ๆๆ ໆໆ 々々 〱〱–〵〵 ゝゝ–ゞゞ ーー–ヾヾ ] |
FieldDeclaration | ::= | FieldName "?" ("as" SequenceType) |
FieldName | ::= | (NCName | StringLiteral) |
FilterExpr | ::= | PostfixExpr Predicate |
FilterExprAM | ::= | PostfixExpr "?[" Expr "]" |
ForBinding | ::= | (ForItemBinding | ForMemberBinding | ForEntryBinding) |
ForClause | ::= | "for" ForBinding |
ForEntryBinding | ::= | ((ForEntryKeyBinding ForEntryValueBinding) | ForEntryValueBinding) PositionalVar "in" ExprSingle |
ForEntryKeyBinding | ::= | "key" VarNameAndType |
ForEntryValueBinding | ::= | "value" VarNameAndType |
ForExpr | ::= | ForClause ForLetReturn |
ForItemBinding | ::= | VarNameAndType PositionalVar "in" ExprSingle |
ForLetReturn | ::= | (ForExpr | LetExpr | ("return" ExprSingle)) |
ForMemberBinding | ::= | "member" VarNameAndType PositionalVar "in" ExprSingle |
FullStep | ::= | Axis NodeTest |
FunctionBody | ::= | EnclosedExpr |
FunctionCall | ::= | EQName ArgumentList |
FunctionItemExpr | ::= | (NamedFunctionRef | InlineFunctionExpr) |
FunctionSignature | ::= | "(" ParamList ")" TypeDeclaration |
FunctionType | ::= | (AnyFunctionType | TypedFunctionType) |
GeneralComp | ::= | ("=" | "!=" | "<" | "<=" | ">" | ">=") |
GNodeType | ::= | "gnode" "(" ")" |
HexDigit | ::= | [0–9a–fA–F] |
HexDigits | ::= | (HexDigit ((HexDigit | "_") HexDigit)) |
HexIntegerLiteral | ::= | ("0x" HexDigits) |
Ideographic | ::= | [一一–龥龥 〇〇 〡〡–〩〩 ] |
IfExpr | ::= | "if" "(" Expr ")" (UnbracedActions | BracedAction) |
ImplicitlyAllowedWhitespace | ::= | WhitespaceChar |
InlineFunctionExpr | ::= | ("function" | "fn") FunctionSignature FunctionBody |
InstanceofExpr | ::= | TreatExpr ("instance" "of" SequenceType) |
IntegerLiteral | ::= | Digits |
IntersectExceptExpr | ::= | InstanceofExpr (("intersect" | "except") InstanceofExpr) |
ItemType | ::= | (RegularItemType | FunctionType | TypeName | ChoiceItemType) |
JNodeType | ::= | "jnode" "(" (("*" | NCName | Constant) ("," ("*" | SequenceType))) ")" |
KeySpecifier | ::= | (NCName | Literal | ContextValueRef | VarRef | ParenthesizedExpr | LookupWildcard) |
KeywordArgument | ::= | EQName ":=" Argument |
KeywordArguments | ::= | KeywordArgument |
LetArrayBinding | ::= | "$" "[" VarNameAndType "]" TypeDeclaration ":=" ExprSingle |
LetBinding | ::= | (LetValueBinding | LetSequenceBinding | LetArrayBinding | LetMapBinding) |
LetClause | ::= | "let" LetBinding |
LetExpr | ::= | LetClause ForLetReturn |
LetMapBinding | ::= | "$" "{" VarNameAndType "}" TypeDeclaration ":=" ExprSingle |
LetSequenceBinding | ::= | "$" "(" VarNameAndType ")" TypeDeclaration ":=" ExprSingle |
Letter | ::= | (BaseChar | Ideographic) |
LetValueBinding | ::= | VarNameAndType ":=" ExprSingle |
Literal | ::= | (NumericLiteral | StringLiteral | QNameLiteral) |
LocalPart | ::= | NCNameToken |
Lookup | ::= | "?" KeySpecifier |
LookupExpr | ::= | PostfixExpr Lookup |
LookupWildcard | ::= | "*" |
MapConstructor | ::= | "map" "{" MapConstructorEntry "}" |
MapConstructorEntry | ::= | ExprSingle (":" ExprSingle) |
MappingArrowTarget | ::= | "=!>" ArrowTarget |
MapType | ::= | (AnyMapType | TypedMapType) |
MethodCall | ::= | PostfixExpr "=?>" NCName PositionalArgumentList |
MultiplicativeExpr | ::= | UnionExpr (("*" | "×" | "div" | "÷" | "idiv" | "mod") UnionExpr) |
NamedFunctionRef | ::= | EQName "#" IntegerLiteral |
NamespaceDecl | ::= | "declare" "namespace" NCName "=" URILiteral |
NamespaceNodeTest | ::= | "namespace-node" "(" ")" |
NameTest | ::= | (EQName | Wildcard) |
NameTestUnion | ::= | NameTest |
NCName | ::= | QName |
NCNameColonStar | ::= | NCNameToken ":*" |
NCNameToken | ::= | Nmstart Nmchar |
Nmchar | ::= | (Letter | CombiningChar | Extender | Digit | "." | "-" | "_") |
Nmstart | ::= | (Letter | "_") |
NodeComp | ::= | ("is" | "is-not" | NodePrecedes | NodeFollows | "precedes-or-is" | "follows-or-is") |
NodeFollows | ::= | (">>" | "follows") |
NodeKindTest | ::= | (DocumentTest | ElementTest | AttributeTest | SchemaElementTest | SchemaAttributeTest | PITest | CommentTest | TextTest | NamespaceNodeTest | AnyNodeKindTest) |
NodePrecedes | ::= | ("<<" | "precedes") |
NodeTest | ::= | (UnionNodeTest | SimpleNodeTest) |
NumericLiteral | ::= | (IntegerLiteral | HexIntegerLiteral | BinaryIntegerLiteral | DecimalLiteral | DoubleLiteral) |
OccurrenceIndicator | ::= | ("?" | "*" | "+") |
OrExpr | ::= | AndExpr ("or" AndExpr) |
OtherwiseExpr | ::= | StringConcatExpr ("otherwise" StringConcatExpr) |
ParamList | ::= | VarNameAndType |
ParenthesizedExpr | ::= | "(" Expr ")" |
PathExpr | ::= | (AbsolutePathExpr | RelativePathExpr) |
PipelineExpr | ::= | ArrowExpr ("->" ArrowExpr) |
PITest | ::= | "processing-instruction" "(" (NCName | StringLiteral) ")" |
PositionalArgumentList | ::= | "(" PositionalArguments ")" |
PositionalArguments | ::= | Argument |
PositionalVar | ::= | "at" VarName |
PostfixExpr | ::= | (PrimaryExpr | FilterExpr | DynamicFunctionCall | LookupExpr | MethodCall | FilterExprAM) |
Predicate | ::= | "[" Expr "]" |
PrimaryExpr | ::= | (Literal | VarRef | ParenthesizedExpr | ContextValueRef | FunctionCall | FunctionItemExpr | MapConstructor | ArrayConstructor | StringTemplate | UnaryLookup) |
QName | ::= | (NCNameToken ":") LocalPart |
QNameLiteral | ::= | "#" EQName |
QuantifiedExpr | ::= | ("some" | "every") QuantifierBinding "satisfies" ExprSingle |
QuantifierBinding | ::= | VarNameAndType "in" ExprSingle |
QuotStringLiteral | ::= | (""" (EscapeQuot | ["]) """) |
RangeExpr | ::= | AdditiveExpr ("to" AdditiveExpr) |
RecordType | ::= | "record" "(" FieldDeclaration ")" |
RegularItemType | ::= | (AnyItemTest | NodeKindTest | GNodeType | JNodeType | MapType | ArrayType | RecordType | EnumerationType) |
RelativePathExpr | ::= | StepExpr (("/" | "//") StepExpr) |
RestrictedDynamicCall | ::= | (VarRef | ParenthesizedExpr | FunctionItemExpr | MapConstructor | ArrayConstructor) PositionalArgumentList |
SchemaAttributeTest | ::= | "schema-attribute" "(" AttributeName ")" |
SchemaElementTest | ::= | "schema-element" "(" ElementName ")" |
Selector | ::= | (EQName | Wildcard | ("get" "(" ExprSingle ")")) |
SequenceArrowTarget | ::= | "=>" ArrowTarget |
SequenceType | ::= | (("empty-sequence" "(" ")") | (ItemType OccurrenceIndicator)) |
SimpleMapExpr | ::= | PathExpr ("!" PathExpr) |
SimpleNodeTest | ::= | (TypeTest | Selector) |
SquareArrayConstructor | ::= | "[" ExprSingle "]" |
StarColonNCName | ::= | "*:" NCNameToken |
StepExpr | ::= | (PostfixExpr | AxisStep) |
StringConcatExpr | ::= | RangeExpr ("||" RangeExpr) |
StringLiteral | ::= | (AposStringLiteral | QuotStringLiteral) |
StringTemplate | ::= | "`" (StringTemplateFixedPart | StringTemplateVariablePart) "`" |
StringTemplateFixedPart | ::= | (Char | "{{" | "}}" | "``") |
StringTemplateVariablePart | ::= | EnclosedExpr |
TextTest | ::= | "text" "(" ")" |
TreatExpr | ::= | CastableExpr ("treat" "as" SequenceType) |
TypedArrayType | ::= | "array" "(" SequenceType ")" |
TypeDeclaration | ::= | "as" SequenceType |
TypedFunctionParam | ::= | ("$" EQName "as") SequenceType |
TypedFunctionType | ::= | ("function" | "fn") "(" TypedFunctionParam ")" "as" SequenceType |
TypedMapType | ::= | "map" "(" ItemType "," SequenceType ")" |
TypeName | ::= | EQName |
TypeTest | ::= | (NodeKindTest | JNodeType) |
UnaryExpr | ::= | ("-" | "+") ValueExpr |
UnaryLookup | ::= | Lookup |
UnbracedActions | ::= | "then" ExprSingle "else" ExprSingle |
UnionExpr | ::= | IntersectExceptExpr (("union" | "|") IntersectExceptExpr) |
UnionNodeTest | ::= | "(" SimpleNodeTest ")" |
URILiteral | ::= | StringLiteral |
URIQualifiedName | ::= | BracedURILiteral (NCNameToken ":") NCNameToken |
URIQualifiedStar | ::= | BracedURILiteral "*" |
ValueComp | ::= | ("eq" | "ne" | "lt" | "le" | "gt" | "ge") |
ValueExpr | ::= | (SimpleMapExpr) |
VarName | ::= | "$" EQName |
VarNameAndType | ::= | "$" EQName TypeDeclaration |
VarRef | ::= | "$" EQName |
WhitespaceChar | ::= | [	 


  ] |
Wildcard | ::= | ("*" | NCNameColonStar | StarColonNCName | URIQualifiedStar) |