11.7其他EBNF定义

SearchConditionStr

EBNF中显示的这个函数的语法是:

SearchConditionStr::= ' ' '表达式' ' '

图11.24 SearchConditionStr . xml

图片显示了前面文本中描述的EBNF格式的语法。

SearchExprStrList

EBNF中显示的这个函数的语法是:

SearchExprStrList  ::= '[' '"' 表达式  '"' ( ',' '"' 表达式  '"' )* ']'

图11.25 SearchExprStrList . xml

图片显示了前面文本中描述的EBNF格式的语法。

ProjectedDocumentExprStr

EBNF中显示的这个函数的语法是:

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

图11.26 ProjectedDocumentExprStr . jpg

图片显示了前面文本中描述的EBNF格式的语法。

ProjectedSearchExprStrList

EBNF中显示的这个函数的语法是:

ProjectedSearchExprStrList::= '[' '"'表达式('AS'别名)?'"'(',' '"'表达式('AS'别名)?'"')* ']'

图11.27 ProjectedSearchExprStrList .图

图片显示了前面文本中描述的EBNF格式的语法。

SortExprStrList

EBNF中显示的这个函数的语法是:

SortExprStrList::= '[' ' ' ' ' ' ' '表达式('ASC' | 'DESC')?'"'(',' '"'表达式('ASC' | 'DESC')?'"')* ']'

图11.28 SortExprStrList . xml

图片显示了前面文本中描述的EBNF格式的语法。

ExprOrLiteral

EBNF中显示的这个函数的语法是:

ExprOrLiteral::= 'expr("' Expression '")' |字面

图11.29 ExprOrLiteral .图

图片显示了前面文本中描述的EBNF格式的语法。

ExprOrLiterals

EBNF中显示的这个函数的语法是:

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

图11.30 ExprOrLiterals

图片显示了前面文本中描述的EBNF格式的语法。

ExprOrLiteralOrOperand

EBNF中显示的这个函数的语法是:

ExprOrLiteralOrOperand::= ExprOrLiteral

图11.31 ExprOrLiteralOrOperand .图

图片显示了前面文本中描述的EBNF格式的语法。

PlaceholderValues

EBNF中显示的这个函数的语法是:

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

图11.32 PlaceholderValues

图片显示了前面文本中描述的EBNF格式的语法。

PlaceholderName

EBNF中显示的这个函数的语法是:

PlaceholderName::= NamedPlaceholderNotQuestionmarkNotNumbered

图11.33 PlaceholderName . xml

图片显示了前面文本中描述的EBNF格式的语法。

CollectionFields

EBNF中显示的这个函数的语法是:

CollectionFields::= ('[' CollectionField (',' CollectionField)* ']')

图11.34 CollectionFields .图

图片显示了前面文本中描述的EBNF格式的语法。

CollectionField

EBNF中显示的这个函数的语法是:

CollectionField::= '@'?DocPath

图11.35 CollectionField .图

图片显示了前面文本中描述的EBNF格式的语法。

DocPath

EBNF中显示的这个函数的语法是:

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

图11.36 DocPath . conf

图片显示了前面文本中描述的EBNF格式的语法。

文字

EBNF中显示的这个函数的语法是:

Literal::= '"' StringLiteral '"' | Number | true | false |文档

图11.37文字

图片显示了前面文本中描述的EBNF格式的语法。

表达式

表达式::= Literal | CollectionField b| TableField | FunctionName '('表达式(','表达式)* ')' | ':'占位符名称|表达式运算符表达式| JSONExpression

图11.38表达式

图片显示了前面文本中描述的EBNF格式的语法。

文档

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

  • 字符串

  • 原生JSON

  • JSON等效语法

  • DbDoc

  • 生成的文档类

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

EBNF中显示的这个函数的语法是:

Document::= JSONDocument | JSONEquivalentDocument | DbDoc | GeneratedDocumentClasses

图11.39文档

图片显示了前面文本中描述的EBNF格式的语法。

JSONExpression

EBNF中显示的这个函数的语法是:

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

图11.40 JSONExpression .图

图片显示了前面文本中描述的EBNF格式的语法。

JSONDocumentExpression

EBNF中显示的这个函数的语法是:

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

图11.41 JSONDocumentExpression . jpg

图片显示了前面文本中描述的EBNF格式的语法。

FunctionName

EBNF中显示的这个函数的语法是:

FunctionName::= StringLiteral | StringLiteral '.'StringLiteral

图11.42 FunctionName . xml

图片显示了前面文本中描述的EBNF格式的语法。

DocumentOrJSON

EBNF中显示的这个函数的语法是:

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

图11.43 DocumentOrJSON . xml

图片显示了前面文本中描述的EBNF格式的语法。

TableField

EBNF中显示的这个函数的语法是:

TableField::= (StringLiteral '。”)?(StringLiteral '。”)?StringLiteral ('@' DocPath)?

图11.44 TableField . xml

图片显示了前面文本中描述的EBNF格式的语法。

TableFields

EBNF中显示的这个函数的语法是:

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

图11.45 TableFields

图片显示了前面文本中描述的EBNF格式的语法。