11.7 Другие определения EBNF
SearchConditionStr
Синтаксис этой функции, представленный в EBNF, выглядит так:
SearchConditionStr
::= '"' Expression '"'
Рисунок 11.24 SearchConditionStr
SearchExprStrList
Синтаксис этой функции, представленный в EBNF, выглядит так:
SearchExprStrList
::= '[' '"' Expression '"' ( ',' '"' Expression '"' )* ']'
Рисунок 11.25 SearchExprStrList
ProjectedDocumentExprStr
Синтаксис этой функции, представленный в EBNF, выглядит так:
ProjectedDocumentExprStr
::= ProjectedSearchExprStrList | 'expr("' JSONDocumentExpression '")'
Рисунок 11.26 ProjectedDocumentExprStr
ProjectedSearchExprStrList
Синтаксис этой функции, представленный в EBNF, выглядит так:
ProjectedSearchExprStrList
::= '[' '"' Expression ( 'AS' Alias )? '"' ( ',' '"' Expression ( 'AS' Alias )? '"' )* ']'
Рисунок 11.27 ProjectedSearchExprStrList
SortExprStrList
Синтаксис этой функции, представленный в EBNF, выглядит так:
SortExprStrList
::= '[' '"' Expression ( 'ASC' | 'DESC' )? '"' ( ',' '"' Expression ( 'ASC' | 'DESC' )? '"' )* ']'
Рисунок 11.28 SortExprStrList
ExprOrLiteral
Синтаксис этой функции, представленный в EBNF, выглядит так:
ExprOrLiteral
::= 'expr("' Expression '")' | Literal
Рисунок 11.29 ExprOrLiteral
ExprOrLiterals
Синтаксис этой функции, представленный в EBNF, выглядит так:
ExprOrLiterals
::= ExprOrLiteral ( ',' ExprOrLiteral )*
Рисунок 11.30 ExprOrLiterals
ExprOrLiteralOrOperand
Синтаксис этой функции, представленный в EBNF, выглядит так:
ExprOrLiteralOrOperand
::= ExprOrLiteral
Рисунок 11.31 ExprOrLiteralOrOperand
PlaceholderValues
Синтаксис этой функции, представленный в EBNF, выглядит так:
PlaceholderValues
::= '{' PlaceholderName ':' ( ExprOrLiteral ) '}'
Рисунок 11.32 PlaceholderValues
PlaceholderName
Синтаксис этой функции, представленный в EBNF, выглядит так:
PlaceholderName
::= NamedPlaceholderNotQuestionmarkNotNumbered
Рисунок 11.33 PlaceholderName
DocPath
Синтаксис этой функции, представленный в EBNF, выглядит так:
DocPath
::= ( '[*]' | ( '[' Index ']' ) | '.*' | ( '.' StringLiteral ) | '**' )+
Рисунок 11.34 DocPath
Literal
Синтаксис этой функции, представленный в EBNF, выглядит так:
Literal
::= '"' StringLiteral '"' | Number | true | false | Document
Рисунок 11.35 Literal
Выражение
Expression
::= Literal
| DocPath
| TableField
| FunctionName '(' Expression ( ',' Expression )* ')'
| ':' PlaceholderName
| Expression Operator Expression
| JSONExpression
Рисунок 11.36 Выражение
Документ
Вызов API, ожидающий JSON-документ, позволяет использовать множество типов данных для описания документа. В зависимости от реализации X DevAPI и языка, можно использовать следующие типы данных:
Строка
JSON-объект (native JSON)
Синтаксис, эквивалентный JSON
DbDoc
Сгенерированные классы документов
Все реализации X DevAPI позволяют выразить документ с помощью специального типа DbDoc и в виде строки.
Синтаксис этой функции, представленный в EBNF:
Document
::= JSONDocument | JSONEquivalentDocument | DbDoc | GeneratedDocumentClasses
Рисунок 11.37 Документ
JSONВыражение
Синтаксис этой функции, представленный в EBNF:
JSONExpression
::= JSONDocumentExpression | '[' Expression ( ',' Expression )* ']'
Рисунок 11.38 JSONВыражение
JSONДокументВыражение
Синтаксис этой функции, представленный в EBNF:
JSONDocumentExpression
::= '{' StringLiteral ':' JSONExpression (',' StringLiteral ':' JSONExpression)* '}'
Рисунок 11.39 JSONДокументВыражение
ИмяФункции
Синтаксис этой функции, представленный в EBNF:
FunctionName
::= StringLiteral | StringLiteral '.' StringLiteral
Рисунок 11.40 ИмяФункции
ДокументИлиJSON
Синтаксис этой функции, представленный в EBNF:
DocumentOrJSON
::= Document | 'expr("' JSONDocumentExpression '")'
Рисунок 11.41 ДокументИлиJSON
ПолеТаблицы
Синтаксис этой функции, представленный в EBNF:
TableField
::= ( StringLiteral '.' )? ( StringLiteral '.' )? StringLiteral ( '@' DocPath )?
Рисунок 11.42 ПолеТаблицы
ПоляТаблицы
Синтаксис этой функции, представленный в EBNF:
TableFields
::= ( '[' TableField ( ',' TableField )* ']' )
Рисунок 11.43 ПоляТаблицы
© 2025 Oracle
Licensed under the GPLv2 License.