XQuery 1.0:XML查询语言 工作草案-5
TransWiki - W3CHINA.ORG开放翻译计划(OTP)
摘要_文档状态_目录 第1节 第2节 3.1~3.3节 3.4~3.6节 3.7节 3.8~3.13节 第4节 附录A 附录B,C,D 附录E,F,G,H,I
| 目录 |
A XQuery Grammar
A.1 EBNF
The following grammar uses the same simple Extended Backus-Naur Form (EBNF) notation as [XML 1.0 (http://www.w3.org/TR/2004/WD-xquery-20040723/#XML)] with the following minor differences. The notation "< ... >" is used to indicate a grouping of terminals that together may help disambiguate the individual symbols. To help readability, this "< ... >" notation is absent in the EBNF in the main body of this document. This appendix is the normative version of the EBNF.
Comments on grammar productions are between '/*' and '*/' symbols - please note that these comments are normative. A 'gn:' prefix means a 'Grammar Note', and is meant as a clarification for parsing rules, and is explained in A.1.1 Grammar Notes. A 'ws:' prefix explains the whitespace rules for the production, the details of which are explained in A.2.2 Whitespace Rules
| [1] | Module (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-Module) | ::= | VersionDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VersionDecl)? (MainModule (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-MainModule) | LibraryModule (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-LibraryModule)) | |
| [2] | VersionDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-VersionDecl) | ::= | <"xquery" "version" StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral)> Separator (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Separator) | |
| [3] | MainModule (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-MainModule) | ::= | Prolog (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Prolog) QueryBody (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-QueryBody) | |
| [4] | LibraryModule (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-LibraryModule) | ::= | ModuleDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ModuleDecl) Prolog (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Prolog) | |
| [5] | ModuleDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ModuleDecl) | ::= | <"module" "namespace"> NCName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-NCName) "=" StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral) Separator (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Separator) | |
| [6] | Prolog (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-Prolog) | ::= | (Setter (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Setter) Separator (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Separator))* ((Import (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Import) | NamespaceDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-NamespaceDecl) | VarDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarDecl) | FunctionDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-FunctionDecl)) Separator (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Separator))* | |
| [7] | Setter (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-Setter) | ::= | XMLSpaceDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-XMLSpaceDecl) | DefaultCollationDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DefaultCollationDecl) | BaseURIDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-BaseURIDecl) | ConstructionDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ConstructionDecl) | DefaultNamespaceDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DefaultNamespaceDecl) | DefaultOrderingDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DefaultOrderingDecl) | |
| [8] | Import (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-Import) | ::= | SchemaImport (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-SchemaImport) | ModuleImport (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ModuleImport) | |
| [9] | Separator (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-Separator) | ::= | ";" | |
| [10] | NamespaceDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-NamespaceDecl) | ::= | <"declare" "namespace"> NCName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-NCName) "=" StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral) | |
| [11] | XMLSpaceDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-XMLSpaceDecl) | ::= | <"declare" "xmlspace"> ("preserve" | "strip") | |
| [12] | DefaultNamespaceDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-DefaultNamespaceDecl) | ::= | (<"declare" "default" "element"> | <"declare" "default" "function">) "namespace" StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral) | |
| [13] | DefaultOrderingDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-DefaultOrderingDecl) | ::= | <"declare" "ordering"> ("ordered" | "unordered") | |
| [14] | DefaultCollationDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-DefaultCollationDecl) | ::= | <"declare" "default" "collation"> StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral) | |
| [15] | BaseURIDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-BaseURIDecl) | ::= | <"declare" "base-uri"> StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral) | |
| [16] | SchemaImport (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-SchemaImport) | ::= | <"import" "schema"> SchemaPrefix (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-SchemaPrefix)? StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral) (<"at" StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral)> ("," StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral))*)? | |
| [17] | SchemaPrefix (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-SchemaPrefix) | ::= | ("namespace" NCName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-NCName) "=") | (<"default" "element"> "namespace") | |
| [18] | ModuleImport (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ModuleImport) | ::= | <"import" "module"> ("namespace" NCName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-NCName) "=")? StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral) (<"at" StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral)> ("," StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral))*)? | |
| [19] | VarDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-VarDecl) | ::= | <"declare" "variable" "$"> VarName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarName) TypeDeclaration (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-TypeDeclaration)? ((":=" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle)) | "external") | |
| [20] | ConstructionDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ConstructionDecl) | ::= | <"declare" "construction"> ("preserve" | "strip") | |
| [21] | FunctionDecl (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-FunctionDecl) | ::= | <"declare" "function"> <QName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-QName) "("> ParamList (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ParamList)? (")" | (<")" "as"> SequenceType (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-SequenceType))) (EnclosedExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-EnclosedExpr) | "external") | |
| [22] | ParamList (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ParamList) | ::= | Param (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Param) ("," Param (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Param))* | |
| [23] | Param (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-Param) | ::= | "$" VarName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarName) TypeDeclaration (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-TypeDeclaration)? | |
| [24] | EnclosedExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-EnclosedExpr) | ::= | "{" Expr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Expr) "}" | |
| [25] | QueryBody (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-QueryBody) | ::= | Expr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Expr) | |
| [26] | Expr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-Expr) | ::= | ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle) ("," ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle))* | |
| [27] | ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ExprSingle) | ::= |
FLWORExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-FLWORExpr) |
|
| [28] | FLWORExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-FLWORExpr) | ::= | (ForClause (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ForClause) | LetClause (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-LetClause))+ WhereClause (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-WhereClause)? OrderByClause (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-OrderByClause)? "return" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle) | |
| [29] | ForClause (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ForClause) | ::= | <"for" "$"> VarName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarName) TypeDeclaration (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-TypeDeclaration)? PositionalVar (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-PositionalVar)? "in" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle) ("," "$" VarName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarName) TypeDeclaration (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-TypeDeclaration)? PositionalVar (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-PositionalVar)? "in" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle))* | |
| [30] | PositionalVar (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-PositionalVar) | ::= | "at" "$" VarName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarName) | |
| [31] | LetClause (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-LetClause) | ::= | <"let" "$"> VarName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarName) TypeDeclaration (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-TypeDeclaration)? ":=" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle) ("," "$" VarName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarName) TypeDeclaration (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-TypeDeclaration)? ":=" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle))* | |
| [32] | WhereClause (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-WhereClause) | ::= | "where" Expr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Expr) | |
| [33] | OrderByClause (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-OrderByClause) | ::= | (<"order" "by"> | <"stable" "order" "by">) OrderSpecList (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-OrderSpecList) | |
| [34] | OrderSpecList (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-OrderSpecList) | ::= | OrderSpec (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-OrderSpec) ("," OrderSpec (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-OrderSpec))* | |
| [35] | OrderSpec (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-OrderSpec) | ::= | ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle) OrderModifier (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-OrderModifier) | |
| [36] | OrderModifier (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-OrderModifier) | ::= | ("ascending" | "descending")? (<"empty" "greatest"> | <"empty" "least">)? ("collation" StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral))? | |
| [37] | QuantifiedExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-QuantifiedExpr) | ::= | (<"some" "$"> | <"every" "$">) VarName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarName) TypeDeclaration (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-TypeDeclaration)? "in" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle) ("," "$" VarName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarName) TypeDeclaration (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-TypeDeclaration)? "in" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle))* "satisfies" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle) | |
| [38] | TypeswitchExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-TypeswitchExpr) | ::= | <"typeswitch" "("> Expr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Expr) ")" CaseClause (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-CaseClause)+ "default" ("$" VarName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarName))? "return" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle) | |
| [39] | CaseClause (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-CaseClause) | ::= | "case" ("$" VarName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarName) "as")? SequenceType (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-SequenceType) "return" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle) | |
| [40] | IfExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-IfExpr) | ::= | <"if" "("> Expr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Expr) ")" "then" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle) "else" ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle) | |
| [41] | OrExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-OrExpr) | ::= | AndExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-AndExpr) ( "or" AndExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-AndExpr) )* | |
| [42] | AndExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-AndExpr) | ::= | ComparisonExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ComparisonExpr) ( "and" ComparisonExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ComparisonExpr) )* | |
| [43] | ComparisonExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ComparisonExpr) | ::= |
RangeExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-RangeExpr) ( (ValueComp (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ValueComp) |
|
| [44] | RangeExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-RangeExpr) | ::= | AdditiveExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-AdditiveExpr) ( "to" AdditiveExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-AdditiveExpr) )? | |
| [45] | AdditiveExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-AdditiveExpr) | ::= | MultiplicativeExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-MultiplicativeExpr) ( ("+" | "-") MultiplicativeExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-MultiplicativeExpr) )* | |
| [46] | MultiplicativeExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-MultiplicativeExpr) | ::= | UnionExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-UnionExpr) ( ("*" | "div" | "idiv" | "mod") UnionExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-UnionExpr) )* | |
| [47] | UnionExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-UnionExpr) | ::= | IntersectExceptExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-IntersectExceptExpr) ( ("union" | "|") IntersectExceptExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-IntersectExceptExpr) )* | |
| [48] | IntersectExceptExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-IntersectExceptExpr) | ::= | InstanceofExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-InstanceofExpr) ( ("intersect" | "except") InstanceofExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-InstanceofExpr) )* | |
| [49] | InstanceofExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-InstanceofExpr) | ::= | TreatExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-TreatExpr) ( <"instance" "of"> SequenceType (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-SequenceType) )? | |
| [50] | TreatExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-TreatExpr) | ::= | CastableExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-CastableExpr) ( <"treat" "as"> SequenceType (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-SequenceType) )? | |
| [51] | CastableExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-CastableExpr) | ::= | CastExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-CastExpr) ( <"castable" "as"> SingleType (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-SingleType) )? | |
| [52] | CastExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-CastExpr) | ::= | UnaryExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-UnaryExpr) ( <"cast" "as"> SingleType (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-SingleType) )? | |
| [53] | UnaryExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-UnaryExpr) | ::= | ("-" | "+")* ValueExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ValueExpr) | |
| [54] | ValueExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ValueExpr) | ::= | ValidateExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ValidateExpr) | PathExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-PathExpr) | |
| [55] | GeneralComp (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-GeneralComp) | ::= | "=" | "!=" | "<" | "<=" | ">" | ">=" | /* gn: lt (http://www.w3.org/TR/2004/WD-xquery-20040723/#parse-note-lt) */ |
| [56] | ValueComp (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ValueComp) | ::= | "eq" | "ne" | "lt" | "le" | "gt" | "ge" | |
| [57] | NodeComp (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-NodeComp) | ::= | "is" | "<<" | ">>" | |
| [58] | ValidateExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ValidateExpr) | ::= | (<"validate" "{"> | (<"validate" ValidationMode (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ValidationMode)> "{")) Expr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Expr) "}" | /* gn: validate (http://www.w3.org/TR/2004/WD-xquery-20040723/#parse-note-validate) */ |
| [59] | PathExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-PathExpr) | ::= |
("/" RelativePathExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-RelativePathExpr)?) |
/* gn: leading-lone-slash (http://www.w3.org/TR/2004/WD-xquery-20040723/#parse-note-leading-lone-slash) */ |
| [60] | RelativePathExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-RelativePathExpr) | ::= | StepExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StepExpr) (("/" | "//") StepExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StepExpr))* | |
| [61] | StepExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-StepExpr) | ::= | AxisStep (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-AxisStep) | FilterExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-FilterExpr) | |
| [62] | AxisStep (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-AxisStep) | ::= | (ForwardStep (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ForwardStep) | ReverseStep (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ReverseStep)) PredicateList (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-PredicateList) | |
| [63] | ForwardStep (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ForwardStep) | ::= | (ForwardAxis (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ForwardAxis) NodeTest (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-NodeTest)) | AbbrevForwardStep (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-AbbrevForwardStep) | |
| [64] | ForwardAxis (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ForwardAxis) | ::= |
<"child" "::"> |
|
| [65] | AbbrevForwardStep (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-AbbrevForwardStep) | ::= | "@"? NodeTest (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-NodeTest) | |
| [66] | ReverseStep (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ReverseStep) | ::= | (ReverseAxis (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ReverseAxis) NodeTest (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-NodeTest)) | AbbrevReverseStep (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-AbbrevReverseStep) | |
| [67] | ReverseAxis (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ReverseAxis) | ::= |
<"parent" "::"> |
|
| [68] | AbbrevReverseStep (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-AbbrevReverseStep) | ::= | ".." | |
| [69] | NodeTest (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-NodeTest) | ::= | KindTest (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-KindTest) | NameTest (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-NameTest) | |
| [70] | NameTest (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-NameTest) | ::= | QName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-QName) | Wildcard (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Wildcard) | |
| [71] | Wildcard (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-Wildcard) | ::= |
"*" |
/* ws: explicit (http://www.w3.org/TR/2004/WD-xquery-20040723/#ws-explicit) */ |
| [72] | FilterExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-FilterExpr) | ::= | PrimaryExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-PrimaryExpr) PredicateList (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-PredicateList) | |
| [73] | PredicateList (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-PredicateList) | ::= | Predicate (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Predicate)* | |
| [74] | Predicate (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-Predicate) | ::= | "[" Expr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Expr) "]" | |
| [75] | PrimaryExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-PrimaryExpr) | ::= | Literal (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Literal) | VarRef (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarRef) | ParenthesizedExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ParenthesizedExpr) | ContextItemExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ContextItemExpr) | FunctionCall (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-FunctionCall) | Constructor (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Constructor) | OrderedExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-OrderedExpr) | UnorderedExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-UnorderedExpr) | |
| [76] | Literal (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-Literal) | ::= | NumericLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-NumericLiteral) | StringLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-StringLiteral) | |
| [77] | NumericLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-NumericLiteral) | ::= | IntegerLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-IntegerLiteral) | DecimalLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DecimalLiteral) | DoubleLiteral (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DoubleLiteral) | |
| [78] | VarRef (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-VarRef) | ::= | "$" VarName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-VarName) | |
| [79] | ParenthesizedExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ParenthesizedExpr) | ::= | "(" Expr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Expr)? ")" | |
| [80] | ContextItemExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ContextItemExpr) | ::= | "." | |
| [81] | OrderedExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-OrderedExpr) | ::= | <"ordered" "{"> Expr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Expr) "}" | |
| [82] | UnorderedExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-UnorderedExpr) | ::= | <"unordered" "{"> Expr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Expr) "}" | |
| [83] | FunctionCall (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-FunctionCall) | ::= | <QName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-QName) "("> (ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle) ("," ExprSingle (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-ExprSingle))*)? ")" | /* gn: parens (http://www.w3.org/TR/2004/WD-xquery-20040723/#parse-note-parens) */ |
| /* gn: reserved-function-names (http://www.w3.org/TR/2004/WD-xquery-20040723/#parse-note-reserved-function-names) */ | ||||
| [84] | Constructor (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-Constructor) | ::= |
DirectConstructor (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DirectConstructor) |
|
| [85] | DirectConstructor (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-DirectConstructor) | ::= |
DirElemConstructor (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DirElemConstructor) |
|
| [86] | DirElemConstructor (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-DirElemConstructor) | ::= | "<" QName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-QName) DirAttributeList (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DirAttributeList) ("/>" | (">" DirElemContent (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DirElemContent)* "</" QName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-QName) S (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-S)? ">")) | /* ws: explicit (http://www.w3.org/TR/2004/WD-xquery-20040723/#ws-explicit) */ |
| /* gn: lt (http://www.w3.org/TR/2004/WD-xquery-20040723/#parse-note-lt) */ | ||||
| [87] | DirAttributeList (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-DirAttributeList) | ::= | (S (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-S) (QName (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-QName) S (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-S)? "=" S (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-S)? DirAttributeValue (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DirAttributeValue))?)* | /* ws: explicit (http://www.w3.org/TR/2004/WD-xquery-20040723/#ws-explicit) */ |
| [88] | DirAttributeValue (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-DirAttributeValue) | ::= |
('"' (EscapeQuot (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-EscapeQuot) | QuotAttrValueContent (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-QuotAttrValueContent))* '"') |
/* ws: explicit (http://www.w3.org/TR/2004/WD-xquery-20040723/#ws-explicit) */ |
| [89] | QuotAttrValueContent (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-QuotAttrValueContent) | ::= |
QuotAttrContentChar (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-QuotAttrContentChar) |
|
| [90] | AposAttrValueContent (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-AposAttrValueContent) | ::= |
AposAttrContentChar (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-AposAttrContentChar) |
|
| [91] | DirElemContent (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-DirElemContent) | ::= |
DirectConstructor (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DirectConstructor) |
|
| [92] | CommonContent (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-CommonContent) | ::= | PredefinedEntityRef (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-PredefinedEntityRef) | CharRef (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-CharRef) | "Template:"" | EnclosedExpr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-EnclosedExpr) | |
| [93] | DirCommentConstructor (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-DirCommentConstructor) | ::= | "<!--" DirCommentContents (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DirCommentContents) "-->" | /* ws: explicit (http://www.w3.org/TR/2004/WD-xquery-20040723/#ws-explicit) */ |
| [94] | DirCommentContents (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-DirCommentContents) | ::= | ((Char (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Char) - '-') | <'-' (Char (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Char) - '-')>)* | /* ws: explicit (http://www.w3.org/TR/2004/WD-xquery-20040723/#ws-explicit) */ |
| [95] | DirPIConstructor (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-DirPIConstructor) | ::= | "<?" PITarget (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-PITarget) (S (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-S) DirPIContents (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-DirPIContents))? "?>" | /* ws: explicit (http://www.w3.org/TR/2004/WD-xquery-20040723/#ws-explicit) */ |
| [96] | DirPIContents (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-DirPIContents) | ::= | (Char (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Char)* - (Char* '?>' Char*)) | /* ws: explicit (http://www.w3.org/TR/2004/WD-xquery-20040723/#ws-explicit) */ |
| [97] | CDataSection (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-CDataSection) | ::= | "<![CDATA[" CDataSectionContents (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-CDataSectionContents) "]]>" | /* ws: explicit (http://www.w3.org/TR/2004/WD-xquery-20040723/#ws-explicit) */ |
| [98] | CDataSectionContents (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-CDataSectionContents) | ::= | (Char (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Char)* - (Char* ']]>' Char*)) | /* ws: explicit (http://www.w3.org/TR/2004/WD-xquery-20040723/#ws-explicit) */ |
| [99] | ComputedConstructor (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-ComputedConstructor) | ::= |
CompDocConstructor (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-CompDocConstructor) |
|
| [100] | CompDocConstructor (http://www.w3.org/TR/2004/WD-xquery-20040723/#doc-xquery-CompDocConstructor) | ::= | <"document" "{"> Expr (http://www.w3.org/TR/2004/WD-xquery-20040723/#prod-xquery-Expr) "}" | |
| [101] | CompElemConstructor (http://www.w3.org/TR/2004/WD-xquery-2 |