X DevAPI 用户指南  / 第 11 章 CRUD EBNF 定义  /  11.7 其他 EBNF 定义

11.7 其他 EBNF 定义

搜索条件Str

EBNF 中显示的此函数的语法是:

SearchConditionStr
  ::= '"' Expression '"'

图 11.24 SearchConditionStr

图像显示了 EBNF 形式的语法,如前文所述。

搜索表达式列表

EBNF 中显示的此函数的语法是:

SearchExprStrList
  ::= '[' '"' Expression '"' ( ',' '"' Expression '"' )* ']'

图 11.25 SearchExprStrList

图像显示了 EBNF 形式的语法,如前文所述。

ProjectedDocumentExprStr

EBNF 中显示的此函数的语法是:

ProjectedDocumentExprStr
  ::= ProjectedSearchExprStrList | 'expr("' JSONDocumentExpression '")'

图 11.26 ProjectedDocumentExprStr

图像显示了 EBNF 形式的语法,如前文所述。

ProjectedSearchExprStrList

EBNF 中显示的此函数的语法是:

ProjectedSearchExprStrList
  ::= '[' '"' Expression ( 'AS' Alias )? '"' ( ',' '"' Expression ( 'AS' Alias )? '"' )* ']'

图 11.27 ProjectedSearchExprStrList

图像显示了 EBNF 形式的语法,如前文所述。

排序表达式列表

EBNF 中显示的此函数的语法是:

SortExprStrList
  ::= '[' '"' Expression ( 'ASC' | 'DESC' )? '"' ( ',' '"' Expression ( 'ASC' | 'DESC' )? '"' )* ']'

图 11.28 SortExprStrList

图像显示了 EBNF 形式的语法,如前文所述。

表达式或字面量

EBNF 中显示的此函数的语法是:

ExprOrLiteral
  ::= 'expr("' Expression '")' | Literal

图 11.29 ExprOrLiteral

图像显示了 EBNF 形式的语法,如前文所述。

ExprOrLiterals

EBNF 中显示的此函数的语法是:

ExprOrLiterals
  ::= ExprOrLiteral ( ',' ExprOrLiteral )*

图 11.30 ExprOrLiterals

图像显示了 EBNF 形式的语法,如前文所述。

ExprOrLiteralOrOperand

EBNF 中显示的此函数的语法是:

ExprOrLiteralOrOperand
  ::= ExprOrLiteral

图 11.31 ExprOrLiteralOrOperand

图像显示了 EBNF 形式的语法,如前文所述。

占位符值

EBNF 中显示的此函数的语法是:

PlaceholderValues
  ::= '{' PlaceholderName ':' ( ExprOrLiteral ) '}'

图 11.32 占位符值

图像显示了 EBNF 形式的语法,如前文所述。

占位符名称

EBNF 中显示的此函数的语法是:

PlaceholderName
  ::= NamedPlaceholderNotQuestionmarkNotNumbered

图 11.33 占位符名称

图像显示了 EBNF 形式的语法,如前文所述。

文档路径

EBNF 中显示的此函数的语法是:

DocPath
  ::= ( '[*]' | ( '[' Index ']' ) | '.*' | ( '.' StringLiteral ) | '**' )+

图 11.34 文档路径

图像显示了 EBNF 形式的语法,如前文所述。

文字

EBNF 中显示的此函数的语法是:

Literal
  ::= '"' StringLiteral '"' | Number | true | false | Document

图 11.35 文字

图像显示了 EBNF 形式的语法,如前文所述。

表达

Expression
  ::= Literal
   | DocPath
   | TableField
   | FunctionName '(' Expression ( ',' Expression )* ')'
   | ':' PlaceholderName
   | Expression Operator Expression
   | JSONExpression

图 11.36 表达式

图像显示了 EBNF 形式的语法,如前文所述。

文档

期望 JSON 文档的 API 调用允许使用多种数据类型来描述文档。根据 X DevAPI 实现和语言,可以使用以下任何数据类型:

  • 细绳

  • 原生 JSON

  • JSON 等效语法

  • 数据库文档

  • 生成的文档类

X DevAPI 的所有实现都允许通过特殊的 DbDoc 类型和字符串来表达文档。

EBNF 中显示的此函数的语法是:

Document
  ::= JSONDocument | JSONEquivalentDocument | DbDoc | GeneratedDocumentClasses

图 11.37 文档

图像显示了 EBNF 形式的语法,如前文所述。

JSON表达式

EBNF 中显示的此函数的语法是:

JSONExpression
  ::= JSONDocumentExpression | '[' Expression ( ',' Expression )* ']'

图 11.38 JSONExpression

图像显示了 EBNF 形式的语法,如前文所述。

JSON文档表达式

EBNF 中显示的此函数的语法是:

JSONDocumentExpression
  ::= '{' StringLiteral ':' JSONExpression (',' StringLiteral ':' JSONExpression)* '}'

图 11.39 JSONDocumentExpression

图像显示了 EBNF 形式的语法,如前文所述。

函数名

EBNF 中显示的此函数的语法是:

FunctionName
  ::= StringLiteral | StringLiteral '.' StringLiteral

图 11.40 函数名

图像显示了 EBNF 形式的语法,如前文所述。

文档或JSON

EBNF 中显示的此函数的语法是:

DocumentOrJSON
  ::= Document | 'expr("' JSONDocumentExpression '")'

图 11.41 DocumentOrJSON

图像显示了 EBNF 形式的语法,如前文所述。

表字段

EBNF 中显示的此函数的语法是:

TableField
  ::= ( StringLiteral '.' )? ( StringLiteral '.' )? StringLiteral ( '@' DocPath )?

图 11.42 表字段

图像显示了 EBNF 形式的语法,如前文所述。

表字段

EBNF 中显示的此函数的语法是:

TableFields
  ::= ( '[' TableField ( ',' TableField )* ']' )

图 11.43 表字段

图像显示了 EBNF 形式的语法,如前文所述。