/* Syntax conventions nl is significant: component declarations, groups, properties, and closing delimiters are line-oriented. ( X )? means optional X. ( X )* means zero or more X. A | B means either A or B. */ /* Core layout and values */ nl ::= "\n" | "\r\n" blank-lines ::= ( nl )* ws ::= ( " " | "\t" )* required-ws ::= " " ( " " | "\t" )* | "\t" ( " " | "\t" )* indent ::= ( " " | "\t" )* line-end ::= nl program ::= blank-lines ( component-declaration blank-lines )* component-declaration ::= indent known-component line-end value ::= string | identifier | boolean | number | reference | multiline-string | array string-like-value ::= string | identifier component-id ::= string | identifier | number identifier ::= identifier-start ( identifier-rest )* identifier-start ::= [A-Z] | [a-z] | [0-9] | "_" identifier-rest ::= identifier-start | "." | "-" string ::= '"' ( string-character | escape )* '"' multiline-string ::= "```" ( any-character | nl )* "```" reference ::= "@" ( reference-character )* boolean ::= "true" | "false" number ::= ( "-" )? digit ( digit )* ( "." digit ( digit )* )? datetime-value ::= string-like-value array ::= array-of-value array-separator ::= required-ws | line-end indent array-of-value ::= "[" ( ws value ( array-separator value )* ws | line-end ( indent value line-end )* indent )? "]" array-of-string-like-value ::= "[" ( ws string-like-value ( array-separator string-like-value )* ws | line-end ( indent string-like-value line-end )* indent )? "]" array-of-reference ::= "[" ( ws reference ( array-separator reference )* ws | line-end ( indent reference line-end )* indent )? "]" array-of-boolean ::= "[" ( ws boolean ( array-separator boolean )* ws | line-end ( indent boolean line-end )* indent )? "]" array-of-number ::= "[" ( ws number ( array-separator number )* ws | line-end ( indent number line-end )* indent )? "]" comment ::= "//" ( any-character-except-newline )* line-end | "/*" ( any-character | nl )* "*/" digit ::= [0-9] escape ::= '\' ( '"' | '\' | "/" | "b" | "f" | "n" | "r" | "t" | "u" hex hex hex hex ) hex ::= digit | [A-F] | [a-f] known-component ::= component /* Component index */ component ::= app | ai-agent | tool | parameter-c | app-computation | app-item | app-process | app-setting | authentication | authorization | automation | action-a | parameter-f | breadcrumb | entry-b | build-option-a | classic-navigation-bar-entry | component-group | component-component | component-setting | concatenated-file | data-load-definition | data-profile-column-d | developer-comment | dynamic-translation | email-template | file-c | json-duality-view | data-profile-column-b | json-source | data-profile-column-c | language-mapping | legacy-data-load-definition | table-lookup | transformation-rule | list | entry-c | lov | column-a | entry-d | parameter-d | map-background | page | branch-a | button | menu-c | trigger-action-e | trigger-action-c | computation-a | dynamic-action | action-c | meta-tag | page-item | process | basic-authentication-parameter | in-parameter | out-parameter | parameter-i | parameter-j | parameter-n | parameter-p | region | action-d | trigger-action-d | action-e | menu-a | trigger-action-a | trigger-action-b | axis | column-b | action-f | menu-b | trigger-action-g | trigger-action-f | column-c | column-d | column-e | column-f | column-g | column-group-a | column-group-b | facet | facet-group | checkbox-a | filter-c | filter-group | checkbox-b | layer | parameter-m | parameter-l | saved-report-a | aggregate-a | computation-b | control-break-a | display-column-a | filter-a | group-by-aggregate | group-by-column | group-by-sort | highlight-a | pivot-aggregate | pivot-column | pivot-row-column | pivot-sort | sort-a | saved-report-b | aggregate-b | control-break-b | display-column-b | filter-b | highlight-b | sort-b | search-source | series | parameter-k | validation-b | page-group | plugin | action-position | action-template | attribute-group | custom-attribute | entry-a | event | file-b | slot-c | standard-attribute-config | pwa-screenshot | pwa-shortcut | report-layout | report-query | source-query | parameter-e | rest-data-source | data-profile-column-a | operation | parameter-a | synchronization-step | parameter-b | role | search-config | parameter-h | shortcut | substitution-a | supporting-object | build-option-b | install-script | database-object | substitution-b | upgrade-script | validation-a | task-definition | action-b | parameter-g | participant-a | text-message | theme | breadcrumb-template | template-option-f | button-template | template-option-c | classic-report-template | template-option-g | field-template | template-option-b | file-a | global-template-option | list-template | template-option-e | page-template | slot-a | template-option-a | popup-lov-template | region-template | slot-b | template-option-d | style | template-option-group | workflow | parameter-o | version | activity | activity-variable | branch-b | connection-a | connection-b | parameter-q | parameter-r | parameter-s | parameter-t | participant-b | variable | app-group | authentication-server | file-d | file-server | gen-aiservice | print-server | rest-data-source-server | rest-enabled-sql-database | vector-provider | web-credential /* Component productions */ /* app */ /* direct properties use default group: identification */ app ::= "app" ( required-ws component-id )? ws "(" line-end ( app-body-line )* indent ")" line-end app-body-line ::= app-direct-property-line | app-group-block | app-child-component app-direct-property-line ::= indent app-direct-property line-end app-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "alias" ":" ws string-like-value /* required; type: TEXT */ | "version" ":" ws string-like-value /* required; type: TEXT */ | "type" ":" ws ( "standard" | "library" | "boilerplate" | "theme" ) /* required; type: SELECT LIST */ | "group" ":" ws string-like-value /* type: SELECT LIST */ app-group-block ::= app-gen-ai | app-logo | app-navigation | app-navigation-menu | app-navigation-bar | app-user-interface | app-app-format-masks | app-java-script | app-css | app-authentication | app-authorization | app-security | app-session-state-protection | app-session-management | app-database-session | app-globalization | app-progressive-web-app | app-custom-service-worker | app-row-search | app-char-value-comparison | app-report-printing | app-file-storage | app-error-handling | app-runtime | app-static-files | app-proxy | app-availability | app-advanced | app-comments app-gen-ai ::= indent "genAI" ws "{" line-end ( app-gen-ai-property-line )* indent "}" line-end app-gen-ai-property-line ::= indent app-gen-ai-property line-end app-gen-ai-property ::= "service" ":" ws reference /* type: COMPONENT */ | "aiConsentMessage" ":" ws multiline-string /* applies when service is set; type: TEXT EDITOR */ | "requestHandlerProcedure" ":" ws string-like-value /* type: TEXT */ | "responseHandlerProcedure" ":" ws string-like-value /* type: TEXT */ app-logo ::= indent "logo" ws "{" line-end ( app-logo-property-line )* indent "}" line-end app-logo-property-line ::= indent app-logo-property line-end app-logo-property ::= "type" ":" ws ( "image" | "text" | "imageAndText" | "custom" ) /* type: SELECT LIST */ | "imageUrl" ":" ws string-like-value /* required; applies when type in (I, IT); type: TEXT */ | "text" ":" ws string-like-value /* required; applies when type in (T, IT); type: TEXT */ | "customHtml" ":" ws multiline-string /* required; applies when type = C; type: TEXT EDITOR */ app-navigation ::= indent "navigation" ws "{" line-end ( app-navigation-property-line )* indent "}" line-end app-navigation-property-line ::= indent app-navigation-property line-end app-navigation-property ::= "homeUrl" ":" ws value /* required; type: LINK */ | "loginUrl" ":" ws value /* type: LINK */ app-navigation-menu ::= indent "navigationMenu" ws "{" line-end ( app-navigation-menu-property-line )* indent "}" line-end app-navigation-menu-property-line ::= indent app-navigation-menu-property line-end app-navigation-menu-property ::= "listTemplate" ":" ws reference /* type: COMPONENT */ | "templateOptions" ":" ws array-of-string-like-value /* applies when listTemplate is set; type: TEMPLATE OPTIONS */ | "listPosition" ":" ws ( "top" | "side" ) /* required; applies when listTemplate is set; type: SELECT LIST */ | "list" ":" ws reference /* applies when listTemplate is set; type: COMPONENT */ app-navigation-bar ::= indent "navigationBar" ws "{" line-end ( app-navigation-bar-property-line )* indent "}" line-end app-navigation-bar-property-line ::= indent app-navigation-bar-property line-end app-navigation-bar-property ::= "implementation" ":" ws ( "classic" | "list" ) /* required; type: SELECT LIST */ | "list" ":" ws string-like-value /* required; applies when implementation = LIST; type: SELECT LIST */ | "listTemplate" ":" ws reference /* required; applies when implementation = LIST; type: COMPONENT */ | "templateOptions" ":" ws array-of-string-like-value /* applies when listTemplate is set; type: TEMPLATE OPTIONS */ app-user-interface ::= indent "userInterface" ws "{" line-end ( app-user-interface-property-line )* indent "}" line-end app-user-interface-property-line ::= indent app-user-interface-property line-end app-user-interface-property ::= "currentTheme" ":" ws reference /* required; type: COMPONENT */ | "globalPage" ":" ws number /* type: PAGE */ | "usersCanChooseThemeStyle" ":" ws boolean /* required; type: YES NO */ | "addBuiltWithApexToFooter" ":" ws boolean /* required; type: YES NO */ | "autoDismissSuccessMessages" ":" ws boolean /* required; type: YES NO */ app-app-format-masks ::= indent "appFormatMasks" ws "{" line-end ( app-app-format-masks-property-line )* indent "}" line-end app-app-format-masks-property-line ::= indent app-app-format-masks-property line-end app-app-format-masks-property ::= "date" ":" ws string-like-value /* type: COMBOBOX */ | "dateTime" ":" ws string-like-value /* type: COMBOBOX */ | "timestamp" ":" ws string-like-value /* type: COMBOBOX */ | "timestampTimeZone" ":" ws string-like-value /* type: COMBOBOX */ app-java-script ::= indent "javaScript" ws "{" line-end ( app-java-script-property-line )* indent "}" line-end app-java-script-property-line ::= indent app-java-script-property line-end app-java-script-property ::= "fileUrls" ":" ws array-of-string-like-value /* type: FILE URLS JAVASCRIPT */ | "includeLegacyJavascript" ":" ws array-of-string-like-value /* type: CHECKBOXES */ | "includeJqueryMigrate" ":" ws boolean /* required; type: YES NO */ app-css ::= indent "css" ws "{" line-end ( app-css-property-line )* indent "}" line-end app-css-property-line ::= indent app-css-property line-end app-css-property ::= "fileUrls" ":" ws array-of-string-like-value /* type: FILE URLS CSS */ app-authentication ::= indent "authentication" ws "{" line-end ( app-authentication-property-line )* indent "}" line-end app-authentication-property-line ::= indent app-authentication-property line-end app-authentication-property ::= "scheme" ":" ws string-like-value /* required; type: SELECT LIST */ | "configProcedureName" ":" ws string-like-value /* type: TEXT */ | "publicUser" ":" ws string-like-value /* type: TEXT */ app-authorization ::= indent "authorization" ws "{" line-end ( app-authorization-property-line )* indent "}" line-end app-authorization-property-line ::= indent app-authorization-property line-end app-authorization-property ::= "scheme" ":" ws reference /* type: COMPONENT */ | "runOnPublicPages" ":" ws boolean /* required; applies when scheme != MUST_NOT_BE_PUBLIC_USER; type: YES NO */ | "runOnBackgroundJob" ":" ws boolean /* required; applies when scheme is set; type: YES NO */ | "sourceForRoleOrGroupSchemes" ":" ws ( "accessControlUserRoleAssignments" | "authenticationScheme" | "customCode" ) /* required; type: SELECT LIST */ app-security ::= indent "security" ws "{" line-end ( app-security-property-line )* indent "}" line-end app-security-property-line ::= indent app-security-property line-end app-security-property ::= "deepLinking" ":" ws ( "true" | "false" ) /* required; type: SELECT LIST */ | "enableDictation" ":" ws boolean /* required; type: YES NO */ | "browserCache" ":" ws ( "true" | "false" ) /* required; type: SELECT LIST */ | "embedInFrames" ":" ws ( "deny" | "allowSameOrigin" | "allow" ) /* required; type: SELECT LIST */ | "referrerPolicy" ":" ws ( "noReferrer" | "noReferrerWhenDowngrade" | "origin" | "originWhenCrossOrigin" | "sameOrigin" | "strictOrigin" | "strictOriginWhenCrossOrigin" | "unsafeUrl" ) /* required; type: SELECT LIST */ | "htmlEscapingMode" ":" ws ( "basic" | "extended" ) /* required; type: SELECT LIST */ | "httpResponseHeaders" ":" ws multiline-string /* type: TEXT EDITOR */ | "runtimeApiUsage" ":" ws array-of-string-like-value /* type: CHECKBOXES */ app-session-state-protection ::= indent "sessionStateProtection" ws "{" line-end ( app-session-state-protection-property-line )* indent "}" line-end app-session-state-protection-property-line ::= indent app-session-state-protection-property line-end app-session-state-protection-property ::= "enabled" ":" ws boolean /* required; type: YES NO */ | "allowUrlsCreatedAfter" ":" ws datetime-value /* type: DATETIME */ | "bookmarkHashFunction" ":" ws ( "sha1" | "sha2-256bit" | "sha2-384bit" | "sha2-512bit" | "md5" ) /* required; type: SELECT LIST */ | "checksumSalt" ":" ws string-like-value /* type: HIDDEN */ | "acceptPre202UrlChecksums" ":" ws boolean /* required; type: YES NO */ app-session-management ::= indent "sessionManagement" ws "{" line-end ( app-session-management-property-line )* indent "}" line-end app-session-management-property-line ::= indent app-session-management-property line-end app-session-management-property ::= "rejoinSessions" ":" ws ( "false" | "publicSessions" | "allSessions" ) /* required; type: SELECT LIST */ | "sessionStateCommits" ":" ws ( "immediate" | "endOfRequest" ) /* required; type: SELECT LIST */ | "maxSessionLength" ":" ws number /* type: INTEGER */ | "sessionTimeoutUrl" ":" ws string-like-value /* type: TEXT */ | "maxSessionIdleTime" ":" ws number /* type: INTEGER */ | "sessionIdleTimeoutUrl" ":" ws string-like-value /* type: TEXT */ | "sessionTimeoutWarning" ":" ws number /* type: INTEGER */ app-database-session ::= indent "databaseSession" ws "{" line-end ( app-database-session-property-line )* indent "}" line-end app-database-session-property-line ::= indent app-database-session-property line-end app-database-session-property ::= "parsingSchema" ":" ws string-like-value /* type: OWNER */ | "mleEnvironment" ":" ws string-like-value /* type: TEXT */ | "initPlsqlCode" ":" ws multiline-string /* type: PLSQL */ | "cleanupPlsqlCode" ":" ws multiline-string /* type: PLSQL */ app-globalization ::= indent "globalization" ws "{" line-end ( app-globalization-property-line )* indent "}" line-end app-globalization-property-line ::= indent app-globalization-property line-end app-globalization-property ::= "primaryLanguage" ":" ws string-like-value /* required; type: SELECT LIST; large enum list omitted */ | "documentDirection" ":" ws ( "leftToRight" | "rightToLeft" ) /* type: SELECT LIST */ | "translationMethod" ":" ws ( "translationApps" | "textMessages" ) /* type: SELECT LIST */ | "languageDerivedFrom" ":" ws ( "notTranslated" | "appPrimaryLanguage" | "browserPreference" | "appPreference" | "itemPreference" | "session" ) /* required; type: SELECT LIST */ | "autoTimeZone" ":" ws boolean /* required; type: YES NO */ | "autoCsvEncoding" ":" ws boolean /* required; type: YES NO */ app-progressive-web-app ::= indent "progressiveWebApp" ws "{" line-end ( app-progressive-web-app-property-line )* indent "}" line-end app-progressive-web-app-property-line ::= indent app-progressive-web-app-property line-end app-progressive-web-app-property ::= "enable" ":" ws boolean /* required; type: YES NO */ | "installable" ":" ws boolean /* required; applies when enable = Y; type: YES NO */ | "display" ":" ws ( "fullscreen" | "standalone" | "minimalUI" | "browser" ) /* required; applies when installable = Y; type: SELECT LIST */ | "screenOrientation" ":" ws ( "any" | "natural" | "landscape" | "landscapePrimary" | "landscapeSecondary" | "portrait" | "portraitPrimary" | "portraitSecondary" ) /* required; applies when installable = Y; type: SELECT LIST */ | "themeColor" ":" ws string-like-value /* applies when installable = Y; type: COLOR */ | "backgroundColor" ":" ws string-like-value /* applies when installable = Y; type: COLOR */ | "appDescription" ":" ws multiline-string /* applies when installable = Y; type: TEXT EDITOR */ | "appShortName" ":" ws string-like-value /* applies when enable = Y; type: TEXT */ | "customManifest" ":" ws multiline-string /* applies when installable = Y; type: TEXT EDITOR */ | "manifestIconUrl" ":" ws string-like-value /* applies when enable = Y; type: TEXT */ | "enablePushNotifications" ":" ws boolean /* required; applies when enable = Y; type: YES NO */ | "pushNotificationsCredentials" ":" ws reference /* required; applies when enablePushNotifications = Y; type: COMPONENT */ | "contactEmail" ":" ws string-like-value /* applies when enablePushNotifications = Y; type: TEXT */ app-custom-service-worker ::= indent "customServiceWorker" ws "{" line-end ( app-custom-service-worker-property-line )* indent "}" line-end app-custom-service-worker-property-line ::= indent app-custom-service-worker-property line-end app-custom-service-worker-property ::= "mode" ":" ws ( "default" | "custom" | "url" ) /* required; applies when enable = Y; type: SELECT LIST */ | "url" ":" ws string-like-value /* required; applies when mode = URL; type: TEXT */ | "functionVariableDeclarationMode" ":" ws ( "default" | "hook" ) /* required; applies when mode = CUSTOM; type: SELECT LIST */ | "functionVariableDeclaration" ":" ws multiline-string /* applies when functionVariableDeclarationMode = HOOK; type: JAVASCRIPT */ | "installMode" ":" ws ( "default" | "custom" | "hook" ) /* required; applies when mode = CUSTOM; type: SELECT LIST */ | "eventInstall" ":" ws multiline-string /* applies when installMode = CUSTOM; type: JAVASCRIPT */ | "eventInstallBefore" ":" ws multiline-string /* applies when installMode = HOOK; type: JAVASCRIPT */ | "eventInstallAfter" ":" ws multiline-string /* applies when installMode = HOOK; type: JAVASCRIPT */ | "activateMode" ":" ws ( "default" | "custom" | "hook" ) /* required; applies when mode = CUSTOM; type: SELECT LIST */ | "eventActivate" ":" ws multiline-string /* applies when activateMode = CUSTOM; type: JAVASCRIPT */ | "eventActivateBefore" ":" ws multiline-string /* applies when activateMode = HOOK; type: JAVASCRIPT */ | "eventActivateAfter" ":" ws multiline-string /* applies when activateMode = HOOK; type: JAVASCRIPT */ | "fetchMode" ":" ws ( "default" | "custom" | "hook" ) /* required; applies when mode = CUSTOM; type: SELECT LIST */ | "eventFetch" ":" ws multiline-string /* applies when fetchMode = CUSTOM; type: JAVASCRIPT */ | "eventFetchBefore" ":" ws multiline-string /* applies when fetchMode = HOOK; type: JAVASCRIPT */ | "eventFetchCacheDefinition" ":" ws multiline-string /* applies when fetchMode = HOOK; type: JAVASCRIPT */ | "eventFetchCacheResponse" ":" ws multiline-string /* applies when fetchMode = HOOK; type: JAVASCRIPT */ | "eventFetchNetworkResponseSuccess" ":" ws multiline-string /* applies when fetchMode = HOOK; type: JAVASCRIPT */ | "eventFetchNetworkResponseError" ":" ws multiline-string /* applies when fetchMode = HOOK; type: JAVASCRIPT */ | "eventFetchOfflinePage" ":" ws multiline-string /* applies when fetchMode = HOOK; type: JAVASCRIPT */ | "eventFetchNetworkFallback" ":" ws multiline-string /* applies when fetchMode = HOOK; type: JAVASCRIPT */ | "syncMode" ":" ws ( "default" | "custom" ) /* required; applies when mode = CUSTOM; type: SELECT LIST */ | "eventSync" ":" ws multiline-string /* applies when syncMode = CUSTOM; type: JAVASCRIPT */ | "pushMode" ":" ws ( "default" | "custom" | "hook" ) /* required; applies when mode = CUSTOM; type: SELECT LIST */ | "eventPush" ":" ws multiline-string /* applies when pushMode = CUSTOM; type: JAVASCRIPT */ | "eventPushBefore" ":" ws multiline-string /* applies when pushMode = HOOK; type: JAVASCRIPT */ | "eventPushAfter" ":" ws multiline-string /* applies when pushMode = HOOK; type: JAVASCRIPT */ | "notificationClickMode" ":" ws ( "default" | "custom" | "hook" ) /* required; applies when mode = CUSTOM; type: SELECT LIST */ | "eventNotificationClick" ":" ws multiline-string /* applies when notificationClickMode = CUSTOM; type: JAVASCRIPT */ | "evenNotificationClickBefore" ":" ws multiline-string /* applies when notificationClickMode = HOOK; type: JAVASCRIPT */ | "evenNotificationClickAfter" ":" ws multiline-string /* applies when notificationClickMode = HOOK; type: JAVASCRIPT */ | "notificationCloseMode" ":" ws ( "default" | "custom" | "hook" ) /* required; applies when mode = CUSTOM; type: SELECT LIST */ | "evenNotificationClose" ":" ws multiline-string /* applies when notificationCloseMode = CUSTOM; type: JAVASCRIPT */ | "canMakePaymentMode" ":" ws ( "default" | "custom" ) /* required; applies when mode = CUSTOM; type: SELECT LIST */ | "evenCanMakePayment" ":" ws multiline-string /* applies when canMakePaymentMode = CUSTOM; type: JAVASCRIPT */ | "paymentRequestMode" ":" ws ( "default" | "custom" ) /* required; applies when mode = CUSTOM; type: SELECT LIST */ | "evenPaymentRequest" ":" ws multiline-string /* applies when paymentRequestMode = CUSTOM; type: JAVASCRIPT */ app-row-search ::= indent "rowSearch" ws "{" line-end ( app-row-search-property-line )* indent "}" line-end app-row-search-property-line ::= indent app-row-search-property line-end app-row-search-property ::= "tokenize" ":" ws boolean /* required; type: YES NO */ | "textQueryFunction" ":" ws ( "searchEngine" | "expertSearch" | "custom" ) /* type: SELECT LIST */ | "customFunctionName" ":" ws string-like-value /* required; applies when textQueryFunction = CUSTOM; type: TEXT */ app-char-value-comparison ::= indent "charValueComparison" ws "{" line-end ( app-char-value-comparison-property-line )* indent "}" line-end app-char-value-comparison-property-line ::= indent app-char-value-comparison-property line-end app-char-value-comparison-property ::= "mode" ":" ws string-like-value /* type: TEXT */ | "behavior" ":" ws ( "binary" | "linguistic" ) /* type: SELECT LIST */ app-report-printing ::= indent "reportPrinting" ws "{" line-end ( app-report-printing-property-line )* indent "}" line-end app-report-printing-property-line ::= indent app-report-printing-property line-end app-report-printing-property ::= "type" ":" ws ( "native" | "remote" | "useInstanceSettings" ) /* required; type: SELECT LIST */ | "remotePrintServer" ":" ws string-like-value /* required; applies when type = REMOTE; type: SELECT LIST */ | "credentials" ":" ws reference /* applies when type = REMOTE; type: COMPONENT */ app-file-storage ::= indent "fileStorage" ws "{" line-end ( app-file-storage-property-line )* indent "}" line-end app-file-storage-property-line ::= indent app-file-storage-property line-end app-file-storage-property ::= "type" ":" ws ( "database" | "objectStorage" ) /* required; type: SELECT LIST */ | "fileServer" ":" ws string-like-value /* applies when type = OBJECT_STORE; type: SELECT LIST */ app-error-handling ::= indent "errorHandling" ws "{" line-end ( app-error-handling-property-line )* indent "}" line-end app-error-handling-property-line ::= indent app-error-handling-property line-end app-error-handling-property ::= "defaultDisplayLocation" ":" ws ( "inlineWithFieldAndInNotification" | "inlineWithField" | "inlineInNotification" ) /* required; type: SELECT LIST */ | "errorHandlingFunctionName" ":" ws string-like-value /* type: TEXT */ app-runtime ::= indent "runtime" ws "{" line-end ( app-runtime-property-line )* indent "}" line-end app-runtime-property-line ::= indent app-runtime-property line-end app-runtime-property ::= "friendlyUrls" ":" ws boolean /* required; type: YES NO */ | "allowFeedback" ":" ws boolean /* required; type: YES NO */ | "logging" ":" ws boolean /* required; type: YES NO */ | "debugging" ":" ws boolean /* required; type: YES NO */ | "compatibilityMode" ":" ws ( "26.1" | "24.2" | "21.2" | "19.2-20.1-20.2-21.1" | "19.1" | "5.1-18.1-18.2" | "5.0" | "4.2" | "4.1" | "4.0" ) /* required; type: SELECT LIST */ | "accessibleReadOnlyItems" ":" ws boolean /* required; type: YES NO */ app-static-files ::= indent "staticFiles" ws "{" line-end ( app-static-files-property-line )* indent "}" line-end app-static-files-property-line ::= indent app-static-files-property line-end app-static-files-property ::= "appFilesPath" ":" ws string-like-value /* type: TEXT */ | "apexFilesPath" ":" ws string-like-value /* type: TEXT */ app-proxy ::= indent "proxy" ws "{" line-end ( app-proxy-property-line )* indent "}" line-end app-proxy-property-line ::= indent app-proxy-property line-end app-proxy-property ::= "proxyServer" ":" ws string-like-value /* type: TEXT */ | "noProxyDomains" ":" ws string-like-value /* applies when proxyServer is set; type: TEXT */ app-availability ::= indent "availability" ws "{" line-end ( app-availability-property-line )* indent "}" line-end app-availability-property-line ::= indent app-availability-property line-end app-availability-property ::= "status" ":" ws ( "available" | "availableWithDevToolbar" | "availableDevsOnly" | "restricted" | "unavailable" | "unavailableStatusShownWithPlsql" | "unavailableRedirectToUrl" ) /* required; type: SELECT LIST */ | "message" ":" ws multiline-string /* required; applies when status in (UNAVAILABLE, UNAVAILABLE_PLSQL, UNAVAILABLE_URL); type: TEXT EDITOR */ | "restrictUserList" ":" ws array-of-string-like-value /* required; applies when status = RESTRICTED_ACCESS; type: TEXT EDITOR */ | "globalNotificationMessage" ":" ws multiline-string /* type: TEXT EDITOR */ | "buildStatus" ":" ws ( "runOnly" | "runAndBuild" ) /* required; applies when type in (STANDARD, PATTERN); type: SELECT LIST */ app-advanced ::= indent "advanced" ws "{" line-end ( app-advanced-property-line )* indent "}" line-end app-advanced-property-line ::= indent app-advanced-property line-end app-advanced-property ::= "exactSubstitutions" ":" ws boolean /* required; type: YES NO */ | "passEcid" ":" ws boolean /* required; type: YES NO */ | "modernizeApp" ":" ws boolean /* required; type: YES NO */ | "emailFromAddress" ":" ws string-like-value /* type: TEXT */ | "copyrightBanner" ":" ws multiline-string /* type: TEXT EDITOR */ | "faviconHtml" ":" ws multiline-string /* type: TEXT EDITOR */ | "maxBackgroundPageProcessJobs" ":" ws number /* type: INTEGER */ | "vacationRuleProcedureName" ":" ws string-like-value /* type: TEXT */ | "mediaType" ":" ws string-like-value /* type: TEXT */ | "opentelemetryProductFamily" ":" ws string-like-value /* type: TEXT */ | "appBuilderIconName" ":" ws string-like-value /* type: TEXT */ app-comments ::= indent "comments" ws "{" line-end ( app-comments-property-line )* indent "}" line-end app-comments-property-line ::= indent app-comments-property line-end app-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ app-child-component ::= ai-agent | app-computation | app-item | app-process | app-setting | authentication | authorization | automation | breadcrumb | build-option-a | classic-navigation-bar-entry | component-group | component-setting | concatenated-file | data-load-definition | developer-comment | dynamic-translation | email-template | file-c | json-duality-view | json-source | language-mapping | legacy-data-load-definition | list | lov | map-background | page | page-group | plugin | pwa-screenshot | pwa-shortcut | report-layout | report-query | rest-data-source | role | search-config | shortcut | substitution-a | supporting-object | task-definition | text-message | theme | workflow /* aiAgent */ /* direct properties use default group: identification */ ai-agent ::= "aiAgent" ( required-ws component-id )? ws "(" line-end ( ai-agent-body-line )* indent ")" line-end ai-agent-body-line ::= ai-agent-direct-property-line | ai-agent-group-block | ai-agent-child-component ai-agent-direct-property-line ::= indent ai-agent-direct-property line-end ai-agent-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ ai-agent-group-block ::= ai-agent-gen-ai | ai-agent-response-format | ai-agent-advanced | ai-agent-subscription | ai-agent-comments ai-agent-gen-ai ::= indent "genAI" ws "{" line-end ( ai-agent-gen-ai-property-line )* indent "}" line-end ai-agent-gen-ai-property-line ::= indent ai-agent-gen-ai-property line-end ai-agent-gen-ai-property ::= "service" ":" ws reference /* type: COMPONENT */ | "systemPrompt" ":" ws multiline-string /* type: TEXT EDITOR */ | "welcomeMessage" ":" ws multiline-string /* type: HTML */ ai-agent-response-format ::= indent "responseFormat" ws "{" line-end ( ai-agent-response-format-property-line )* indent "}" line-end ai-agent-response-format-property-line ::= indent ai-agent-response-format-property line-end ai-agent-response-format-property ::= "type" ":" ws ( "text" | "jsonObject" ) /* required; type: SELECT LIST */ | "jsonSchema" ":" ws multiline-string /* required; applies when type = JSON_OBJECT; type: JSON */ ai-agent-advanced ::= indent "advanced" ws "{" line-end ( ai-agent-advanced-property-line )* indent "}" line-end ai-agent-advanced-property-line ::= indent ai-agent-advanced-property line-end ai-agent-advanced-property ::= "temperature" ":" ws number /* type: NUMBER */ | "staticId" ":" ws string-like-value /* required; type: STATIC ID */ ai-agent-subscription ::= indent "subscription" ws "{" line-end ( ai-agent-subscription-property-line )* indent "}" line-end ai-agent-subscription-property-line ::= indent ai-agent-subscription-property line-end ai-agent-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ ai-agent-comments ::= indent "comments" ws "{" line-end ( ai-agent-comments-property-line )* indent "}" line-end ai-agent-comments-property-line ::= indent ai-agent-comments-property line-end ai-agent-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ ai-agent-child-component ::= tool /* tool */ /* direct properties use default group: identification */ tool ::= "tool" ( required-ws component-id )? ws "(" line-end ( tool-body-line )* indent ")" line-end tool-body-line ::= tool-direct-property-line | tool-group-block | tool-child-component tool-direct-property-line ::= indent tool-direct-property line-end tool-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "type" ":" ws string-like-value /* required; type: SUPPORTED UI */ | "executionPoint" ":" ws string-like-value /* required; type: SELECT LIST */ | "description" ":" ws multiline-string /* applies when executionPoint = ON_DEMAND; type: TEXT EDITOR */ tool-group-block ::= tool-user-approval | tool-notification | tool-advanced | tool-server-side-condition | tool-security | tool-config | tool-comments tool-user-approval ::= indent "userApproval" ws "{" line-end ( tool-user-approval-property-line )* indent "}" line-end tool-user-approval-property-line ::= indent tool-user-approval-property line-end tool-user-approval-property ::= "requiresConfirmation" ":" ws boolean /* required; applies when executionPoint = ON_DEMAND; type: YES NO */ | "title" ":" ws string-like-value /* applies when requiresConfirmation = Y; type: TEXT */ | "message" ":" ws multiline-string /* required; applies when requiresConfirmation = Y; type: TEXT EDITOR */ | "confirmLabel" ":" ws string-like-value /* applies when requiresConfirmation = Y; type: TEXT */ | "cancelLabel" ":" ws string-like-value /* applies when requiresConfirmation = Y; type: TEXT */ tool-notification ::= indent "notification" ws "{" line-end ( tool-notification-property-line )* indent "}" line-end tool-notification-property-line ::= indent tool-notification-property line-end tool-notification-property ::= "message" ":" ws multiline-string /* applies when executionPoint = ON_DEMAND; type: TEXT EDITOR */ | "type" ":" ws ( "info" | "success" ) /* applies when message is set; type: SELECT LIST */ tool-advanced ::= indent "advanced" ws "{" line-end ( tool-advanced-property-line )* indent "}" line-end tool-advanced-property-line ::= indent tool-advanced-property line-end tool-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ tool-server-side-condition ::= indent "serverSideCondition" ws "{" line-end ( tool-server-side-condition-property-line )* indent "}" line-end tool-server-side-condition-property-line ::= indent tool-server-side-condition-property line-end tool-server-side-condition-property ::= "type" ":" ws ( "anyUserPromptContains" | "lastUserPromptContains" | "rowsReturned" | "noRowsReturned" | "expression" | "functionBody" | "never" ) /* type: SELECT LIST */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (ANY_AI_USER_PROMPT_CONTAINS, LAST_AI_USER_PROMPT_CONTAINS); type: TEXT */ tool-security ::= indent "security" ws "{" line-end ( tool-security-property-line )* indent "}" line-end tool-security-property-line ::= indent tool-security-property line-end tool-security-property ::= "authorizationScheme" ":" ws reference /* type: COMPONENT */ tool-config ::= indent "config" ws "{" line-end ( tool-config-property-line )* indent "}" line-end tool-config-property-line ::= indent tool-config-property line-end tool-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ tool-comments ::= indent "comments" ws "{" line-end ( tool-comments-property-line )* indent "}" line-end tool-comments-property-line ::= indent tool-comments-property line-end tool-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ tool-child-component ::= parameter-c /* parameter */ /* direct properties use default group: identification */ parameter-c ::= "parameter" ( required-ws component-id )? ws "(" line-end ( parameter-c-body-line )* indent ")" line-end parameter-c-body-line ::= parameter-c-direct-property-line | parameter-c-group-block parameter-c-direct-property-line ::= indent parameter-c-direct-property line-end parameter-c-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "description" ":" ws multiline-string /* type: TEXT EDITOR */ parameter-c-group-block ::= parameter-c-value | parameter-c-validation parameter-c-value ::= indent "value" ws "{" line-end ( parameter-c-value-property-line )* indent "}" line-end parameter-c-value-property-line ::= indent parameter-c-value-property line-end parameter-c-value-property ::= "dataType" ":" ws ( "varchar2" | "clob" | "number" | "boolean" ) /* required; type: SELECT LIST */ parameter-c-validation ::= indent "validation" ws "{" line-end ( parameter-c-validation-property-line )* indent "}" line-end parameter-c-validation-property-line ::= indent parameter-c-validation-property line-end parameter-c-validation-property ::= "required" ":" ws boolean /* required; type: YES NO */ | "allowedValues" ":" ws multiline-string /* type: JSON */ /* appComputation */ /* direct properties use default group: identification */ app-computation ::= "appComputation" ( required-ws component-id )? ws "(" line-end ( app-computation-body-line )* indent ")" line-end app-computation-body-line ::= app-computation-direct-property-line | app-computation-group-block app-computation-direct-property-line ::= indent app-computation-direct-property line-end app-computation-direct-property ::= "itemName" ":" ws string-like-value /* required; type: ITEM */ app-computation-group-block ::= app-computation-execution | app-computation-computation | app-computation-error | app-computation-advanced | app-computation-server-side-condition | app-computation-security | app-computation-config | app-computation-subscription | app-computation-comments app-computation-execution ::= indent "execution" ws "{" line-end ( app-computation-execution-property-line )* indent "}" line-end app-computation-execution-property-line ::= indent app-computation-execution-property line-end app-computation-execution-property ::= "sequence" ":" ws number /* required; type: NUMBER */ | "point" ":" ws ( "newSession" | "afterAuthentication" | "beforeHeader" | "afterHeader" | "beforeRegions" | "afterRegions" | "beforeFooter" | "afterFooter" | "afterSubmit" ) /* required; type: SELECT LIST */ app-computation-computation ::= indent "computation" ws "{" line-end ( app-computation-computation-property-line )* indent "}" line-end app-computation-computation-property-line ::= indent app-computation-computation-property line-end app-computation-computation-property ::= "type" ":" ws ( "staticValue" | "item" | "sqlQuerySingleValue" | "sqlQueryMultipleValues" | "expression" | "functionBody" | "preference" ) /* required; type: SELECT LIST */ | "staticValue" ":" ws string-like-value /* applies when type = STATIC_ASSIGNMENT; type: TEXT */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = QUERY; type: SQL */ | "computationProcessed" ":" ws ( "newSession" | "replaceExisting" | "addToExisting" | "raiseErrorOnReplace" | "replaceNullValues" ) /* type: SELECT LIST */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = QUERY_COLON; type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT */ | "itemName" ":" ws string-like-value /* required; applies when type = ITEM_VALUE; type: ITEM */ | "preference" ":" ws string-like-value /* required; applies when type = SET_ITEM_EQUAL_THIS_PREFERENCE; type: TEXT */ app-computation-error ::= indent "error" ws "{" line-end ( app-computation-error-property-line )* indent "}" line-end app-computation-error-property-line ::= indent app-computation-error-property line-end app-computation-error-property ::= "errorMessage" ":" ws multiline-string /* type: TEXT EDITOR */ app-computation-advanced ::= indent "advanced" ws "{" line-end ( app-computation-advanced-property-line )* indent "}" line-end app-computation-advanced-property-line ::= indent app-computation-advanced-property line-end app-computation-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ app-computation-server-side-condition ::= indent "serverSideCondition" ws "{" line-end ( app-computation-server-side-condition-property-line )* indent "}" line-end app-computation-server-side-condition-property-line ::= indent app-computation-server-side-condition-property line-end app-computation-server-side-condition-property ::= "type" ":" ws string-like-value /* type: SELECT LIST; large enum list omitted */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "preference" ":" ws string-like-value /* required; type: TEXT */ | "page" ":" ws number /* required; applies when type in (CURRENT_PAGE_EQUALS_CONDITION, CURRENT_PAGE_NOT_EQUAL_CONDITION); type: PAGE */ | "pages" ":" ws array-of-number /* required; applies when type in (CURRENT_PAGE_IN_CONDITION, CURRENT_PAGE_NOT_IN_CONDITION); type: PAGE */ | "text" ":" ws string-like-value /* required; type: TEXT */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (VALUE_OF_ITEM_IN_CONDITION_IN_COLON_DELIMITED_LIST, VALUE_OF_ITEM_IN_CONDITION_NOT_IN_COLON_DELIMITED_LIST); type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "value" ":" ws string-like-value /* required; applies when type in (DISPLAY_COND_IN_COND_TEXT, DISPLAY_COND_NOT_IN_COND_TEXT, DISPLAY_COND_EQUAL_COND_TEXT, DISP_COND_NOT_EQUAL_COND_TEXT); type: TEXT */ app-computation-security ::= indent "security" ws "{" line-end ( app-computation-security-property-line )* indent "}" line-end app-computation-security-property-line ::= indent app-computation-security-property line-end app-computation-security-property ::= "authorizationScheme" ":" ws reference /* type: COMPONENT */ app-computation-config ::= indent "config" ws "{" line-end ( app-computation-config-property-line )* indent "}" line-end app-computation-config-property-line ::= indent app-computation-config-property line-end app-computation-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ app-computation-subscription ::= indent "subscription" ws "{" line-end ( app-computation-subscription-property-line )* indent "}" line-end app-computation-subscription-property-line ::= indent app-computation-subscription-property line-end app-computation-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ app-computation-comments ::= indent "comments" ws "{" line-end ( app-computation-comments-property-line )* indent "}" line-end app-computation-comments-property-line ::= indent app-computation-comments-property line-end app-computation-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* appItem */ /* direct properties use default group: identification */ app-item ::= "appItem" ( required-ws component-id )? ws "(" line-end ( app-item-body-line )* indent ")" line-end app-item-body-line ::= app-item-direct-property-line | app-item-group-block app-item-direct-property-line ::= indent app-item-direct-property line-end app-item-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "scope" ":" ws ( "app" | "global" ) /* required; type: SELECT LIST */ app-item-group-block ::= app-item-security | app-item-subscription | app-item-config | app-item-comments app-item-security ::= indent "security" ws "{" line-end ( app-item-security-property-line )* indent "}" line-end app-item-security-property-line ::= indent app-item-security-property line-end app-item-security-property ::= "sessionStateDataType" ":" ws ( "number" | "varchar" ) /* required; type: SELECT LIST */ | "sessionStateProtection" ":" ws ( "unrestricted" | "checksumRequiredAppLevel" | "checksumRequiredUserLevel" | "checksumRequiredSessionLevel" | "restricted" ) /* required; type: SELECT LIST */ | "escapeSpecialChars" ":" ws boolean /* required; type: YES NO */ app-item-subscription ::= indent "subscription" ws "{" line-end ( app-item-subscription-property-line )* indent "}" line-end app-item-subscription-property-line ::= indent app-item-subscription-property line-end app-item-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ app-item-config ::= indent "config" ws "{" line-end ( app-item-config-property-line )* indent "}" line-end app-item-config-property-line ::= indent app-item-config-property line-end app-item-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ app-item-comments ::= indent "comments" ws "{" line-end ( app-item-comments-property-line )* indent "}" line-end app-item-comments-property-line ::= indent app-item-comments-property line-end app-item-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* appProcess */ /* direct properties use default group: identification */ app-process ::= "appProcess" ( required-ws component-id )? ws "(" line-end ( app-process-body-line )* indent ")" line-end app-process-body-line ::= app-process-direct-property-line | app-process-group-block app-process-direct-property-line ::= indent app-process-direct-property line-end app-process-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "type" ":" ws string-like-value /* required; type: SUPPORTED UI */ app-process-group-block ::= app-process-source | app-process-execution | app-process-error | app-process-advanced | app-process-server-side-condition | app-process-security | app-process-config | app-process-comments | app-process-subscription app-process-source ::= indent "source" ws "{" line-end ( app-process-source-property-line )* indent "}" line-end app-process-source-property-line ::= indent app-process-source-property line-end app-process-source-property ::= "location" ":" ws ( "localDatabase" | "restEnabledSql" ) /* required; applies when type = NATIVE_PLSQL; type: SELECT LIST */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when location = LOCAL; type: CODE LANGUAGE */ | "plsqlCode" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL */ | "javaScriptCode" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT */ | "remoteServer" ":" ws reference /* required; applies when location = REMOTE; type: COMPONENT */ | "plsqlCode" ":" ws multiline-string /* required; applies when location = REMOTE; type: PLSQL */ app-process-execution ::= indent "execution" ws "{" line-end ( app-process-execution-property-line )* indent "}" line-end app-process-execution-property-line ::= indent app-process-execution-property line-end app-process-execution-property ::= "sequence" ":" ws number /* required; type: NUMBER */ | "point" ":" ws ( "afterAuthentication" | "newSession" | "beforeHeader" | "afterHeader" | "beforeRegions" | "afterRegions" | "beforeFooter" | "afterFooter" | "afterSubmit" | "processing" | "ajaxCallback" ) /* required; type: SELECT LIST */ app-process-error ::= indent "error" ws "{" line-end ( app-process-error-property-line )* indent "}" line-end app-process-error-property-line ::= indent app-process-error-property line-end app-process-error-property ::= "errorMessage" ":" ws multiline-string /* type: TEXT EDITOR */ | "displayLocation" ":" ws ( "inlineInNotification" | "onErrorPage" ) /* required; applies when point in (ON_SUBMIT_BEFORE_COMPUTATION, AFTER_SUBMIT); type: SELECT LIST */ app-process-advanced ::= indent "advanced" ws "{" line-end ( app-process-advanced-property-line )* indent "}" line-end app-process-advanced-property-line ::= indent app-process-advanced-property line-end app-process-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ app-process-server-side-condition ::= indent "serverSideCondition" ws "{" line-end ( app-process-server-side-condition-property-line )* indent "}" line-end app-process-server-side-condition-property-line ::= indent app-process-server-side-condition-property line-end app-process-server-side-condition-property ::= "type" ":" ws string-like-value /* type: SELECT LIST; large enum list omitted */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "preference" ":" ws string-like-value /* required; type: TEXT */ | "page" ":" ws number /* required; applies when type in (CURRENT_PAGE_EQUALS_CONDITION, CURRENT_PAGE_NOT_EQUAL_CONDITION); type: PAGE */ | "pages" ":" ws array-of-number /* required; applies when type in (CURRENT_PAGE_IN_CONDITION, CURRENT_PAGE_NOT_IN_CONDITION); type: PAGE */ | "text" ":" ws string-like-value /* required; type: TEXT */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (VALUE_OF_ITEM_IN_CONDITION_IN_COLON_DELIMITED_LIST, VALUE_OF_ITEM_IN_CONDITION_NOT_IN_COLON_DELIMITED_LIST); type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "value" ":" ws string-like-value /* required; applies when type in (DISPLAY_COND_IN_COND_TEXT, DISPLAY_COND_NOT_IN_COND_TEXT, DISPLAY_COND_EQUAL_COND_TEXT, DISP_COND_NOT_EQUAL_COND_TEXT); type: TEXT */ app-process-security ::= indent "security" ws "{" line-end ( app-process-security-property-line )* indent "}" line-end app-process-security-property-line ::= indent app-process-security-property line-end app-process-security-property ::= "authorizationScheme" ":" ws reference /* type: COMPONENT */ app-process-config ::= indent "config" ws "{" line-end ( app-process-config-property-line )* indent "}" line-end app-process-config-property-line ::= indent app-process-config-property line-end app-process-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ app-process-comments ::= indent "comments" ws "{" line-end ( app-process-comments-property-line )* indent "}" line-end app-process-comments-property-line ::= indent app-process-comments-property line-end app-process-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ app-process-subscription ::= indent "subscription" ws "{" line-end ( app-process-subscription-property-line )* indent "}" line-end app-process-subscription-property-line ::= indent app-process-subscription-property line-end app-process-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ /* appSetting */ /* direct properties use default group: identification */ app-setting ::= "appSetting" ( required-ws component-id )? ws "(" line-end ( app-setting-body-line )* indent ")" line-end app-setting-body-line ::= app-setting-direct-property-line | app-setting-group-block app-setting-direct-property-line ::= indent app-setting-direct-property line-end app-setting-direct-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ app-setting-group-block ::= app-setting-value | app-setting-validation | app-setting-config | app-setting-subscription | app-setting-comments app-setting-value ::= indent "value" ws "{" line-end ( app-setting-value-property-line )* indent "}" line-end app-setting-value-property-line ::= indent app-setting-value-property line-end app-setting-value-property ::= "staticValue" ":" ws multiline-string /* type: TEXT EDITOR */ | "onUpgradeKeepValue" ":" ws boolean /* required; type: YES NO */ app-setting-validation ::= indent "validation" ws "{" line-end ( app-setting-validation-property-line )* indent "}" line-end app-setting-validation-property-line ::= indent app-setting-validation-property line-end app-setting-validation-property ::= "required" ":" ws boolean /* required; type: YES NO */ | "validValues" ":" ws string-like-value /* type: TEXT */ app-setting-config ::= indent "config" ws "{" line-end ( app-setting-config-property-line )* indent "}" line-end app-setting-config-property-line ::= indent app-setting-config-property line-end app-setting-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ app-setting-subscription ::= indent "subscription" ws "{" line-end ( app-setting-subscription-property-line )* indent "}" line-end app-setting-subscription-property-line ::= indent app-setting-subscription-property line-end app-setting-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ app-setting-comments ::= indent "comments" ws "{" line-end ( app-setting-comments-property-line )* indent "}" line-end app-setting-comments-property-line ::= indent app-setting-comments-property line-end app-setting-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* authentication */ /* direct properties use default group: identification */ authentication ::= "authentication" ( required-ws component-id )? ws "(" line-end ( authentication-body-line )* indent ")" line-end authentication-body-line ::= authentication-direct-property-line | authentication-group-block authentication-direct-property-line ::= indent authentication-direct-property line-end authentication-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "type" ":" ws string-like-value /* required; type: SUPPORTED UI */ authentication-group-block ::= authentication-source | authentication-session-not-valid | authentication-login-processing | authentication-post-logout | authentication-session-sharing | authentication-real-app-security | authentication-advanced | authentication-help | authentication-subscription | authentication-comments authentication-source ::= indent "source" ws "{" line-end ( authentication-source-property-line )* indent "}" line-end authentication-source-property-line ::= indent authentication-source-property line-end authentication-source-property ::= "plsqlCode" ":" ws multiline-string /* type: PLSQL */ authentication-session-not-valid ::= indent "sessionNotValid" ws "{" line-end ( authentication-session-not-valid-property-line )* indent "}" line-end authentication-session-not-valid-property-line ::= indent authentication-session-not-valid-property line-end authentication-session-not-valid-property ::= "verifyFunctionName" ":" ws string-like-value /* type: TEXT */ | "redirectTo" ":" ws ( "loginPage" | "builtInLoginPage" | "url" ) /* required; applies when type supports INVALID_SESSION; type: SELECT LIST */ | "invalidSessionUrl" ":" ws value /* applies when redirectTo = URL; type: LINK */ authentication-login-processing ::= indent "loginProcessing" ws "{" line-end ( authentication-login-processing-property-line )* indent "}" line-end authentication-login-processing-property-line ::= indent authentication-login-processing-property line-end authentication-login-processing-property ::= "preAuthenticationProcedureName" ":" ws string-like-value /* type: TEXT */ | "postAuthenticationProcedureName" ":" ws string-like-value /* type: TEXT */ | "switchInSession" ":" ws boolean /* required; type: YES NO */ authentication-post-logout ::= indent "postLogout" ws "{" line-end ( authentication-post-logout-property-line )* indent "}" line-end authentication-post-logout-property-line ::= indent authentication-post-logout-property line-end authentication-post-logout-property ::= "redirectTo" ":" ws ( "homePage" | "url" ) /* required; type: SELECT LIST */ | "url" ":" ws string-like-value /* required; applies when redirectTo = URL; type: TEXT */ authentication-session-sharing ::= indent "sessionSharing" ws "{" line-end ( authentication-session-sharing-property-line )* indent "}" line-end authentication-session-sharing-property-line ::= indent authentication-session-sharing-property line-end authentication-session-sharing-property ::= "type" ":" ws ( "app" | "workspaceSharing" | "custom" ) /* required; type: SELECT LIST */ | "cookieName" ":" ws string-like-value /* applies when type = C; type: TEXT */ | "cookiePath" ":" ws string-like-value /* applies when type = C; type: TEXT */ | "cookieDomain" ":" ws string-like-value /* applies when type = C; type: TEXT */ | "secure" ":" ws boolean /* required; applies when type = C; type: YES NO */ authentication-real-app-security ::= indent "realAppSecurity" ws "{" line-end ( authentication-real-app-security-property-line )* indent "}" line-end authentication-real-app-security-property-line ::= indent authentication-real-app-security-property line-end authentication-real-app-security-property ::= "rasMode" ":" ws ( "disabled" | "externalUsers" | "internalUsers" ) /* required; type: SELECT LIST */ | "dynamicRoles" ":" ws string-like-value /* type: TEXT */ | "namespaces" ":" ws string-like-value /* type: TEXT */ authentication-advanced ::= indent "advanced" ws "{" line-end ( authentication-advanced-property-line )* indent "}" line-end authentication-advanced-property-line ::= indent authentication-advanced-property line-end authentication-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ authentication-help ::= indent "help" ws "{" line-end ( authentication-help-property-line )* indent "}" line-end authentication-help-property-line ::= indent authentication-help-property line-end authentication-help-property ::= "helpText" ":" ws multiline-string /* type: HTML */ authentication-subscription ::= indent "subscription" ws "{" line-end ( authentication-subscription-property-line )* indent "}" line-end authentication-subscription-property-line ::= indent authentication-subscription-property line-end authentication-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ authentication-comments ::= indent "comments" ws "{" line-end ( authentication-comments-property-line )* indent "}" line-end authentication-comments-property-line ::= indent authentication-comments-property line-end authentication-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* authorization */ /* direct properties use default group: identification */ authorization ::= "authorization" ( required-ws component-id )? ws "(" line-end ( authorization-body-line )* indent ")" line-end authorization-body-line ::= authorization-direct-property-line | authorization-group-block authorization-direct-property-line ::= indent authorization-direct-property line-end authorization-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "type" ":" ws string-like-value /* required; type: SUPPORTED UI */ authorization-group-block ::= authorization-error | authorization-advanced | authorization-subscription | authorization-comments authorization-error ::= indent "error" ws "{" line-end ( authorization-error-property-line )* indent "}" line-end authorization-error-property-line ::= indent authorization-error-property line-end authorization-error-property ::= "errorMessage" ":" ws multiline-string /* type: TEXT EDITOR */ authorization-advanced ::= indent "advanced" ws "{" line-end ( authorization-advanced-property-line )* indent "}" line-end authorization-advanced-property-line ::= indent authorization-advanced-property line-end authorization-advanced-property ::= "evaluationType" ":" ws ( "perSession" | "perPageView" | "perComponent" | "always" ) /* required; type: SELECT LIST */ | "staticId" ":" ws string-like-value /* required; type: STATIC ID */ authorization-subscription ::= indent "subscription" ws "{" line-end ( authorization-subscription-property-line )* indent "}" line-end authorization-subscription-property-line ::= indent authorization-subscription-property line-end authorization-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ authorization-comments ::= indent "comments" ws "{" line-end ( authorization-comments-property-line )* indent "}" line-end authorization-comments-property-line ::= indent authorization-comments-property line-end authorization-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* automation */ /* direct properties use default group: identification */ automation ::= "automation" ( required-ws component-id )? ws "(" line-end ( automation-body-line )* indent ")" line-end automation-body-line ::= automation-direct-property-line | automation-group-block | automation-child-component automation-direct-property-line ::= indent automation-direct-property line-end automation-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ automation-group-block ::= automation-execution | automation-source | automation-data-profile | automation-rest-synchronization | automation-external-filter-and-order-by | automation-local-post-processing | automation-column-mapping | automation-action-execution | automation-additional-code-execution | automation-advanced | automation-server-side-condition | automation-config | automation-comments automation-execution ::= indent "execution" ws "{" line-end ( automation-execution-property-line )* indent "}" line-end automation-execution-property-line ::= indent automation-execution-property line-end automation-execution-property ::= "type" ":" ws ( "onDemand" | "scheduled" ) /* required; type: SELECT LIST */ | "scheduleExpression" ":" ws multiline-string /* required; applies when type = POLLING; type: TEXT EDITOR */ | "scheduleStatus" ":" ws ( "active" | "disabled" | "error" ) /* required; applies when type = POLLING; type: SELECT LIST */ | "actionsInitiatedOn" ":" ws ( "rowsReturned" | "noRowsReturned" | "functionBodyReturningBoolean" | "always" ) /* required; type: SELECT LIST */ automation-source ::= indent "source" ws "{" line-end ( automation-source-property-line )* indent "}" line-end automation-source-property-line ::= indent automation-source-property line-end automation-source-property ::= "location" ":" ws ( "localDatabase" | "restEnabledSql" | "restSource" | "jsonDualityView" | "jsonSource" | "sampleData" ) /* required; applies when actionsInitiatedOn in (ROWS, NO_ROWS); type: SELECT LIST */ | "location" ":" ws ( "localDatabase" | "restEnabledSql" ) /* required; applies when actionsInitiatedOn = FUNC_BODY_RETURNING_BOOLEAN; type: SELECT LIST */ | "remoteServer" ":" ws reference /* required; applies when property matches or property matches; type: COMPONENT */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when actionsInitiatedOn = FUNC_BODY_RETURNING_BOOLEAN; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "sampleData" ":" ws ( "employees" | "tasks" | "products" | "projects" ) /* required; applies when location = SAMPLE_DATA; type: SELECT LIST */ | "type" ":" ws string-like-value /* required; applies when location in (LOCAL, REMOTE); type: SELECT LIST */ | "tableOwner" ":" ws string-like-value /* applies when type = TABLE; type: OWNER */ | "tableName" ":" ws string-like-value /* required; applies when type = TABLE; type: TABLE */ | "includeRowidColumn" ":" ws boolean /* required; applies when type = TABLE and remoteServer supports IS_ORACLE or not set; type: YES NO */ | "whereClause" ":" ws multiline-string /* applies when type = TABLE; type: WHERE CLAUSE */ | "graphOwner" ":" ws string-like-value /* applies when type = GRAPH; type: OWNER */ | "graphName" ":" ws string-like-value /* required; applies when type = GRAPH; type: GRAPH */ | "matchClause" ":" ws multiline-string /* required; applies when type = GRAPH; type: TEXT EDITOR */ | "columnsClause" ":" ws multiline-string /* required; applies when type = GRAPH; type: TEXT EDITOR */ | "whereClause" ":" ws multiline-string /* applies when type = GRAPH; type: WHERE CLAUSE */ | "orderByClause" ":" ws multiline-string /* applies when type = TABLE; type: ORDER BY CLAUSE */ | "orderByClause" ":" ws multiline-string /* applies when type = GRAPH; type: ORDER BY CLAUSE */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL; type: SQL */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNC_BODY_RETURNING_SQL; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY SQL */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY SQL */ | "restSource" ":" ws reference /* required; applies when location = WEB_SOURCE; type: COMPONENT */ | "jsonDualityView" ":" ws reference /* required; applies when location = DUALITY_VIEW; type: COMPONENT */ | "jsonSource" ":" ws reference /* required; applies when location = JSON_COLLECTION; type: COMPONENT */ | "optimizerHint" ":" ws string-like-value /* applies when location in (LOCAL, REMOTE, WEB_SOURCE, DUALITY_VIEW, JSON_COLLECTION); type: TEXT */ automation-data-profile ::= indent "dataProfile" ws "{" line-end ( automation-data-profile-property-line )* indent "}" line-end automation-data-profile-property-line ::= indent automation-data-profile-property line-end automation-data-profile-property ::= "nestedRows" ":" ws reference /* applies when restSource supports HAS_ARRAY_COLUMNS; type: COMPONENT */ | "nestedRows" ":" ws reference /* applies when jsonDualityView supports HAS_ARRAY_COLUMNS; type: COMPONENT */ | "nestedRows" ":" ws reference /* applies when jsonSource supports HAS_ARRAY_COLUMNS; type: COMPONENT */ automation-rest-synchronization ::= indent "restSynchronization" ws "{" line-end ( automation-rest-synchronization-property-line )* indent "}" line-end automation-rest-synchronization-property-line ::= indent automation-rest-synchronization-property line-end automation-rest-synchronization-property ::= "useLocalTable" ":" ws boolean /* required; applies when restSource supports HAS_SYNC_HAS_NO_ARRAY_COLUMNS or property matches or nestedRows supports IS_SYNCED; type: YES NO */ automation-external-filter-and-order-by ::= indent "externalFilterAndOrderBy" ws "{" line-end ( automation-external-filter-and-order-by-property-line )* indent "}" line-end automation-external-filter-and-order-by-property-line ::= indent automation-external-filter-and-order-by-property line-end automation-external-filter-and-order-by-property ::= "enabled" ":" ws boolean /* required; applies when restSource is set and useLocalTable in (N, $NULL$) or not set; type: YES NO */ | "filter" ":" ws multiline-string /* applies when enabled = Y; type: TEXT EDITOR */ | "orderBy" ":" ws multiline-string /* applies when enabled = Y; type: TEXT EDITOR */ automation-local-post-processing ::= indent "localPostProcessing" ws "{" line-end ( automation-local-post-processing-property-line )* indent "}" line-end automation-local-post-processing-property-line ::= indent automation-local-post-processing-property line-end automation-local-post-processing-property ::= "type" ":" ws ( "whereOrderByClause" | "sqlQuery" | "plsqlFunctionBody" ) /* applies when restSource is set; type: SELECT LIST */ | "whereClause" ":" ws multiline-string /* applies when type = WHERE_ORDER_BY_CLAUSE; type: WHERE CLAUSE */ | "orderByClause" ":" ws multiline-string /* applies when type = WHERE_ORDER_BY_CLAUSE; type: ORDER BY CLAUSE */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL; type: SQL */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNC_BODY_RETURNING_SQL; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY SQL */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY SQL */ | "type" ":" ws ( "whereOrderByClause" | "sqlQuery" | "plsqlFunctionBody" ) /* applies when jsonDualityView is set; type: SELECT LIST */ | "whereClause" ":" ws multiline-string /* applies when type = WHERE_ORDER_BY_CLAUSE; type: WHERE CLAUSE */ | "orderByClause" ":" ws multiline-string /* applies when type = WHERE_ORDER_BY_CLAUSE; type: ORDER BY CLAUSE */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL; type: SQL */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNC_BODY_RETURNING_SQL; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY SQL */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY SQL */ | "type" ":" ws ( "whereOrderByClause" | "sqlQuery" | "plsqlFunctionBody" ) /* applies when jsonSource is set; type: SELECT LIST */ | "whereClause" ":" ws multiline-string /* applies when type = WHERE_ORDER_BY_CLAUSE; type: WHERE CLAUSE */ | "orderByClause" ":" ws multiline-string /* applies when type = WHERE_ORDER_BY_CLAUSE; type: ORDER BY CLAUSE */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL; type: SQL */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNC_BODY_RETURNING_SQL; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY SQL */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY SQL */ automation-column-mapping ::= indent "columnMapping" ws "{" line-end ( automation-column-mapping-property-line )* indent "}" line-end automation-column-mapping-property-line ::= indent automation-column-mapping-property line-end automation-column-mapping-property ::= "primaryKeyColumn" ":" ws string-like-value /* applies when actionsInitiatedOn = ROWS; type: COLUMN */ automation-action-execution ::= indent "actionExecution" ws "{" line-end ( automation-action-execution-property-line )* indent "}" line-end automation-action-execution-property-line ::= indent automation-action-execution-property line-end automation-action-execution-property ::= "commit" ":" ws ( "once" | "eachRow" ) /* required; applies when actionsInitiatedOn = ROWS; type: SELECT LIST */ | "maxRowsToProcess" ":" ws number /* applies when actionsInitiatedOn = ROWS; type: INTEGER */ | "actionErrorHandling" ":" ws ( "ignore" | "terminate" | "disable" ) /* required; type: SELECT LIST */ automation-additional-code-execution ::= indent "additionalCodeExecution" ws "{" line-end ( automation-additional-code-execution-property-line )* indent "}" line-end automation-additional-code-execution-property-line ::= indent automation-additional-code-execution-property line-end automation-additional-code-execution-property ::= "plsqlCode" ":" ws multiline-string /* type: PLSQL */ | "initProcedureName" ":" ws string-like-value /* type: TEXT */ | "beforeRowProcessingProcedureName" ":" ws string-like-value /* type: TEXT */ | "cleanupProcedureName" ":" ws string-like-value /* type: TEXT */ automation-advanced ::= indent "advanced" ws "{" line-end ( automation-advanced-property-line )* indent "}" line-end automation-advanced-property-line ::= indent automation-advanced-property line-end automation-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ automation-server-side-condition ::= indent "serverSideCondition" ws "{" line-end ( automation-server-side-condition-property-line )* indent "}" line-end automation-server-side-condition-property-line ::= indent automation-server-side-condition-property line-end automation-server-side-condition-property ::= "type" ":" ws ( "rowsReturned" | "noRowsReturned" | "expression" | "functionBody" | "never" ) /* type: SELECT LIST */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ automation-config ::= indent "config" ws "{" line-end ( automation-config-property-line )* indent "}" line-end automation-config-property-line ::= indent automation-config-property line-end automation-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ automation-comments ::= indent "comments" ws "{" line-end ( automation-comments-property-line )* indent "}" line-end automation-comments-property-line ::= indent automation-comments-property line-end automation-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ automation-child-component ::= action-a | parameter-f /* action */ /* direct properties use default group: identification */ action-a ::= "action" ( required-ws component-id )? ws "(" line-end ( action-a-body-line )* indent ")" line-end action-a-body-line ::= action-a-direct-property-line | action-a-group-block action-a-direct-property-line ::= indent action-a-direct-property line-end action-a-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "type" ":" ws string-like-value /* required; type: SUPPORTED UI */ action-a-group-block ::= action-a-source | action-a-execution | action-a-error | action-a-advanced | action-a-server-side-condition | action-a-config | action-a-comments action-a-source ::= indent "source" ws "{" line-end ( action-a-source-property-line )* indent "}" line-end action-a-source-property-line ::= indent action-a-source-property line-end action-a-source-property ::= "location" ":" ws ( "localDatabase" | "restEnabledSql" ) /* required; applies when type = NATIVE_PLSQL; type: SELECT LIST */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when location = LOCAL; type: CODE LANGUAGE */ | "plsqlCode" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL */ | "javaScriptCode" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT */ | "remoteServer" ":" ws reference /* required; applies when location = REMOTE; type: COMPONENT */ | "plsqlCode" ":" ws multiline-string /* required; applies when location = REMOTE; type: PLSQL */ action-a-execution ::= indent "execution" ws "{" line-end ( action-a-execution-property-line )* indent "}" line-end action-a-execution-property-line ::= indent action-a-execution-property line-end action-a-execution-property ::= "sequence" ":" ws number /* required; type: NUMBER */ action-a-error ::= indent "error" ws "{" line-end ( action-a-error-property-line )* indent "}" line-end action-a-error-property-line ::= indent action-a-error-property line-end action-a-error-property ::= "errorMessage" ":" ws multiline-string /* type: TEXT EDITOR */ | "stopExecutionOnError" ":" ws boolean /* required; type: YES NO */ action-a-advanced ::= indent "advanced" ws "{" line-end ( action-a-advanced-property-line )* indent "}" line-end action-a-advanced-property-line ::= indent action-a-advanced-property line-end action-a-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ action-a-server-side-condition ::= indent "serverSideCondition" ws "{" line-end ( action-a-server-side-condition-property-line )* indent "}" line-end action-a-server-side-condition-property-line ::= indent action-a-server-side-condition-property line-end action-a-server-side-condition-property ::= "type" ":" ws ( "rowsReturned" | "noRowsReturned" | "expression" | "functionBody" | "item=value" | "item!=value" | "itemIsNull" | "itemIsNotNull" | "itemIsZero" | "itemIsNotZero" | "itemIsNullOrZero" | "itemIsNotNullAndNotZero" | "itemContainsNoSpaces" | "itemIsNumeric" | "itemIsNotNumeric" | "itemIsAlphanumeric" | "itemIsInColonDelimitedList" | "itemIsNotInColonDelimitedList" | "textIsContainedInItem" | "text=value" | "text!=value" | "textIsContainedInValue" | "textIsNotContainedInValue" | "never" ) /* type: SELECT LIST */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "text" ":" ws string-like-value /* required; type: TEXT */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (VALUE_OF_ITEM_IN_CONDITION_IN_COLON_DELIMITED_LIST, VALUE_OF_ITEM_IN_CONDITION_NOT_IN_COLON_DELIMITED_LIST); type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "value" ":" ws string-like-value /* required; applies when type in (DISPLAY_COND_IN_COND_TEXT, DISPLAY_COND_NOT_IN_COND_TEXT, DISPLAY_COND_EQUAL_COND_TEXT, DISP_COND_NOT_EQUAL_COND_TEXT); type: TEXT */ | "executeCondition" ":" ws ( "forEachRow" | "once" ) /* required; applies when type is set and type != NEVER; type: SELECT LIST */ action-a-config ::= indent "config" ws "{" line-end ( action-a-config-property-line )* indent "}" line-end action-a-config-property-line ::= indent action-a-config-property line-end action-a-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ action-a-comments ::= indent "comments" ws "{" line-end ( action-a-comments-property-line )* indent "}" line-end action-a-comments-property-line ::= indent action-a-comments-property line-end action-a-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* parameter */ /* direct properties use default group: identification */ parameter-f ::= "parameter" ( required-ws component-id )? ws "(" line-end ( parameter-f-body-line )* indent ")" line-end parameter-f-body-line ::= parameter-f-direct-property-line | parameter-f-group-block parameter-f-direct-property-line ::= indent parameter-f-direct-property line-end parameter-f-direct-property ::= "name" ":" ws reference /* required; type: COMPONENT */ parameter-f-group-block ::= parameter-f-value parameter-f-value ::= indent "value" ws "{" line-end ( parameter-f-value-property-line )* indent "}" line-end parameter-f-value-property-line ::= indent parameter-f-value-property line-end parameter-f-value-property ::= "type" ":" ws ( "staticValue" | "restSourceDefault" | "item" | "sqlQuery" | "expression" | "functionBody" | "collectionClob" | "preference" | "null" ) /* required; type: SELECT LIST */ | "staticValue" ":" ws multiline-string /* required; applies when type = STATIC and name NOT_FEATURES BOOLEAN_PARAMETER; type: TEXT EDITOR */ | "staticValue" ":" ws ( "true" | "false" ) /* required; applies when type = STATIC and name supports BOOLEAN_PARAMETER; type: SELECT LIST */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL_QUERY; type: SQL */ | "item" ":" ws string-like-value /* required; applies when type = ITEM; type: ITEM */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION CUSTOM */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION CUSTOM */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION CUSTOM */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY CUSTOM */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY CUSTOM */ | "preference" ":" ws string-like-value /* required; applies when type = PREFERENCE; type: TEXT */ | "name" ":" ws string-like-value /* required; applies when type = COLLECTION; type: TEXT */ | "formatMask" ":" ws string-like-value /* applies when name supports NUMBER_PARAMETER, DATE_PARAMETER, TIMESTAMP_PARAMETER, TIMESTAMP_TZ_PARAMETER and type in (STATIC, ITEM, PREFERENCE); type: COMBOBOX */ | "trueValue" ":" ws string-like-value /* applies when name supports BOOLEAN_PARAMETER and type in (ITEM, PREFERENCE); type: TEXT */ | "falseValue" ":" ws string-like-value /* applies when name supports BOOLEAN_PARAMETER and type in (ITEM, PREFERENCE); type: TEXT */ /* breadcrumb */ /* direct properties use default group: identification */ breadcrumb ::= "breadcrumb" ( required-ws component-id )? ws "(" line-end ( breadcrumb-body-line )* indent ")" line-end breadcrumb-body-line ::= breadcrumb-direct-property-line | breadcrumb-group-block | breadcrumb-child-component breadcrumb-direct-property-line ::= indent breadcrumb-direct-property line-end breadcrumb-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ breadcrumb-group-block ::= breadcrumb-advanced | breadcrumb-comments breadcrumb-advanced ::= indent "advanced" ws "{" line-end ( breadcrumb-advanced-property-line )* indent "}" line-end breadcrumb-advanced-property-line ::= indent breadcrumb-advanced-property line-end breadcrumb-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ breadcrumb-comments ::= indent "comments" ws "{" line-end ( breadcrumb-comments-property-line )* indent "}" line-end breadcrumb-comments-property-line ::= indent breadcrumb-comments-property line-end breadcrumb-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ breadcrumb-child-component ::= entry-b /* entry */ /* direct properties use default group: identification */ entry-b ::= "entry" ( required-ws component-id )? ws "(" line-end ( entry-b-body-line )* indent ")" line-end entry-b-body-line ::= entry-b-direct-property-line | entry-b-group-block entry-b-direct-property-line ::= indent entry-b-direct-property line-end entry-b-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "pageNumber" ":" ws number /* required; type: PAGE */ entry-b-group-block ::= entry-b-execution | entry-b-appearance | entry-b-link | entry-b-advanced | entry-b-server-side-condition | entry-b-security | entry-b-config | entry-b-comments entry-b-execution ::= indent "execution" ws "{" line-end ( entry-b-execution-property-line )* indent "}" line-end entry-b-execution-property-line ::= indent entry-b-execution-property line-end entry-b-execution-property ::= "sequence" ":" ws number /* required; type: NUMBER */ entry-b-appearance ::= indent "appearance" ws "{" line-end ( entry-b-appearance-property-line )* indent "}" line-end entry-b-appearance-property-line ::= indent entry-b-appearance-property line-end entry-b-appearance-property ::= "parentEntry" ":" ws reference /* type: COMPONENT */ | "longName" ":" ws string-like-value /* type: TEXT */ entry-b-link ::= indent "link" ws "{" line-end ( entry-b-link-property-line )* indent "}" line-end entry-b-link-property-line ::= indent entry-b-link-property line-end entry-b-link-property ::= "target" ":" ws value /* type: LINK */ entry-b-advanced ::= indent "advanced" ws "{" line-end ( entry-b-advanced-property-line )* indent "}" line-end entry-b-advanced-property-line ::= indent entry-b-advanced-property line-end entry-b-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ entry-b-server-side-condition ::= indent "serverSideCondition" ws "{" line-end ( entry-b-server-side-condition-property-line )* indent "}" line-end entry-b-server-side-condition-property-line ::= indent entry-b-server-side-condition-property line-end entry-b-server-side-condition-property ::= "type" ":" ws string-like-value /* type: SELECT LIST; large enum list omitted */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "preference" ":" ws string-like-value /* required; type: TEXT */ | "page" ":" ws number /* required; applies when type in (CURRENT_PAGE_EQUALS_CONDITION, CURRENT_PAGE_NOT_EQUAL_CONDITION); type: PAGE */ | "pages" ":" ws array-of-number /* required; applies when type in (CURRENT_PAGE_IN_CONDITION, CURRENT_PAGE_NOT_IN_CONDITION); type: PAGE */ | "text" ":" ws string-like-value /* required; type: TEXT */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (VALUE_OF_ITEM_IN_CONDITION_IN_COLON_DELIMITED_LIST, VALUE_OF_ITEM_IN_CONDITION_NOT_IN_COLON_DELIMITED_LIST); type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "value" ":" ws string-like-value /* required; applies when type in (DISPLAY_COND_IN_COND_TEXT, DISPLAY_COND_NOT_IN_COND_TEXT, DISPLAY_COND_EQUAL_COND_TEXT, DISP_COND_NOT_EQUAL_COND_TEXT); type: TEXT */ entry-b-security ::= indent "security" ws "{" line-end ( entry-b-security-property-line )* indent "}" line-end entry-b-security-property-line ::= indent entry-b-security-property line-end entry-b-security-property ::= "authorizationScheme" ":" ws reference /* type: COMPONENT */ entry-b-config ::= indent "config" ws "{" line-end ( entry-b-config-property-line )* indent "}" line-end entry-b-config-property-line ::= indent entry-b-config-property line-end entry-b-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ entry-b-comments ::= indent "comments" ws "{" line-end ( entry-b-comments-property-line )* indent "}" line-end entry-b-comments-property-line ::= indent entry-b-comments-property line-end entry-b-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* buildOption */ /* direct properties use default group: identification */ build-option-a ::= "buildOption" ( required-ws component-id )? ws "(" line-end ( build-option-a-body-line )* indent ")" line-end build-option-a-body-line ::= build-option-a-direct-property-line | build-option-a-group-block build-option-a-direct-property-line ::= indent build-option-a-direct-property line-end build-option-a-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ build-option-a-group-block ::= build-option-a-status | build-option-a-advanced | build-option-a-subscription | build-option-a-comments build-option-a-status ::= indent "status" ws "{" line-end ( build-option-a-status-property-line )* indent "}" line-end build-option-a-status-property-line ::= indent build-option-a-status-property line-end build-option-a-status-property ::= "status" ":" ws ( "include" | "exclude" ) /* required; type: SELECT LIST */ | "defaultOnExport" ":" ws ( "exclude" | "include" ) /* type: SELECT LIST */ | "onUpgradeKeepStatus" ":" ws boolean /* required; type: YES NO */ build-option-a-advanced ::= indent "advanced" ws "{" line-end ( build-option-a-advanced-property-line )* indent "}" line-end build-option-a-advanced-property-line ::= indent build-option-a-advanced-property line-end build-option-a-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ | "featureIdentifier" ":" ws string-like-value /* type: HIDDEN */ build-option-a-subscription ::= indent "subscription" ws "{" line-end ( build-option-a-subscription-property-line )* indent "}" line-end build-option-a-subscription-property-line ::= indent build-option-a-subscription-property line-end build-option-a-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ build-option-a-comments ::= indent "comments" ws "{" line-end ( build-option-a-comments-property-line )* indent "}" line-end build-option-a-comments-property-line ::= indent build-option-a-comments-property line-end build-option-a-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* classicNavigationBarEntry */ /* direct properties use default group: label */ classic-navigation-bar-entry ::= "classicNavigationBarEntry" ( required-ws component-id )? ws "(" line-end ( classic-navigation-bar-entry-body-line )* indent ")" line-end classic-navigation-bar-entry-body-line ::= classic-navigation-bar-entry-direct-property-line | classic-navigation-bar-entry-group-block classic-navigation-bar-entry-direct-property-line ::= indent classic-navigation-bar-entry-direct-property line-end classic-navigation-bar-entry-direct-property ::= "label" ":" ws string-like-value /* required; type: TEXT */ classic-navigation-bar-entry-group-block ::= classic-navigation-bar-entry-layout | classic-navigation-bar-entry-icon | classic-navigation-bar-entry-link | classic-navigation-bar-entry-advanced | classic-navigation-bar-entry-server-side-condition | classic-navigation-bar-entry-security | classic-navigation-bar-entry-config | classic-navigation-bar-entry-subscription | classic-navigation-bar-entry-comments classic-navigation-bar-entry-layout ::= indent "layout" ws "{" line-end ( classic-navigation-bar-entry-layout-property-line )* indent "}" line-end classic-navigation-bar-entry-layout-property-line ::= indent classic-navigation-bar-entry-layout-property line-end classic-navigation-bar-entry-layout-property ::= "sequence" ":" ws number /* required; type: NUMBER */ | "beginsOnNewLine" ":" ws boolean /* required; type: YES NO */ | "cellColumnSpan" ":" ws number /* required; type: INTEGER */ classic-navigation-bar-entry-icon ::= indent "icon" ws "{" line-end ( classic-navigation-bar-entry-icon-property-line )* indent "}" line-end classic-navigation-bar-entry-icon-property-line ::= indent classic-navigation-bar-entry-icon-property line-end classic-navigation-bar-entry-icon-property ::= "imageIconCssClasses" ":" ws string-like-value /* type: ICON */ | "altAttribute" ":" ws string-like-value /* applies when imageIconCssClasses is set; type: TEXT */ | "height" ":" ws number /* type: INTEGER */ | "width" ":" ws number /* type: INTEGER */ classic-navigation-bar-entry-link ::= indent "link" ws "{" line-end ( classic-navigation-bar-entry-link-property-line )* indent "}" line-end classic-navigation-bar-entry-link-property-line ::= indent classic-navigation-bar-entry-link-property line-end classic-navigation-bar-entry-link-property ::= "target" ":" ws value /* required; type: LINK */ classic-navigation-bar-entry-advanced ::= indent "advanced" ws "{" line-end ( classic-navigation-bar-entry-advanced-property-line )* indent "}" line-end classic-navigation-bar-entry-advanced-property-line ::= indent classic-navigation-bar-entry-advanced-property line-end classic-navigation-bar-entry-advanced-property ::= "feedbackEntry" ":" ws boolean /* required; type: YES NO */ | "staticId" ":" ws string-like-value /* required; type: STATIC ID */ classic-navigation-bar-entry-server-side-condition ::= indent "serverSideCondition" ws "{" line-end ( classic-navigation-bar-entry-server-side-condition-property-line )* indent "}" line-end classic-navigation-bar-entry-server-side-condition-property-line ::= indent classic-navigation-bar-entry-server-side-condition-property line-end classic-navigation-bar-entry-server-side-condition-property ::= "type" ":" ws string-like-value /* type: SELECT LIST; large enum list omitted */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "preference" ":" ws string-like-value /* required; type: TEXT */ | "page" ":" ws number /* required; applies when type in (CURRENT_PAGE_EQUALS_CONDITION, CURRENT_PAGE_NOT_EQUAL_CONDITION); type: PAGE */ | "pages" ":" ws array-of-number /* required; applies when type in (CURRENT_PAGE_IN_CONDITION, CURRENT_PAGE_NOT_IN_CONDITION); type: PAGE */ | "text" ":" ws string-like-value /* required; type: TEXT */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (VALUE_OF_ITEM_IN_CONDITION_IN_COLON_DELIMITED_LIST, VALUE_OF_ITEM_IN_CONDITION_NOT_IN_COLON_DELIMITED_LIST); type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "value" ":" ws string-like-value /* required; applies when type in (DISPLAY_COND_IN_COND_TEXT, DISPLAY_COND_NOT_IN_COND_TEXT, DISPLAY_COND_EQUAL_COND_TEXT, DISP_COND_NOT_EQUAL_COND_TEXT); type: TEXT */ classic-navigation-bar-entry-security ::= indent "security" ws "{" line-end ( classic-navigation-bar-entry-security-property-line )* indent "}" line-end classic-navigation-bar-entry-security-property-line ::= indent classic-navigation-bar-entry-security-property line-end classic-navigation-bar-entry-security-property ::= "authorizationScheme" ":" ws reference /* type: COMPONENT */ classic-navigation-bar-entry-config ::= indent "config" ws "{" line-end ( classic-navigation-bar-entry-config-property-line )* indent "}" line-end classic-navigation-bar-entry-config-property-line ::= indent classic-navigation-bar-entry-config-property line-end classic-navigation-bar-entry-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ classic-navigation-bar-entry-subscription ::= indent "subscription" ws "{" line-end ( classic-navigation-bar-entry-subscription-property-line )* indent "}" line-end classic-navigation-bar-entry-subscription-property-line ::= indent classic-navigation-bar-entry-subscription-property line-end classic-navigation-bar-entry-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ classic-navigation-bar-entry-comments ::= indent "comments" ws "{" line-end ( classic-navigation-bar-entry-comments-property-line )* indent "}" line-end classic-navigation-bar-entry-comments-property-line ::= indent classic-navigation-bar-entry-comments-property line-end classic-navigation-bar-entry-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* componentGroup */ /* direct properties use default group: identification */ component-group ::= "componentGroup" ( required-ws component-id )? ws "(" line-end ( component-group-body-line )* indent ")" line-end component-group-body-line ::= component-group-direct-property-line | component-group-group-block | component-group-child-component component-group-direct-property-line ::= indent component-group-direct-property line-end component-group-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "staticId" ":" ws string-like-value /* required; type: STATIC ID */ component-group-group-block ::= component-group-subscription | component-group-comments component-group-subscription ::= indent "subscription" ws "{" line-end ( component-group-subscription-property-line )* indent "}" line-end component-group-subscription-property-line ::= indent component-group-subscription-property line-end component-group-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ component-group-comments ::= indent "comments" ws "{" line-end ( component-group-comments-property-line )* indent "}" line-end component-group-comments-property-line ::= indent component-group-comments-property line-end component-group-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ component-group-child-component ::= component-component /* component */ /* direct properties use default group: component */ component-component ::= "component" ( required-ws component-id )? ws "(" line-end ( component-component-body-line )* indent ")" line-end component-component-body-line ::= component-component-direct-property-line component-component-direct-property-line ::= indent component-component-direct-property line-end component-component-direct-property ::= "type" ":" ws ( "accessControlRole" | "appComputation" | "appItem" | "appProcess" | "appSetting" | "authentication" | "authorization" | "buildOption" | "dataLoadDefinition" | "jsonDualityView" | "emailTemplate" | "aiAgent" | "jsonSource" | "list" | "lov" | "mapBackground" | "plugin" | "componentSetting" | "reportLayout" | "restDataSource" | "searchConfig" | "shortcut" | "textMessage" ) /* required; type: SELECT LIST */ | "appItem" ":" ws reference /* required; applies when type = APP_ITEM; type: COMPONENT */ | "appProcess" ":" ws reference /* required; applies when type = APP_PROCESS; type: COMPONENT */ | "appComputation" ":" ws reference /* required; applies when type = APP_COMPUTATION; type: COMPONENT */ | "appSetting" ":" ws reference /* required; applies when type = APP_SETTING; type: COMPONENT */ | "buildOption" ":" ws reference /* required; applies when type = BUILD_OPTION; type: COMPONENT */ | "list" ":" ws reference /* required; applies when type = LIST; type: COMPONENT */ | "searchConfig" ":" ws reference /* required; applies when type = SEARCH_CONFIG; type: COMPONENT */ | "dataLoadDefinition" ":" ws reference /* required; applies when type = DATA_LOAD; type: COMPONENT */ | "jsonDualityView" ":" ws reference /* required; applies when type = DUALITY_VIEW; type: COMPONENT */ | "jsonSource" ":" ws reference /* required; applies when type = JSON_SOURCE; type: COMPONENT */ | "restDataSource" ":" ws reference /* required; applies when type = WEB_SOURCE; type: COMPONENT */ | "authenticationScheme" ":" ws reference /* required; applies when type = AUTHENTICATION; type: COMPONENT */ | "authorizationScheme" ":" ws reference /* required; applies when type = AUTHORIZATION; type: COMPONENT */ | "appAccessControlRole" ":" ws reference /* required; applies when type = APP_ACL; type: COMPONENT */ | "emailTemplate" ":" ws reference /* required; applies when type = EMAIL_TEMPLATE; type: COMPONENT */ | "lov" ":" ws reference /* required; applies when type = LOV; type: COMPONENT */ | "plugIn" ":" ws reference /* required; applies when type = PLUGIN; type: COMPONENT */ | "componentSettings" ":" ws reference /* required; applies when type = PLUGIN_SETTINGS; type: COMPONENT */ | "shortcut" ":" ws reference /* required; applies when type = SHORTCUT; type: COMPONENT */ | "mapBackground" ":" ws reference /* required; applies when type = MAP_BACKGROUND; type: COMPONENT */ | "reportLayout" ":" ws reference /* required; applies when type = REPORT_LAYOUT; type: COMPONENT */ | "textMessage" ":" ws reference /* required; applies when type = MESSAGE; type: COMPONENT */ | "aiAgent" ":" ws reference /* required; applies when type = AI_AGENT; type: COMPONENT */ /* componentSetting */ /* direct properties use default group: identification */ component-setting ::= "componentSetting" ( required-ws component-id )? ws "(" line-end ( component-setting-body-line )* indent ")" line-end component-setting-body-line ::= component-setting-direct-property-line | component-setting-group-block component-setting-direct-property-line ::= indent component-setting-direct-property line-end component-setting-direct-property ::= "type" ":" ws ( "item" | "region" | "dynamicAction" | "genAITool" | "process" | "authenticationScheme" | "authorizationScheme" | "restDataSource" ) /* required; type: SELECT LIST */ | "name" ":" ws string-like-value /* required; type: SUPPORTED UI */ component-setting-group-block ::= component-setting-subscription component-setting-subscription ::= indent "subscription" ws "{" line-end ( component-setting-subscription-property-line )* indent "}" line-end component-setting-subscription-property-line ::= indent component-setting-subscription-property line-end component-setting-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ /* concatenatedFile */ /* direct properties use default group: files */ concatenated-file ::= "concatenatedFile" ( required-ws component-id )? ws "(" line-end ( concatenated-file-body-line )* indent ")" line-end concatenated-file-body-line ::= concatenated-file-direct-property-line | concatenated-file-group-block concatenated-file-direct-property-line ::= indent concatenated-file-direct-property line-end concatenated-file-direct-property ::= "concatenatedFileUrl" ":" ws string-like-value /* required; type: TEXT */ | "singleFileUrls" ":" ws multiline-string /* required; type: TEXT EDITOR */ concatenated-file-group-block ::= concatenated-file-advanced | concatenated-file-config concatenated-file-advanced ::= indent "advanced" ws "{" line-end ( concatenated-file-advanced-property-line )* indent "}" line-end concatenated-file-advanced-property-line ::= indent concatenated-file-advanced-property line-end concatenated-file-advanced-property ::= "onlyForPage" ":" ws number /* type: PAGE */ concatenated-file-config ::= indent "config" ws "{" line-end ( concatenated-file-config-property-line )* indent "}" line-end concatenated-file-config-property-line ::= indent concatenated-file-config-property line-end concatenated-file-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ /* dataLoadDefinition */ /* direct properties use default group: identification */ data-load-definition ::= "dataLoadDefinition" ( required-ws component-id )? ws "(" line-end ( data-load-definition-body-line )* indent ")" line-end data-load-definition-body-line ::= data-load-definition-direct-property-line | data-load-definition-group-block | data-load-definition-child-component data-load-definition-direct-property-line ::= indent data-load-definition-direct-property line-end data-load-definition-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ data-load-definition-group-block ::= data-load-definition-data-profile | data-load-definition-target | data-load-definition-advanced | data-load-definition-error-handling | data-load-definition-subscription | data-load-definition-comments data-load-definition-data-profile ::= indent "dataProfile" ws "{" line-end ( data-load-definition-data-profile-property-line )* indent "}" line-end data-load-definition-data-profile-property-line ::= indent data-load-definition-data-profile-property line-end data-load-definition-data-profile-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "format" ":" ws ( "csv" | "json" | "xlsx" | "xml" ) /* required; type: SELECT LIST */ | "rowSelector" ":" ws string-like-value /* applies when format in (JSON, XML); type: TEXT */ | "useRawSelectors" ":" ws boolean /* required; applies when format = JSON; type: YES NO */ | "comments" ":" ws multiline-string /* type: TEXT EDITOR */ data-load-definition-target ::= indent "target" ws "{" line-end ( data-load-definition-target-property-line )* indent "}" line-end data-load-definition-target-property-line ::= indent data-load-definition-target-property line-end data-load-definition-target-property ::= "type" ":" ws ( "table" | "collection" ) /* required; type: SELECT LIST */ | "tableOwner" ":" ws string-like-value /* applies when type = TABLE; type: OWNER */ | "tableName" ":" ws string-like-value /* required; applies when type = TABLE; type: TABLE */ | "name" ":" ws string-like-value /* required; applies when type = COLLECTION; type: TEXT */ | "loadingMethod" ":" ws ( "append" | "merge" | "replace" ) /* required; applies when type = TABLE; type: SELECT LIST */ | "loadingMethod" ":" ws ( "append" | "replace" ) /* required; applies when type = COLLECTION; type: SELECT LIST */ data-load-definition-advanced ::= indent "advanced" ws "{" line-end ( data-load-definition-advanced-property-line )* indent "}" line-end data-load-definition-advanced-property-line ::= indent data-load-definition-advanced-property line-end data-load-definition-advanced-property ::= "encoding" ":" ws string-like-value /* type: SELECT LIST; large enum list omitted */ | "numericChars" ":" ws string-like-value /* type: TEXT */ | "xmlNamespaces" ":" ws multiline-string /* applies when format = XML; type: TEXT EDITOR */ | "csvSeparator" ":" ws string-like-value /* applies when format = CSV; type: COMBOBOX */ | "csvEnclosedBy" ":" ws string-like-value /* applies when format = CSV; type: COMBOBOX */ | "commitInterval" ":" ws number /* required; type: INTEGER */ | "defaultXlsxSheetName" ":" ws string-like-value /* applies when format = XLSX; type: TEXT */ | "skipRows" ":" ws number /* applies when format in (CSV, XLSX); type: NUMBER */ | "staticId" ":" ws string-like-value /* required; type: STATIC ID */ | "firstLineContainsHeaders" ":" ws boolean /* required; applies when format in (CSV, XLSX); type: YES NO */ data-load-definition-error-handling ::= indent "errorHandling" ws "{" line-end ( data-load-definition-error-handling-property-line )* indent "}" line-end data-load-definition-error-handling-property-line ::= indent data-load-definition-error-handling-property line-end data-load-definition-error-handling-property ::= "whenOnError" ":" ws string-like-value /* required; type: SELECT LIST */ | "name" ":" ws string-like-value /* required; applies when whenOnError = LOG_ROWS; type: TEXT */ | "tableName" ":" ws string-like-value /* required; applies when whenOnError = ERROR_LOG; type: TABLE */ data-load-definition-subscription ::= indent "subscription" ws "{" line-end ( data-load-definition-subscription-property-line )* indent "}" line-end data-load-definition-subscription-property-line ::= indent data-load-definition-subscription-property line-end data-load-definition-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ data-load-definition-comments ::= indent "comments" ws "{" line-end ( data-load-definition-comments-property-line )* indent "}" line-end data-load-definition-comments-property-line ::= indent data-load-definition-comments-property line-end data-load-definition-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ data-load-definition-child-component ::= data-profile-column-d /* dataProfileColumn */ /* direct properties use default group: identification */ data-profile-column-d ::= "dataProfileColumn" ( required-ws component-id )? ws "(" line-end ( data-profile-column-d-body-line )* indent ")" line-end data-profile-column-d-body-line ::= data-profile-column-d-direct-property-line | data-profile-column-d-group-block data-profile-column-d-direct-property-line ::= indent data-profile-column-d-direct-property line-end data-profile-column-d-direct-property ::= "columnName" ":" ws string-like-value /* required; type: TEXT */ data-profile-column-d-group-block ::= data-profile-column-d-source | data-profile-column-d-parsing | data-profile-column-d-computation | data-profile-column-d-lookup | data-profile-column-d-transformation | data-profile-column-d-advanced | data-profile-column-d-comments data-profile-column-d-source ::= indent "source" ws "{" line-end ( data-profile-column-d-source-property-line )* indent "}" line-end data-profile-column-d-source-property-line ::= indent data-profile-column-d-source-property line-end data-profile-column-d-source-property ::= "sequence" ":" ws number /* required; type: NUMBER */ | "type" ":" ws ( "data" | "lookup" | "sqlExpression" | "sqlQuery" ) /* required; type: SELECT LIST */ | "lineNumber" ":" ws boolean /* required; applies when type = DATA; type: YES NO */ | "dataType" ":" ws ( "varchar2" | "number" | "date" | "timestamp" | "timestampWithLocalTimeZone" | "timestampWithTimeZone" | "clob" | "boolean" | "blob" | "geometrySdoGeometry" | "array" | "jsonDocument" ) /* required; applies when lineNumber = N or not set; type: SELECT LIST */ | "maxLength" ":" ws number /* required; type: INTEGER */ | "primaryKey" ":" ws boolean /* required; type: YES NO */ data-profile-column-d-parsing ::= indent "parsing" ws "{" line-end ( data-profile-column-d-parsing-property-line )* indent "}" line-end data-profile-column-d-parsing-property-line ::= indent data-profile-column-d-parsing-property line-end data-profile-column-d-parsing-property ::= "selectorType" ":" ws ( "name" | "sequence" | "regexp" ) /* required; applies when type = DATA and format in (CSV, XLSX); type: SELECT LIST */ | "selector" ":" ws string-like-value /* required; applies when selectorType in (NAME, REGEXP); type: TEXT */ | "columnNumber" ":" ws number /* required; applies when selectorType = SEQ; type: INTEGER */ | "pathExpression" ":" ws string-like-value /* required; applies when format in (JSON, XML) and type = DATA and lineNumber = N or not set; type: TEXT */ | "formatMask" ":" ws string-like-value /* applies when dataType in (NUMBER, DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE) and type = DATA and lineNumber = N or not set; type: COMBOBOX */ | "hasTimeZone" ":" ws boolean /* required; applies when dataType in (DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE) and type = DATA; type: YES NO */ | "decimalChar" ":" ws string-like-value /* applies when dataType = NUMBER; type: TEXT */ | "groupChar" ":" ws string-like-value /* applies when dataType = NUMBER; type: TEXT */ data-profile-column-d-computation ::= indent "computation" ws "{" line-end ( data-profile-column-d-computation-property-line )* indent "}" line-end data-profile-column-d-computation-property-line ::= indent data-profile-column-d-computation-property line-end data-profile-column-d-computation-property ::= "sqlExpression" ":" ws multiline-string /* required; applies when type = SQL_EXPRESSION; type: SQL EXPRESSION */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL_QUERY; type: SQL */ data-profile-column-d-lookup ::= indent "lookup" ws "{" line-end ( data-profile-column-d-lookup-property-line )* indent "}" line-end data-profile-column-d-lookup-property-line ::= indent data-profile-column-d-lookup-property line-end data-profile-column-d-lookup-property ::= "tableOwner" ":" ws string-like-value /* applies when type = LOOKUP; type: OWNER */ | "tableName" ":" ws string-like-value /* required; applies when type = LOOKUP; type: TABLE */ | "returnColumn" ":" ws string-like-value /* required; applies when type = LOOKUP; type: COLUMN */ | "whereClause" ":" ws multiline-string /* applies when type = LOOKUP; type: WHERE CLAUSE */ | "tableColumn1" ":" ws string-like-value /* required; applies when type = LOOKUP; type: COLUMN */ | "dataColumn1" ":" ws string-like-value /* required; applies when type = LOOKUP; type: TEXT */ | "tableColumn2" ":" ws string-like-value /* type: COLUMN */ | "dataColumn2" ":" ws string-like-value /* required; type: TEXT */ | "tableColumn3" ":" ws string-like-value /* type: COLUMN */ | "dataColumn3" ":" ws string-like-value /* required; type: TEXT */ data-profile-column-d-transformation ::= indent "transformation" ws "{" line-end ( data-profile-column-d-transformation-property-line )* indent "}" line-end data-profile-column-d-transformation-property-line ::= indent data-profile-column-d-transformation-property line-end data-profile-column-d-transformation-property ::= "type" ":" ws ( "leftTrim" | "rightTrim" | "trim" | "replace" | "lower" | "upper" | "nullIf" | "regexpReplace" | "regexpNullIf" ) /* applies when dataType not in (BLOB, SDO_GEOMETRY, ARRAY) and type = DATA and lineNumber = N or not set; type: SELECT LIST */ | "trimChars" ":" ws string-like-value /* applies when type in (LTRIM, RTRIM, TRIM); type: TEXT */ | "find" ":" ws string-like-value /* required; applies when type = REPLACE; type: TEXT */ | "regexp" ":" ws string-like-value /* required; applies when type in (REGEXP_REPLACE, REGEXP_NULLIF); type: TEXT */ | "replaceWith" ":" ws string-like-value /* applies when type in (REPLACE, REGEXP_REPLACE); type: TEXT */ | "value" ":" ws string-like-value /* required; applies when type = NULLIF; type: TEXT */ data-profile-column-d-advanced ::= indent "advanced" ws "{" line-end ( data-profile-column-d-advanced-property-line )* indent "}" line-end data-profile-column-d-advanced-property-line ::= indent data-profile-column-d-advanced-property line-end data-profile-column-d-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ data-profile-column-d-comments ::= indent "comments" ws "{" line-end ( data-profile-column-d-comments-property-line )* indent "}" line-end data-profile-column-d-comments-property-line ::= indent data-profile-column-d-comments-property line-end data-profile-column-d-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* developerComment */ /* direct properties use default group: comments */ developer-comment ::= "developerComment" ( required-ws component-id )? ws "(" line-end ( developer-comment-body-line )* indent ")" line-end developer-comment-body-line ::= developer-comment-direct-property-line developer-comment-direct-property-line ::= indent developer-comment-direct-property line-end developer-comment-direct-property ::= "pages" ":" ws array-of-number /* type: PAGE */ | "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* dynamicTranslation */ /* direct properties use default group: translation */ dynamic-translation ::= "dynamicTranslation" ( required-ws component-id )? ws "(" line-end ( dynamic-translation-body-line )* indent ")" line-end dynamic-translation-body-line ::= dynamic-translation-direct-property-line dynamic-translation-direct-property-line ::= indent dynamic-translation-direct-property line-end dynamic-translation-direct-property ::= "language" ":" ws string-like-value /* required; type: SELECT LIST; large enum list omitted */ | "fromText" ":" ws multiline-string /* required; type: TEXT EDITOR */ | "toText" ":" ws multiline-string /* required; type: TEXT EDITOR */ /* emailTemplate */ /* direct properties use default group: identification */ email-template ::= "emailTemplate" ( required-ws component-id )? ws "(" line-end ( email-template-body-line )* indent ")" line-end email-template-body-line ::= email-template-direct-property-line | email-template-group-block email-template-direct-property-line ::= indent email-template-direct-property line-end email-template-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "emailSubject" ":" ws string-like-value /* required; type: TEXT */ email-template-group-block ::= email-template-html-format | email-template-plain-text-format | email-template-advanced | email-template-subscription | email-template-comments email-template-html-format ::= indent "htmlFormat" ws "{" line-end ( email-template-html-format-property-line )* indent "}" line-end email-template-html-format-property-line ::= indent email-template-html-format-property line-end email-template-html-format-property ::= "header" ":" ws multiline-string /* type: HTML */ | "body" ":" ws multiline-string /* required; type: HTML */ | "footer" ":" ws multiline-string /* type: HTML */ email-template-plain-text-format ::= indent "plainTextFormat" ws "{" line-end ( email-template-plain-text-format-property-line )* indent "}" line-end email-template-plain-text-format-property-line ::= indent email-template-plain-text-format-property line-end email-template-plain-text-format-property ::= "content" ":" ws multiline-string /* type: HTML */ email-template-advanced ::= indent "advanced" ws "{" line-end ( email-template-advanced-property-line )* indent "}" line-end email-template-advanced-property-line ::= indent email-template-advanced-property line-end email-template-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ | "versionNumber" ":" ws ( "1" | "2" ) /* type: SELECT LIST */ | "htmlTemplate" ":" ws multiline-string /* type: HTML */ email-template-subscription ::= indent "subscription" ws "{" line-end ( email-template-subscription-property-line )* indent "}" line-end email-template-subscription-property-line ::= indent email-template-subscription-property line-end email-template-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ email-template-comments ::= indent "comments" ws "{" line-end ( email-template-comments-property-line )* indent "}" line-end email-template-comments-property-line ::= indent email-template-comments-property line-end email-template-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* file */ /* direct properties use default group: file */ file-c ::= "file" ( required-ws component-id )? ws "(" line-end ( file-c-body-line )* indent ")" line-end file-c-body-line ::= file-c-direct-property-line file-c-direct-property-line ::= indent file-c-direct-property line-end file-c-direct-property ::= "fileName" ":" ws string-like-value /* required; type: TEXT */ | "content" ":" ws value /* type: BLOB */ | "mimeType" ":" ws string-like-value /* required; type: TEXT */ | "charSet" ":" ws string-like-value /* type: SELECT LIST; large enum list omitted */ /* jsonDualityView */ /* direct properties use default group: identification */ json-duality-view ::= "jsonDualityView" ( required-ws component-id )? ws "(" line-end ( json-duality-view-body-line )* indent ")" line-end json-duality-view-body-line ::= json-duality-view-direct-property-line | json-duality-view-group-block | json-duality-view-child-component json-duality-view-direct-property-line ::= indent json-duality-view-direct-property line-end json-duality-view-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ json-duality-view-group-block ::= json-duality-view-data-profile | json-duality-view-source | json-duality-view-advanced | json-duality-view-remote-cache | json-duality-view-subscription | json-duality-view-comments json-duality-view-data-profile ::= indent "dataProfile" ws "{" line-end ( json-duality-view-data-profile-property-line )* indent "}" line-end json-duality-view-data-profile-property-line ::= indent json-duality-view-data-profile-property line-end json-duality-view-data-profile-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "format" ":" ws ( "csv" | "json" | "xlsx" | "xml" ) /* required; type: SELECT LIST */ | "rowSelector" ":" ws string-like-value /* applies when format in (JSON, XML); type: TEXT */ | "useRawSelectors" ":" ws boolean /* required; applies when format = JSON; type: YES NO */ | "comments" ":" ws multiline-string /* type: TEXT EDITOR */ json-duality-view-source ::= indent "source" ws "{" line-end ( json-duality-view-source-property-line )* indent "}" line-end json-duality-view-source-property-line ::= indent json-duality-view-source-property line-end json-duality-view-source-property ::= "location" ":" ws ( "localDatabase" | "restEnabledSql" ) /* required; type: SELECT LIST */ | "remoteServer" ":" ws reference /* required; applies when location = REMOTE; type: COMPONENT */ | "tableOwner" ":" ws string-like-value /* type: OWNER */ | "tableName" ":" ws string-like-value /* required; type: TABLE */ json-duality-view-advanced ::= indent "advanced" ws "{" line-end ( json-duality-view-advanced-property-line )* indent "}" line-end json-duality-view-advanced-property-line ::= indent json-duality-view-advanced-property line-end json-duality-view-advanced-property ::= "xmlNamespaces" ":" ws multiline-string /* applies when format = XML; type: TEXT EDITOR */ | "csvSeparator" ":" ws string-like-value /* applies when format = CSV; type: COMBOBOX */ | "csvEnclosedBy" ":" ws string-like-value /* applies when format = CSV; type: COMBOBOX */ | "staticId" ":" ws string-like-value /* required; type: STATIC ID */ | "defaultXlsxSheetName" ":" ws string-like-value /* applies when format = XLSX; type: TEXT */ | "skipRows" ":" ws number /* applies when format in (CSV, XLSX); type: NUMBER */ | "firstLineContainsHeaders" ":" ws boolean /* required; applies when format in (CSV, XLSX); type: YES NO */ json-duality-view-remote-cache ::= indent "remoteCache" ws "{" line-end ( json-duality-view-remote-cache-property-line )* indent "}" line-end json-duality-view-remote-cache-property-line ::= indent json-duality-view-remote-cache-property line-end json-duality-view-remote-cache-property ::= "caching" ":" ws ( "allUsers" | "user" | "session" ) /* applies when location = REMOTE; type: SELECT LIST */ | "timeout" ":" ws multiline-string /* applies when caching is set; type: TEXT EDITOR */ json-duality-view-subscription ::= indent "subscription" ws "{" line-end ( json-duality-view-subscription-property-line )* indent "}" line-end json-duality-view-subscription-property-line ::= indent json-duality-view-subscription-property line-end json-duality-view-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ json-duality-view-comments ::= indent "comments" ws "{" line-end ( json-duality-view-comments-property-line )* indent "}" line-end json-duality-view-comments-property-line ::= indent json-duality-view-comments-property line-end json-duality-view-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ json-duality-view-child-component ::= data-profile-column-b /* dataProfileColumn */ /* direct properties use default group: identification */ data-profile-column-b ::= "dataProfileColumn" ( required-ws component-id )? ws "(" line-end ( data-profile-column-b-body-line )* indent ")" line-end data-profile-column-b-body-line ::= data-profile-column-b-direct-property-line | data-profile-column-b-group-block data-profile-column-b-direct-property-line ::= indent data-profile-column-b-direct-property line-end data-profile-column-b-direct-property ::= "columnName" ":" ws string-like-value /* required; type: TEXT */ data-profile-column-b-group-block ::= data-profile-column-b-source | data-profile-column-b-parsing | data-profile-column-b-computation | data-profile-column-b-lookup | data-profile-column-b-transformation | data-profile-column-b-advanced | data-profile-column-b-comments data-profile-column-b-source ::= indent "source" ws "{" line-end ( data-profile-column-b-source-property-line )* indent "}" line-end data-profile-column-b-source-property-line ::= indent data-profile-column-b-source-property line-end data-profile-column-b-source-property ::= "sequence" ":" ws number /* required; type: NUMBER */ | "type" ":" ws ( "tableColumn" | "data" | "lookup" | "sqlExpression" | "sqlQuery" ) /* required; type: SELECT LIST */ | "parentColumn" ":" ws string-like-value /* applies when format = JSON; type: SELECT LIST */ | "lineNumber" ":" ws boolean /* required; applies when type = DATA; type: YES NO */ | "dataType" ":" ws ( "varchar2" | "number" | "date" | "timestamp" | "timestampWithLocalTimeZone" | "timestampWithTimeZone" | "clob" | "boolean" | "blob" | "geometrySdoGeometry" | "array" | "jsonDocument" ) /* required; applies when lineNumber = N or not set; type: SELECT LIST */ | "maxLength" ":" ws number /* required; type: INTEGER */ | "primaryKey" ":" ws boolean /* required; type: YES NO */ data-profile-column-b-parsing ::= indent "parsing" ws "{" line-end ( data-profile-column-b-parsing-property-line )* indent "}" line-end data-profile-column-b-parsing-property-line ::= indent data-profile-column-b-parsing-property line-end data-profile-column-b-parsing-property ::= "selectorType" ":" ws ( "name" | "sequence" | "regexp" ) /* required; applies when type = DATA and format in (CSV, XLSX); type: SELECT LIST */ | "selector" ":" ws string-like-value /* required; applies when selectorType in (NAME, REGEXP); type: TEXT */ | "columnNumber" ":" ws number /* required; applies when selectorType = SEQ; type: INTEGER */ | "pathExpression" ":" ws string-like-value /* required; applies when format in (JSON, XML) and type = DATA and lineNumber = N or not set; type: TEXT */ | "tableColumn" ":" ws string-like-value /* required; applies when format in (JSON) and type = TABLE; type: TEXT */ | "formatMask" ":" ws string-like-value /* applies when dataType in (NUMBER, DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE) and type = DATA and lineNumber = N or not set; type: COMBOBOX */ | "hasTimeZone" ":" ws boolean /* required; applies when dataType in (DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE) and type = DATA; type: YES NO */ | "decimalChar" ":" ws string-like-value /* applies when dataType = NUMBER; type: TEXT */ | "groupChar" ":" ws string-like-value /* applies when dataType = NUMBER; type: TEXT */ data-profile-column-b-computation ::= indent "computation" ws "{" line-end ( data-profile-column-b-computation-property-line )* indent "}" line-end data-profile-column-b-computation-property-line ::= indent data-profile-column-b-computation-property line-end data-profile-column-b-computation-property ::= "sqlExpression" ":" ws multiline-string /* required; applies when type = SQL_EXPRESSION; type: SQL EXPRESSION */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL_QUERY; type: SQL */ data-profile-column-b-lookup ::= indent "lookup" ws "{" line-end ( data-profile-column-b-lookup-property-line )* indent "}" line-end data-profile-column-b-lookup-property-line ::= indent data-profile-column-b-lookup-property line-end data-profile-column-b-lookup-property ::= "tableOwner" ":" ws string-like-value /* applies when type = LOOKUP; type: OWNER */ | "tableName" ":" ws string-like-value /* required; applies when type = LOOKUP; type: TABLE */ | "returnColumn" ":" ws string-like-value /* required; applies when type = LOOKUP; type: COLUMN */ | "whereClause" ":" ws multiline-string /* applies when type = LOOKUP; type: WHERE CLAUSE */ | "tableColumn1" ":" ws string-like-value /* required; applies when type = LOOKUP; type: COLUMN */ | "dataColumn1" ":" ws string-like-value /* required; applies when type = LOOKUP; type: TEXT */ | "tableColumn2" ":" ws string-like-value /* type: COLUMN */ | "dataColumn2" ":" ws string-like-value /* required; type: TEXT */ | "tableColumn3" ":" ws string-like-value /* type: COLUMN */ | "dataColumn3" ":" ws string-like-value /* required; type: TEXT */ data-profile-column-b-transformation ::= indent "transformation" ws "{" line-end ( data-profile-column-b-transformation-property-line )* indent "}" line-end data-profile-column-b-transformation-property-line ::= indent data-profile-column-b-transformation-property line-end data-profile-column-b-transformation-property ::= "type" ":" ws ( "leftTrim" | "rightTrim" | "trim" | "replace" | "lower" | "upper" | "nullIf" | "regexpReplace" | "regexpNullIf" ) /* applies when dataType not in (BLOB, SDO_GEOMETRY, ARRAY) and type in (DATA, TABLE) and lineNumber = N or not set; type: SELECT LIST */ | "trimChars" ":" ws string-like-value /* applies when type in (LTRIM, RTRIM, TRIM); type: TEXT */ | "find" ":" ws string-like-value /* required; applies when type = REPLACE; type: TEXT */ | "regexp" ":" ws string-like-value /* required; applies when type in (REGEXP_REPLACE, REGEXP_NULLIF); type: TEXT */ | "replaceWith" ":" ws string-like-value /* applies when type in (REPLACE, REGEXP_REPLACE); type: TEXT */ | "value" ":" ws string-like-value /* required; applies when type = NULLIF; type: TEXT */ data-profile-column-b-advanced ::= indent "advanced" ws "{" line-end ( data-profile-column-b-advanced-property-line )* indent "}" line-end data-profile-column-b-advanced-property-line ::= indent data-profile-column-b-advanced-property line-end data-profile-column-b-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ | "sourceDataType" ":" ws string-like-value /* applies when type = DATA and lineNumber = N or not set; type: TEXT */ | "common" ":" ws boolean /* required; type: YES NO */ | "hidden" ":" ws boolean /* required; type: YES NO */ data-profile-column-b-comments ::= indent "comments" ws "{" line-end ( data-profile-column-b-comments-property-line )* indent "}" line-end data-profile-column-b-comments-property-line ::= indent data-profile-column-b-comments-property line-end data-profile-column-b-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* jsonSource */ /* direct properties use default group: identification */ json-source ::= "jsonSource" ( required-ws component-id )? ws "(" line-end ( json-source-body-line )* indent ")" line-end json-source-body-line ::= json-source-direct-property-line | json-source-group-block | json-source-child-component json-source-direct-property-line ::= indent json-source-direct-property line-end json-source-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "type" ":" ws ( "tableWithJsonColumn" | "jsonCollectionTable" ) /* required; type: SELECT LIST */ json-source-group-block ::= json-source-data-profile | json-source-source | json-source-advanced | json-source-remote-cache | json-source-subscription | json-source-comments json-source-data-profile ::= indent "dataProfile" ws "{" line-end ( json-source-data-profile-property-line )* indent "}" line-end json-source-data-profile-property-line ::= indent json-source-data-profile-property line-end json-source-data-profile-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "format" ":" ws ( "csv" | "json" | "xlsx" | "xml" ) /* required; type: SELECT LIST */ | "rowSelector" ":" ws string-like-value /* applies when format in (JSON, XML); type: TEXT */ | "useRawSelectors" ":" ws boolean /* required; applies when format = JSON; type: YES NO */ | "comments" ":" ws multiline-string /* type: TEXT EDITOR */ json-source-source ::= indent "source" ws "{" line-end ( json-source-source-property-line )* indent "}" line-end json-source-source-property-line ::= indent json-source-source-property line-end json-source-source-property ::= "location" ":" ws ( "localDatabase" | "restEnabledSql" ) /* required; type: SELECT LIST */ | "remoteServer" ":" ws reference /* required; applies when location = REMOTE; type: COMPONENT */ | "tableOwner" ":" ws string-like-value /* type: OWNER */ | "tableName" ":" ws string-like-value /* required; type: TABLE */ | "whereClause" ":" ws multiline-string /* type: WHERE CLAUSE */ json-source-advanced ::= indent "advanced" ws "{" line-end ( json-source-advanced-property-line )* indent "}" line-end json-source-advanced-property-line ::= indent json-source-advanced-property line-end json-source-advanced-property ::= "xmlNamespaces" ":" ws multiline-string /* applies when format = XML; type: TEXT EDITOR */ | "csvSeparator" ":" ws string-like-value /* applies when format = CSV; type: COMBOBOX */ | "csvEnclosedBy" ":" ws string-like-value /* applies when format = CSV; type: COMBOBOX */ | "defaultXlsxSheetName" ":" ws string-like-value /* applies when format = XLSX; type: TEXT */ | "skipRows" ":" ws number /* applies when format in (CSV, XLSX); type: NUMBER */ | "staticId" ":" ws string-like-value /* required; type: STATIC ID */ | "firstLineContainsHeaders" ":" ws boolean /* required; applies when format in (CSV, XLSX); type: YES NO */ json-source-remote-cache ::= indent "remoteCache" ws "{" line-end ( json-source-remote-cache-property-line )* indent "}" line-end json-source-remote-cache-property-line ::= indent json-source-remote-cache-property line-end json-source-remote-cache-property ::= "caching" ":" ws ( "allUsers" | "user" | "session" ) /* applies when location = REMOTE; type: SELECT LIST */ | "timeout" ":" ws multiline-string /* applies when caching is set; type: TEXT EDITOR */ json-source-subscription ::= indent "subscription" ws "{" line-end ( json-source-subscription-property-line )* indent "}" line-end json-source-subscription-property-line ::= indent json-source-subscription-property line-end json-source-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ json-source-comments ::= indent "comments" ws "{" line-end ( json-source-comments-property-line )* indent "}" line-end json-source-comments-property-line ::= indent json-source-comments-property line-end json-source-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ json-source-child-component ::= data-profile-column-c /* dataProfileColumn */ /* direct properties use default group: identification */ data-profile-column-c ::= "dataProfileColumn" ( required-ws component-id )? ws "(" line-end ( data-profile-column-c-body-line )* indent ")" line-end data-profile-column-c-body-line ::= data-profile-column-c-direct-property-line | data-profile-column-c-group-block data-profile-column-c-direct-property-line ::= indent data-profile-column-c-direct-property line-end data-profile-column-c-direct-property ::= "columnName" ":" ws string-like-value /* required; type: TEXT */ data-profile-column-c-group-block ::= data-profile-column-c-source | data-profile-column-c-parsing | data-profile-column-c-computation | data-profile-column-c-lookup | data-profile-column-c-transformation | data-profile-column-c-advanced | data-profile-column-c-comments data-profile-column-c-source ::= indent "source" ws "{" line-end ( data-profile-column-c-source-property-line )* indent "}" line-end data-profile-column-c-source-property-line ::= indent data-profile-column-c-source-property line-end data-profile-column-c-source-property ::= "sequence" ":" ws number /* required; type: NUMBER */ | "type" ":" ws ( "tableColumn" | "data" | "lookup" | "sqlExpression" | "sqlQuery" ) /* required; type: SELECT LIST */ | "parentColumn" ":" ws string-like-value /* applies when format = JSON; type: SELECT LIST */ | "lineNumber" ":" ws boolean /* required; applies when type = DATA; type: YES NO */ | "dataType" ":" ws ( "varchar2" | "number" | "date" | "timestamp" | "timestampWithLocalTimeZone" | "timestampWithTimeZone" | "clob" | "boolean" | "blob" | "geometrySdoGeometry" | "array" | "jsonDocument" ) /* required; applies when lineNumber = N or not set; type: SELECT LIST */ | "maxLength" ":" ws number /* required; type: INTEGER */ | "primaryKey" ":" ws boolean /* required; type: YES NO */ data-profile-column-c-parsing ::= indent "parsing" ws "{" line-end ( data-profile-column-c-parsing-property-line )* indent "}" line-end data-profile-column-c-parsing-property-line ::= indent data-profile-column-c-parsing-property line-end data-profile-column-c-parsing-property ::= "selectorType" ":" ws ( "name" | "sequence" | "regexp" ) /* required; applies when type = DATA and format in (CSV, XLSX); type: SELECT LIST */ | "selector" ":" ws string-like-value /* required; applies when selectorType in (NAME, REGEXP); type: TEXT */ | "columnNumber" ":" ws number /* required; applies when selectorType = SEQ; type: INTEGER */ | "pathExpression" ":" ws string-like-value /* required; applies when format in (JSON, XML) and type = DATA and lineNumber = N or not set; type: TEXT */ | "tableColumn" ":" ws string-like-value /* required; applies when format in (JSON) and type = TABLE; type: TEXT */ | "formatMask" ":" ws string-like-value /* applies when dataType in (NUMBER, DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE) and type = DATA and lineNumber = N or not set; type: COMBOBOX */ | "hasTimeZone" ":" ws boolean /* required; applies when dataType in (DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE) and type = DATA; type: YES NO */ | "decimalChar" ":" ws string-like-value /* applies when dataType = NUMBER; type: TEXT */ | "groupChar" ":" ws string-like-value /* applies when dataType = NUMBER; type: TEXT */ data-profile-column-c-computation ::= indent "computation" ws "{" line-end ( data-profile-column-c-computation-property-line )* indent "}" line-end data-profile-column-c-computation-property-line ::= indent data-profile-column-c-computation-property line-end data-profile-column-c-computation-property ::= "sqlExpression" ":" ws multiline-string /* required; applies when type = SQL_EXPRESSION; type: SQL EXPRESSION */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL_QUERY; type: SQL */ data-profile-column-c-lookup ::= indent "lookup" ws "{" line-end ( data-profile-column-c-lookup-property-line )* indent "}" line-end data-profile-column-c-lookup-property-line ::= indent data-profile-column-c-lookup-property line-end data-profile-column-c-lookup-property ::= "tableOwner" ":" ws string-like-value /* applies when type = LOOKUP; type: OWNER */ | "tableName" ":" ws string-like-value /* required; applies when type = LOOKUP; type: TABLE */ | "returnColumn" ":" ws string-like-value /* required; applies when type = LOOKUP; type: COLUMN */ | "whereClause" ":" ws multiline-string /* applies when type = LOOKUP; type: WHERE CLAUSE */ | "tableColumn1" ":" ws string-like-value /* required; applies when type = LOOKUP; type: COLUMN */ | "dataColumn1" ":" ws string-like-value /* required; applies when type = LOOKUP; type: TEXT */ | "tableColumn2" ":" ws string-like-value /* type: COLUMN */ | "dataColumn2" ":" ws string-like-value /* required; type: TEXT */ | "tableColumn3" ":" ws string-like-value /* type: COLUMN */ | "dataColumn3" ":" ws string-like-value /* required; type: TEXT */ data-profile-column-c-transformation ::= indent "transformation" ws "{" line-end ( data-profile-column-c-transformation-property-line )* indent "}" line-end data-profile-column-c-transformation-property-line ::= indent data-profile-column-c-transformation-property line-end data-profile-column-c-transformation-property ::= "type" ":" ws ( "leftTrim" | "rightTrim" | "trim" | "replace" | "lower" | "upper" | "nullIf" | "regexpReplace" | "regexpNullIf" ) /* applies when dataType not in (BLOB, SDO_GEOMETRY, ARRAY) and type in (DATA, TABLE) and lineNumber = N or not set; type: SELECT LIST */ | "trimChars" ":" ws string-like-value /* applies when type in (LTRIM, RTRIM, TRIM); type: TEXT */ | "find" ":" ws string-like-value /* required; applies when type = REPLACE; type: TEXT */ | "regexp" ":" ws string-like-value /* required; applies when type in (REGEXP_REPLACE, REGEXP_NULLIF); type: TEXT */ | "replaceWith" ":" ws string-like-value /* applies when type in (REPLACE, REGEXP_REPLACE); type: TEXT */ | "value" ":" ws string-like-value /* required; applies when type = NULLIF; type: TEXT */ data-profile-column-c-advanced ::= indent "advanced" ws "{" line-end ( data-profile-column-c-advanced-property-line )* indent "}" line-end data-profile-column-c-advanced-property-line ::= indent data-profile-column-c-advanced-property line-end data-profile-column-c-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ | "sourceDataType" ":" ws string-like-value /* applies when type = DATA and lineNumber = N or not set; type: TEXT */ | "common" ":" ws boolean /* required; type: YES NO */ | "hidden" ":" ws boolean /* required; type: YES NO */ data-profile-column-c-comments ::= indent "comments" ws "{" line-end ( data-profile-column-c-comments-property-line )* indent "}" line-end data-profile-column-c-comments-property-line ::= indent data-profile-column-c-comments-property line-end data-profile-column-c-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* languageMapping */ /* direct properties use default group: translation */ language-mapping ::= "languageMapping" ( required-ws component-id )? ws "(" line-end ( language-mapping-body-line )* indent ")" line-end language-mapping-body-line ::= language-mapping-direct-property-line | language-mapping-group-block language-mapping-direct-property-line ::= indent language-mapping-direct-property line-end language-mapping-direct-property ::= "appId" ":" ws number /* required; type: INTEGER */ | "language" ":" ws string-like-value /* required; type: SELECT LIST; large enum list omitted */ | "documentDirection" ":" ws ( "true" | "false" ) /* type: SELECT LIST */ language-mapping-group-block ::= language-mapping-advanced | language-mapping-comments language-mapping-advanced ::= indent "advanced" ws "{" line-end ( language-mapping-advanced-property-line )* indent "}" line-end language-mapping-advanced-property-line ::= indent language-mapping-advanced-property line-end language-mapping-advanced-property ::= "imageDirectory" ":" ws string-like-value /* type: TEXT */ language-mapping-comments ::= indent "comments" ws "{" line-end ( language-mapping-comments-property-line )* indent "}" line-end language-mapping-comments-property-line ::= indent language-mapping-comments-property line-end language-mapping-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* legacyDataLoadDefinition */ /* direct properties use default group: identification */ legacy-data-load-definition ::= "legacyDataLoadDefinition" ( required-ws component-id )? ws "(" line-end ( legacy-data-load-definition-body-line )* indent ")" line-end legacy-data-load-definition-body-line ::= legacy-data-load-definition-direct-property-line | legacy-data-load-definition-group-block | legacy-data-load-definition-child-component legacy-data-load-definition-direct-property-line ::= indent legacy-data-load-definition-direct-property line-end legacy-data-load-definition-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ legacy-data-load-definition-group-block ::= legacy-data-load-definition-target | legacy-data-load-definition-unique-keys | legacy-data-load-definition-validation | legacy-data-load-definition-advanced | legacy-data-load-definition-subscription | legacy-data-load-definition-comments legacy-data-load-definition-target ::= indent "target" ws "{" line-end ( legacy-data-load-definition-target-property-line )* indent "}" line-end legacy-data-load-definition-target-property-line ::= indent legacy-data-load-definition-target-property line-end legacy-data-load-definition-target-property ::= "tableOwner" ":" ws string-like-value /* type: OWNER */ | "tableName" ":" ws string-like-value /* required; type: TABLE */ legacy-data-load-definition-unique-keys ::= indent "uniqueKeys" ws "{" line-end ( legacy-data-load-definition-unique-keys-property-line )* indent "}" line-end legacy-data-load-definition-unique-keys-property-line ::= indent legacy-data-load-definition-unique-keys-property line-end legacy-data-load-definition-unique-keys-property ::= "uniqueColumn1" ":" ws string-like-value /* required; type: COLUMN */ | "isUk1CaseSensitive" ":" ws boolean /* required; type: YES NO */ | "uniqueColumn2" ":" ws string-like-value /* type: COLUMN */ | "isUk2CaseSensitive" ":" ws boolean /* required; type: YES NO */ | "uniqueColumn3" ":" ws string-like-value /* type: COLUMN */ | "isUk3CaseSensitive" ":" ws boolean /* required; type: YES NO */ legacy-data-load-definition-validation ::= indent "validation" ws "{" line-end ( legacy-data-load-definition-validation-property-line )* indent "}" line-end legacy-data-load-definition-validation-property-line ::= indent legacy-data-load-definition-validation-property line-end legacy-data-load-definition-validation-property ::= "skipValidation" ":" ws boolean /* required; type: YES NO */ | "versionColumn" ":" ws string-like-value /* applies when skipValidation = N; type: COLUMN */ legacy-data-load-definition-advanced ::= indent "advanced" ws "{" line-end ( legacy-data-load-definition-advanced-property-line )* indent "}" line-end legacy-data-load-definition-advanced-property-line ::= indent legacy-data-load-definition-advanced-property line-end legacy-data-load-definition-advanced-property ::= "columnAliasesLov" ":" ws reference /* type: COMPONENT */ | "wizardPageIds" ":" ws string-like-value /* type: TEXT */ | "staticId" ":" ws string-like-value /* required; type: STATIC ID */ legacy-data-load-definition-subscription ::= indent "subscription" ws "{" line-end ( legacy-data-load-definition-subscription-property-line )* indent "}" line-end legacy-data-load-definition-subscription-property-line ::= indent legacy-data-load-definition-subscription-property line-end legacy-data-load-definition-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ legacy-data-load-definition-comments ::= indent "comments" ws "{" line-end ( legacy-data-load-definition-comments-property-line )* indent "}" line-end legacy-data-load-definition-comments-property-line ::= indent legacy-data-load-definition-comments-property line-end legacy-data-load-definition-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ legacy-data-load-definition-child-component ::= table-lookup | transformation-rule /* tableLookup */ /* direct properties use default group: identification */ table-lookup ::= "tableLookup" ( required-ws component-id )? ws "(" line-end ( table-lookup-body-line )* indent ")" line-end table-lookup-body-line ::= table-lookup-direct-property-line | table-lookup-group-block table-lookup-direct-property-line ::= indent table-lookup-direct-property line-end table-lookup-direct-property ::= "columnName" ":" ws string-like-value /* required; type: COLUMN */ table-lookup-group-block ::= table-lookup-source | table-lookup-compare-upload-with | table-lookup-lookup | table-lookup-error | table-lookup-advanced table-lookup-source ::= indent "source" ws "{" line-end ( table-lookup-source-property-line )* indent "}" line-end table-lookup-source-property-line ::= indent table-lookup-source-property line-end table-lookup-source-property ::= "tableOwner" ":" ws string-like-value /* type: OWNER */ | "tableName" ":" ws string-like-value /* required; type: TABLE */ | "whereClause" ":" ws multiline-string /* type: WHERE CLAUSE */ table-lookup-compare-upload-with ::= indent "compareUploadWith" ws "{" line-end ( table-lookup-compare-upload-with-property-line )* indent "}" line-end table-lookup-compare-upload-with-property-line ::= indent table-lookup-compare-upload-with-property line-end table-lookup-compare-upload-with-property ::= "column" ":" ws string-like-value /* required; type: COLUMN */ | "column2" ":" ws string-like-value /* type: COLUMN */ | "column3" ":" ws string-like-value /* type: COLUMN */ table-lookup-lookup ::= indent "lookup" ws "{" line-end ( table-lookup-lookup-property-line )* indent "}" line-end table-lookup-lookup-property-line ::= indent table-lookup-lookup-property line-end table-lookup-lookup-property ::= "returnColumn" ":" ws string-like-value /* required; type: COLUMN */ table-lookup-error ::= indent "error" ws "{" line-end ( table-lookup-error-property-line )* indent "}" line-end table-lookup-error-property-line ::= indent table-lookup-error-property line-end table-lookup-error-property ::= "errorMessage" ":" ws multiline-string /* type: TEXT EDITOR */ table-lookup-advanced ::= indent "advanced" ws "{" line-end ( table-lookup-advanced-property-line )* indent "}" line-end table-lookup-advanced-property-line ::= indent table-lookup-advanced-property line-end table-lookup-advanced-property ::= "insertNewValue" ":" ws boolean /* required; type: YES NO */ /* transformationRule */ /* direct properties use default group: identification */ transformation-rule ::= "transformationRule" ( required-ws component-id )? ws "(" line-end ( transformation-rule-body-line )* indent ")" line-end transformation-rule-body-line ::= transformation-rule-direct-property-line | transformation-rule-group-block transformation-rule-direct-property-line ::= indent transformation-rule-direct-property line-end transformation-rule-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ transformation-rule-group-block ::= transformation-rule-execution | transformation-rule-transformation | transformation-rule-error | transformation-rule-advanced transformation-rule-execution ::= indent "execution" ws "{" line-end ( transformation-rule-execution-property-line )* indent "}" line-end transformation-rule-execution-property-line ::= indent transformation-rule-execution-property line-end transformation-rule-execution-property ::= "sequence" ":" ws number /* required; type: NUMBER */ transformation-rule-transformation ::= indent "transformation" ws "{" line-end ( transformation-rule-transformation-property-line )* indent "}" line-end transformation-rule-transformation-property-line ::= indent transformation-rule-transformation-property line-end transformation-rule-transformation-property ::= "columnNames" ":" ws array-of-string-like-value /* required; type: COLUMN */ | "type" ":" ws ( "upperCase" | "lowerCase" | "replace" | "trim" | "leftTrim" | "rightTrim" | "singleWhitespace" | "plsqlExpression" | "plsqlFunctionBody" | "sqlQuerySingleValue" | "sqlQueryMultipleValues" ) /* required; type: SELECT LIST */ | "trim" ":" ws ( "trailing" | "leading" | "both" ) /* required; applies when type = TRIM; type: SELECT LIST */ | "find" ":" ws string-like-value /* required; applies when type = REPLACE; type: TEXT */ | "replaceWith" ":" ws string-like-value /* applies when type = REPLACE; type: TEXT */ | "plsqlExpression" ":" ws multiline-string /* required; applies when type = PLSQL_EXPRESSION */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (SQL_QUERY_SINGLE_VALUE, SQL_QUERY_SEMI_COLON); type: SQL */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when type = PLSQL_FUNCTION_BODY */ | "trimChars" ":" ws string-like-value /* applies when type in (LTRIM, RTRIM, TRIM); type: TEXT */ transformation-rule-error ::= indent "error" ws "{" line-end ( transformation-rule-error-property-line )* indent "}" line-end transformation-rule-error-property-line ::= indent transformation-rule-error-property line-end transformation-rule-error-property ::= "errorMessage" ":" ws multiline-string /* type: TEXT EDITOR */ transformation-rule-advanced ::= indent "advanced" ws "{" line-end ( transformation-rule-advanced-property-line )* indent "}" line-end transformation-rule-advanced-property-line ::= indent transformation-rule-advanced-property line-end transformation-rule-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ /* list */ /* direct properties use default group: identification */ list ::= "list" ( required-ws component-id )? ws "(" line-end ( list-body-line )* indent ")" line-end list-body-line ::= list-direct-property-line | list-group-block | list-child-component list-direct-property-line ::= indent list-direct-property line-end list-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ list-group-block ::= list-source | list-advanced | list-config | list-subscription | list-comments list-source ::= indent "source" ws "{" line-end ( list-source-property-line )* indent "}" line-end list-source-property-line ::= indent list-source-property line-end list-source-property ::= "type" ":" ws ( "staticValues" | "sqlQuery" | "functionBody" ) /* required; type: SELECT LIST */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL_QUERY; type: SQL */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_RETURNING_SQL_QUERY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY SQL */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY SQL */ list-advanced ::= indent "advanced" ws "{" line-end ( list-advanced-property-line )* indent "}" line-end list-advanced-property-line ::= indent list-advanced-property line-end list-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ list-config ::= indent "config" ws "{" line-end ( list-config-property-line )* indent "}" line-end list-config-property-line ::= indent list-config-property line-end list-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ list-subscription ::= indent "subscription" ws "{" line-end ( list-subscription-property-line )* indent "}" line-end list-subscription-property-line ::= indent list-subscription-property line-end list-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ list-comments ::= indent "comments" ws "{" line-end ( list-comments-property-line )* indent "}" line-end list-comments-property-line ::= indent list-comments-property line-end list-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ list-child-component ::= entry-c /* entry */ /* direct properties use default group: label */ entry-c ::= "entry" ( required-ws component-id )? ws "(" line-end ( entry-c-body-line )* indent ")" line-end entry-c-body-line ::= entry-c-direct-property-line | entry-c-group-block entry-c-direct-property-line ::= indent entry-c-direct-property line-end entry-c-direct-property ::= "label" ":" ws multiline-string /* required; type: HTML */ entry-c-group-block ::= entry-c-icon | entry-c-layout | entry-c-is-current | entry-c-link | entry-c-click-counting | entry-c-user-defined-attributes | entry-c-advanced | entry-c-server-side-condition | entry-c-security | entry-c-config | entry-c-comments entry-c-icon ::= indent "icon" ws "{" line-end ( entry-c-icon-property-line )* indent "}" line-end entry-c-icon-property-line ::= indent entry-c-icon-property line-end entry-c-icon-property ::= "imageIconCssClasses" ":" ws string-like-value /* type: ICON */ | "attributes" ":" ws string-like-value /* type: TEXT */ | "altAttribute" ":" ws string-like-value /* type: TEXT */ entry-c-layout ::= indent "layout" ws "{" line-end ( entry-c-layout-property-line )* indent "}" line-end entry-c-layout-property-line ::= indent entry-c-layout-property line-end entry-c-layout-property ::= "sequence" ":" ws number /* required; type: NUMBER */ | "parentEntry" ":" ws reference /* type: COMPONENT */ | "subentriesList" ":" ws reference /* type: COMPONENT */ entry-c-is-current ::= indent "isCurrent" ws "{" line-end ( entry-c-is-current-property-line )* indent "}" line-end entry-c-is-current-property-line ::= indent entry-c-is-current-property line-end entry-c-is-current-property ::= "type" ":" ws ( "targetPage" | "pages" | "existsSqlQuery" | "notExistsSqlQuery" | "expression" | "always" | "never" ) /* required; type: SELECT LIST */ | "pages" ":" ws array-of-number /* required; applies when type = COLON_DELIMITED_PAGE_LIST; type: PAGE */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ entry-c-link ::= indent "link" ws "{" line-end ( entry-c-link-property-line )* indent "}" line-end entry-c-link-property-line ::= indent entry-c-link-property line-end entry-c-link-property ::= "target" ":" ws value /* type: LINK */ | "linkAttributes" ":" ws string-like-value /* applies when target is set; type: TEXT */ entry-c-click-counting ::= indent "clickCounting" ws "{" line-end ( entry-c-click-counting-property-line )* indent "}" line-end entry-c-click-counting-property-line ::= indent entry-c-click-counting-property line-end entry-c-click-counting-property ::= "countClicks" ":" ws boolean /* required; applies when target is set; type: YES NO */ | "category" ":" ws string-like-value /* applies when countClicks = Y; type: TEXT */ entry-c-user-defined-attributes ::= indent "userDefinedAttributes" ws "{" line-end ( entry-c-user-defined-attributes-property-line )* indent "}" line-end entry-c-user-defined-attributes-property-line ::= indent entry-c-user-defined-attributes-property line-end entry-c-user-defined-attributes-property ::= "translatable" ":" ws boolean /* required; type: YES NO */ | "1" ":" ws multiline-string /* type: TEXT EDITOR */ | "2" ":" ws multiline-string /* type: TEXT EDITOR */ | "3" ":" ws multiline-string /* type: TEXT EDITOR */ | "4" ":" ws multiline-string /* type: TEXT EDITOR */ | "5" ":" ws multiline-string /* type: TEXT EDITOR */ | "6" ":" ws multiline-string /* type: TEXT EDITOR */ | "7" ":" ws multiline-string /* type: TEXT EDITOR */ | "8" ":" ws multiline-string /* type: TEXT EDITOR */ | "9" ":" ws multiline-string /* type: TEXT EDITOR */ | "10" ":" ws multiline-string /* type: TEXT EDITOR */ entry-c-advanced ::= indent "advanced" ws "{" line-end ( entry-c-advanced-property-line )* indent "}" line-end entry-c-advanced-property-line ::= indent entry-c-advanced-property line-end entry-c-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ entry-c-server-side-condition ::= indent "serverSideCondition" ws "{" line-end ( entry-c-server-side-condition-property-line )* indent "}" line-end entry-c-server-side-condition-property-line ::= indent entry-c-server-side-condition-property line-end entry-c-server-side-condition-property ::= "type" ":" ws string-like-value /* type: SELECT LIST; large enum list omitted */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "preference" ":" ws string-like-value /* required; type: TEXT */ | "page" ":" ws number /* required; applies when type in (CURRENT_PAGE_EQUALS_CONDITION, CURRENT_PAGE_NOT_EQUAL_CONDITION); type: PAGE */ | "pages" ":" ws array-of-number /* required; applies when type in (CURRENT_PAGE_IN_CONDITION, CURRENT_PAGE_NOT_IN_CONDITION); type: PAGE */ | "text" ":" ws string-like-value /* required; type: TEXT */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (VALUE_OF_ITEM_IN_CONDITION_IN_COLON_DELIMITED_LIST, VALUE_OF_ITEM_IN_CONDITION_NOT_IN_COLON_DELIMITED_LIST); type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "value" ":" ws string-like-value /* required; applies when type in (DISPLAY_COND_IN_COND_TEXT, DISPLAY_COND_NOT_IN_COND_TEXT, DISPLAY_COND_EQUAL_COND_TEXT, DISP_COND_NOT_EQUAL_COND_TEXT); type: TEXT */ entry-c-security ::= indent "security" ws "{" line-end ( entry-c-security-property-line )* indent "}" line-end entry-c-security-property-line ::= indent entry-c-security-property line-end entry-c-security-property ::= "authorizationScheme" ":" ws reference /* type: COMPONENT */ entry-c-config ::= indent "config" ws "{" line-end ( entry-c-config-property-line )* indent "}" line-end entry-c-config-property-line ::= indent entry-c-config-property line-end entry-c-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ entry-c-comments ::= indent "comments" ws "{" line-end ( entry-c-comments-property-line )* indent "}" line-end entry-c-comments-property-line ::= indent entry-c-comments-property line-end entry-c-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* lov */ /* direct properties use default group: identification */ lov ::= "lov" ( required-ws component-id )? ws "(" line-end ( lov-body-line )* indent ")" line-end lov-body-line ::= lov-direct-property-line | lov-group-block | lov-child-component lov-direct-property-line ::= indent lov-direct-property line-end lov-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ lov-group-block ::= lov-source | lov-data-profile | lov-rest-synchronization | lov-external-filter-and-order-by | lov-local-post-processing | lov-remote-cache | lov-column-mapping | lov-advanced | lov-subscription | lov-comments lov-source ::= indent "source" ws "{" line-end ( lov-source-property-line )* indent "}" line-end lov-source-property-line ::= indent lov-source-property line-end lov-source-property ::= "location" ":" ws ( "staticValues" | "localDatabase" | "restEnabledSql" | "restSource" | "jsonDualityView" | "jsonSource" | "sampleData" ) /* required; type: SELECT LIST */ | "remoteServer" ":" ws reference /* required; applies when location = REMOTE; type: COMPONENT */ | "sampleData" ":" ws ( "employees" | "tasks" | "products" | "projects" ) /* required; applies when location = SAMPLE_DATA; type: SELECT LIST */ | "type" ":" ws string-like-value /* required; applies when location in (LOCAL, REMOTE); type: SELECT LIST */ | "tableOwner" ":" ws string-like-value /* applies when type = TABLE; type: OWNER */ | "tableName" ":" ws string-like-value /* required; applies when type = TABLE; type: TABLE */ | "whereClause" ":" ws multiline-string /* applies when type = TABLE; type: WHERE CLAUSE */ | "graphOwner" ":" ws string-like-value /* applies when type = GRAPH; type: OWNER */ | "graphName" ":" ws string-like-value /* required; applies when type = GRAPH; type: GRAPH */ | "matchClause" ":" ws multiline-string /* required; applies when type = GRAPH; type: TEXT EDITOR */ | "columnsClause" ":" ws multiline-string /* required; applies when type = GRAPH; type: TEXT EDITOR */ | "whereClause" ":" ws multiline-string /* applies when type = GRAPH; type: WHERE CLAUSE */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL; type: SQL */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = LEGACY_SQL; type: SQL */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNC_BODY_RETURNING_SQL; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY SQL */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY SQL */ | "restSource" ":" ws reference /* required; applies when location = WEB_SOURCE; type: COMPONENT */ | "jsonDualityView" ":" ws reference /* required; applies when location = DUALITY_VIEW; type: COMPONENT */ | "jsonSource" ":" ws reference /* required; applies when location = JSON_COLLECTION; type: COMPONENT */ | "optimizerHint" ":" ws string-like-value /* applies when location in (LOCAL, REMOTE, WEB_SOURCE, DUALITY_VIEW, JSON_COLLECTION); type: TEXT */ lov-data-profile ::= indent "dataProfile" ws "{" line-end ( lov-data-profile-property-line )* indent "}" line-end lov-data-profile-property-line ::= indent lov-data-profile-property line-end lov-data-profile-property ::= "nestedRows" ":" ws reference /* applies when restSource supports HAS_ARRAY_COLUMNS; type: COMPONENT */ | "nestedRows" ":" ws reference /* applies when jsonDualityView supports HAS_ARRAY_COLUMNS; type: COMPONENT */ | "nestedRows" ":" ws reference /* applies when jsonSource supports HAS_ARRAY_COLUMNS; type: COMPONENT */ lov-rest-synchronization ::= indent "restSynchronization" ws "{" line-end ( lov-rest-synchronization-property-line )* indent "}" line-end lov-rest-synchronization-property-line ::= indent lov-rest-synchronization-property line-end lov-rest-synchronization-property ::= "useLocalTable" ":" ws boolean /* required; applies when restSource supports HAS_SYNC_HAS_NO_ARRAY_COLUMNS or property matches or nestedRows supports IS_SYNCED; type: YES NO */ lov-external-filter-and-order-by ::= indent "externalFilterAndOrderBy" ws "{" line-end ( lov-external-filter-and-order-by-property-line )* indent "}" line-end lov-external-filter-and-order-by-property-line ::= indent lov-external-filter-and-order-by-property line-end lov-external-filter-and-order-by-property ::= "enabled" ":" ws boolean /* required; applies when restSource is set and useLocalTable in (N, $NULL$) or not set; type: YES NO */ | "filter" ":" ws multiline-string /* applies when enabled = Y; type: TEXT EDITOR */ | "orderBy" ":" ws multiline-string /* applies when enabled = Y; type: TEXT EDITOR */ lov-local-post-processing ::= indent "localPostProcessing" ws "{" line-end ( lov-local-post-processing-property-line )* indent "}" line-end lov-local-post-processing-property-line ::= indent lov-local-post-processing-property line-end lov-local-post-processing-property ::= "type" ":" ws ( "whereOrderByClause" | "sqlQuery" | "plsqlFunctionBody" ) /* applies when restSource is set; type: SELECT LIST */ | "whereClause" ":" ws multiline-string /* applies when type = WHERE_ORDER_BY_CLAUSE; type: WHERE CLAUSE */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL; type: SQL */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNC_BODY_RETURNING_SQL; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY SQL */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY SQL */ | "type" ":" ws ( "whereOrderByClause" | "sqlQuery" | "plsqlFunctionBody" ) /* applies when jsonDualityView is set; type: SELECT LIST */ | "whereClause" ":" ws multiline-string /* applies when type = WHERE_ORDER_BY_CLAUSE; type: WHERE CLAUSE */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL; type: SQL */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNC_BODY_RETURNING_SQL; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY SQL */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY SQL */ | "type" ":" ws ( "whereOrderByClause" | "sqlQuery" | "plsqlFunctionBody" ) /* applies when jsonSource is set; type: SELECT LIST */ | "whereClause" ":" ws multiline-string /* applies when type = WHERE_ORDER_BY_CLAUSE; type: WHERE CLAUSE */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL; type: SQL */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNC_BODY_RETURNING_SQL; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY SQL */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY SQL */ lov-remote-cache ::= indent "remoteCache" ws "{" line-end ( lov-remote-cache-property-line )* indent "}" line-end lov-remote-cache-property-line ::= indent lov-remote-cache-property line-end lov-remote-cache-property ::= "caching" ":" ws ( "allUsers" | "user" | "session" ) /* applies when location = REMOTE; type: SELECT LIST */ | "timeout" ":" ws multiline-string /* required; applies when caching is set; type: TEXT EDITOR */ lov-column-mapping ::= indent "columnMapping" ws "{" line-end ( lov-column-mapping-property-line )* indent "}" line-end lov-column-mapping-property-line ::= indent lov-column-mapping-property line-end lov-column-mapping-property ::= "return" ":" ws string-like-value /* required; applies when location in (LOCAL, REMOTE, SAMPLE_DATA, DUALITY_VIEW, JSON_COLLECTION, WEB_SOURCE) and type != LEGACY_SQL or not set; type: COLUMN */ | "display" ":" ws string-like-value /* applies when location in (LOCAL, REMOTE, SAMPLE_DATA, DUALITY_VIEW, JSON_COLLECTION, WEB_SOURCE) and type != LEGACY_SQL or not set; type: COLUMN */ | "defaultSort" ":" ws string-like-value /* applies when location in (LOCAL, REMOTE, SAMPLE_DATA, DUALITY_VIEW, JSON_COLLECTION, WEB_SOURCE) and type != LEGACY_SQL or not set; type: COLUMN */ | "sortDirection" ":" ws ( "ascNullsLast" | "ascNullsFirst" | "descNullsLast" | "descNullsFirst" ) /* required; applies when defaultSort is set; type: SELECT LIST */ | "group" ":" ws string-like-value /* applies when defaultSort is set; type: COLUMN */ | "groupSortDirection" ":" ws ( "ascNullsLast" | "ascNullsFirst" | "descNullsLast" | "descNullsFirst" ) /* required; applies when group is set; type: SELECT LIST */ | "icon" ":" ws string-like-value /* applies when location in (LOCAL, REMOTE, SAMPLE_DATA, DUALITY_VIEW, JSON_COLLECTION, WEB_SOURCE) and type != LEGACY_SQL or not set; type: COLUMN */ | "quickPickRank" ":" ws string-like-value /* applies when location in (LOCAL, REMOTE) and type != LEGACY_SQL or not set; type: COLUMN */ | "oracleTextIndex" ":" ws string-like-value /* applies when location in (LOCAL, REMOTE) and type != LEGACY_SQL or not set; type: COLUMN */ lov-advanced ::= indent "advanced" ws "{" line-end ( lov-advanced-property-line )* indent "}" line-end lov-advanced-property-line ::= indent lov-advanced-property line-end lov-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ lov-subscription ::= indent "subscription" ws "{" line-end ( lov-subscription-property-line )* indent "}" line-end lov-subscription-property-line ::= indent lov-subscription-property line-end lov-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ lov-comments ::= indent "comments" ws "{" line-end ( lov-comments-property-line )* indent "}" line-end lov-comments-property-line ::= indent lov-comments-property line-end lov-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ lov-child-component ::= column-a | entry-d | parameter-d /* column */ /* direct properties use default group: identification */ column-a ::= "column" ( required-ws component-id )? ws "(" line-end ( column-a-body-line )* indent ")" line-end column-a-body-line ::= column-a-direct-property-line | column-a-group-block column-a-direct-property-line ::= indent column-a-direct-property line-end column-a-direct-property ::= "columnName" ":" ws string-like-value /* required; type: TEXT */ | "show" ":" ws boolean /* required; type: YES NO */ column-a-group-block ::= column-a-heading | column-a-layout | column-a-source | column-a-appearance | column-a-advanced | column-a-comments column-a-heading ::= indent "heading" ws "{" line-end ( column-a-heading-property-line )* indent "}" line-end column-a-heading-property-line ::= indent column-a-heading-property line-end column-a-heading-property ::= "heading" ":" ws string-like-value /* type: TEXT */ column-a-layout ::= indent "layout" ws "{" line-end ( column-a-layout-property-line )* indent "}" line-end column-a-layout-property-line ::= indent column-a-layout-property line-end column-a-layout-property ::= "sequence" ":" ws number /* required; type: NUMBER */ column-a-source ::= indent "source" ws "{" line-end ( column-a-source-property-line )* indent "}" line-end column-a-source-property-line ::= indent column-a-source-property line-end column-a-source-property ::= "dataType" ":" ws ( "varchar2" | "number" | "date" | "timestamp" | "timestampWithTimeZone" | "timestampWithLocalTimeZone" | "intervalYearToMonth" | "intervalDayToSecond" | "clob" | "blob" | "boolean" | "rowid" | "bfile" | "sdoGeometry" ) /* required; type: SELECT LIST */ column-a-appearance ::= indent "appearance" ws "{" line-end ( column-a-appearance-property-line )* indent "}" line-end column-a-appearance-property-line ::= indent column-a-appearance-property line-end column-a-appearance-property ::= "formatMask" ":" ws string-like-value /* applies when dataType in (DATE, TIMESTAMP, TIMESTAMP_TZ, TIMESTAMP_LTZ); type: COMBOBOX */ | "formatMask" ":" ws string-like-value /* applies when dataType = NUMBER; type: COMBOBOX */ | "formatMask" ":" ws string-like-value /* applies when dataType not in (DATE, TIMESTAMP, TIMESTAMP_TZ, TIMESTAMP_LTZ, NUMBER); type: COMBOBOX */ column-a-advanced ::= indent "advanced" ws "{" line-end ( column-a-advanced-property-line )* indent "}" line-end column-a-advanced-property-line ::= indent column-a-advanced-property line-end column-a-advanced-property ::= "searchable" ":" ws boolean /* required; type: YES NO */ column-a-comments ::= indent "comments" ws "{" line-end ( column-a-comments-property-line )* indent "}" line-end column-a-comments-property-line ::= indent column-a-comments-property line-end column-a-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* entry */ /* direct properties use default group: entry */ entry-d ::= "entry" ( required-ws component-id )? ws "(" line-end ( entry-d-body-line )* indent ")" line-end entry-d-body-line ::= entry-d-direct-property-line | entry-d-group-block entry-d-direct-property-line ::= indent entry-d-direct-property line-end entry-d-direct-property ::= "sequence" ":" ws number /* required; type: NUMBER */ | "display" ":" ws multiline-string /* required; type: TEXT EDITOR */ | "return" ":" ws string-like-value /* required; type: TEXT */ | "quickPickRank" ":" ws number /* type: INTEGER */ entry-d-group-block ::= entry-d-globalization | entry-d-advanced | entry-d-server-side-condition | entry-d-config | entry-d-comments entry-d-globalization ::= indent "globalization" ws "{" line-end ( entry-d-globalization-property-line )* indent "}" line-end entry-d-globalization-property-line ::= indent entry-d-globalization-property line-end entry-d-globalization-property ::= "template" ":" ws multiline-string /* type: HTML */ entry-d-advanced ::= indent "advanced" ws "{" line-end ( entry-d-advanced-property-line )* indent "}" line-end entry-d-advanced-property-line ::= indent entry-d-advanced-property line-end entry-d-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ entry-d-server-side-condition ::= indent "serverSideCondition" ws "{" line-end ( entry-d-server-side-condition-property-line )* indent "}" line-end entry-d-server-side-condition-property-line ::= indent entry-d-server-side-condition-property line-end entry-d-server-side-condition-property ::= "type" ":" ws string-like-value /* type: SELECT LIST; large enum list omitted */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "preference" ":" ws string-like-value /* required; type: TEXT */ | "page" ":" ws number /* required; applies when type in (CURRENT_PAGE_EQUALS_CONDITION, CURRENT_PAGE_NOT_EQUAL_CONDITION); type: PAGE */ | "pages" ":" ws array-of-number /* required; applies when type in (CURRENT_PAGE_IN_CONDITION, CURRENT_PAGE_NOT_IN_CONDITION); type: PAGE */ | "text" ":" ws string-like-value /* required; type: TEXT */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (VALUE_OF_ITEM_IN_CONDITION_IN_COLON_DELIMITED_LIST, VALUE_OF_ITEM_IN_CONDITION_NOT_IN_COLON_DELIMITED_LIST); type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "value" ":" ws string-like-value /* required; applies when type in (DISPLAY_COND_IN_COND_TEXT, DISPLAY_COND_NOT_IN_COND_TEXT, DISPLAY_COND_EQUAL_COND_TEXT, DISP_COND_NOT_EQUAL_COND_TEXT); type: TEXT */ entry-d-config ::= indent "config" ws "{" line-end ( entry-d-config-property-line )* indent "}" line-end entry-d-config-property-line ::= indent entry-d-config-property line-end entry-d-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ entry-d-comments ::= indent "comments" ws "{" line-end ( entry-d-comments-property-line )* indent "}" line-end entry-d-comments-property-line ::= indent entry-d-comments-property line-end entry-d-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* parameter */ /* direct properties use default group: identification */ parameter-d ::= "parameter" ( required-ws component-id )? ws "(" line-end ( parameter-d-body-line )* indent ")" line-end parameter-d-body-line ::= parameter-d-direct-property-line | parameter-d-group-block parameter-d-direct-property-line ::= indent parameter-d-direct-property line-end parameter-d-direct-property ::= "name" ":" ws reference /* required; type: COMPONENT */ parameter-d-group-block ::= parameter-d-value parameter-d-value ::= indent "value" ws "{" line-end ( parameter-d-value-property-line )* indent "}" line-end parameter-d-value-property-line ::= indent parameter-d-value-property line-end parameter-d-value-property ::= "type" ":" ws ( "staticValue" | "restSourceDefault" | "item" | "sqlQuery" | "expression" | "functionBody" | "collectionClob" | "preference" | "null" ) /* required; type: SELECT LIST */ | "staticValue" ":" ws multiline-string /* required; applies when type = STATIC and name NOT_FEATURES BOOLEAN_PARAMETER; type: TEXT EDITOR */ | "staticValue" ":" ws ( "true" | "false" ) /* required; applies when type = STATIC and name supports BOOLEAN_PARAMETER; type: SELECT LIST */ | "sqlQuery" ":" ws multiline-string /* required; applies when type = SQL_QUERY; type: SQL */ | "item" ":" ws string-like-value /* required; applies when type = ITEM; type: ITEM */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION CUSTOM */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION CUSTOM */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION CUSTOM */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY CUSTOM */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY CUSTOM */ | "preference" ":" ws string-like-value /* required; applies when type = PREFERENCE; type: TEXT */ | "name" ":" ws string-like-value /* required; applies when type = COLLECTION; type: TEXT */ | "formatMask" ":" ws string-like-value /* applies when name supports NUMBER_PARAMETER, DATE_PARAMETER, TIMESTAMP_PARAMETER, TIMESTAMP_TZ_PARAMETER and type in (STATIC, ITEM, PREFERENCE); type: COMBOBOX */ | "trueValue" ":" ws string-like-value /* applies when name supports BOOLEAN_PARAMETER and type in (ITEM, PREFERENCE); type: TEXT */ | "falseValue" ":" ws string-like-value /* applies when name supports BOOLEAN_PARAMETER and type in (ITEM, PREFERENCE); type: TEXT */ /* mapBackground */ /* direct properties use default group: identification */ map-background ::= "mapBackground" ( required-ws component-id )? ws "(" line-end ( map-background-body-line )* indent ")" line-end map-background-body-line ::= map-background-direct-property-line | map-background-group-block map-background-direct-property-line ::= indent map-background-direct-property line-end map-background-direct-property ::= "name" ":" ws string-like-value /* required; type: TEXT */ | "type" ":" ws ( "raster" | "vector" | "ogcWms" ) /* required; type: SELECT LIST */ | "url" ":" ws string-like-value /* required; type: TEXT */ | "attribution" ":" ws multiline-string /* applies when type in (RASTER, OGCWMS); type: TEXT EDITOR */ | "apiKey" ":" ws ( "staticValue" | "webCredential" ) /* type: SELECT LIST */ | "staticValue" ":" ws string-like-value /* required; applies when apiKey = STATIC; type: TEXT */ | "webCredential" ":" ws reference /* required; applies when apiKey = WEB_CREDENTIAL; type: COMPONENT */ | "httpHeaders" ":" ws multiline-string /* type: TEXT EDITOR */ map-background-group-block ::= map-background-advanced | map-background-subscription | map-background-comments map-background-advanced ::= indent "advanced" ws "{" line-end ( map-background-advanced-property-line )* indent "}" line-end map-background-advanced-property-line ::= indent map-background-advanced-property line-end map-background-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ | "minZoomLevel" ":" ws number /* type: NUMBER */ | "maxZoomLevel" ":" ws number /* type: NUMBER */ map-background-subscription ::= indent "subscription" ws "{" line-end ( map-background-subscription-property-line )* indent "}" line-end map-background-subscription-property-line ::= indent map-background-subscription-property line-end map-background-subscription-property ::= "master" ":" ws string-like-value /* type: SUBSCRIPTION */ map-background-comments ::= indent "comments" ws "{" line-end ( map-background-comments-property-line )* indent "}" line-end map-background-comments-property-line ::= indent map-background-comments-property line-end map-background-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* page */ /* direct properties use default group: identification */ page ::= "page" ( required-ws component-id )? ws "(" line-end ( page-body-line )* indent ")" line-end page-body-line ::= page-direct-property-line | page-group-block | page-child-component page-direct-property-line ::= indent page-direct-property line-end page-direct-property ::= "page" ":" ws number /* required; type: NUMBER */ | "name" ":" ws string-like-value /* required; type: TEXT */ | "alias" ":" ws string-like-value /* applies when globalPage != #COMPONENT_PAGE_ID#; type: TEXT */ | "title" ":" ws string-like-value /* applies when globalPage != #COMPONENT_PAGE_ID#; type: TEXT */ | "pageGroup" ":" ws reference /* applies when type in (STANDARD, PATTERN); type: COMPONENT */ page-group-block ::= page-appearance | page-dialog | page-navigation-menu | page-navigation | page-java-script | page-css | page-html-header | page-header-and-footer | page-read-only | page-security | page-session-management | page-advanced | page-server-cache | page-error-handling | page-help | page-config | page-comments page-appearance ::= indent "appearance" ws "{" line-end ( page-appearance-property-line )* indent "}" line-end page-appearance-property-line ::= indent page-appearance-property line-end page-appearance-property ::= "pageMode" ":" ws ( "normal" | "modalDialog" | "nonModalDialog" ) /* required; applies when globalPage != #COMPONENT_PAGE_ID#; type: SELECT LIST */ | "pageTemplate" ":" ws reference /* required; applies when pageMode = NORMAL and globalPage != #COMPONENT_PAGE_ID#; type: COMPONENT */ | "dialogTemplate" ":" ws reference /* required; applies when pageMode in (MODAL, NON_MODAL); type: COMPONENT */ | "templateOptions" ":" ws array-of-string-like-value /* type: TEMPLATE OPTIONS */ | "cssClasses" ":" ws array-of-string-like-value /* applies when globalPage != #COMPONENT_PAGE_ID#; type: COMBOBOX */ | "mediaType" ":" ws string-like-value /* applies when globalPage != #COMPONENT_PAGE_ID#; type: TEXT */ page-dialog ::= indent "dialog" ws "{" line-end ( page-dialog-property-line )* indent "}" line-end page-dialog-property-line ::= indent page-dialog-property line-end page-dialog-property ::= "width" ":" ws string-like-value /* applies when pageMode in (MODAL, NON_MODAL); type: TEXT */ | "height" ":" ws string-like-value /* applies when pageMode in (MODAL, NON_MODAL); type: TEXT */ | "maxWidth" ":" ws string-like-value /* applies when pageMode in (MODAL, NON_MODAL); type: TEXT */ | "attributes" ":" ws array-of-string-like-value /* applies when pageMode in (MODAL, NON_MODAL); type: COMBOBOX */ | "cssClasses" ":" ws array-of-string-like-value /* applies when pageMode in (MODAL, NON_MODAL); type: COMBOBOX */ | "chained" ":" ws boolean /* required; applies when pageMode in (MODAL, NON_MODAL); type: YES NO */ | "resizable" ":" ws boolean /* required; applies when pageMode in (MODAL, NON_MODAL); type: YES NO */ page-navigation-menu ::= indent "navigationMenu" ws "{" line-end ( page-navigation-menu-property-line )* indent "}" line-end page-navigation-menu-property-line ::= indent page-navigation-menu-property line-end page-navigation-menu-property ::= "overrideUserInterfaceLevel" ":" ws boolean /* required; applies when currentTheme supports HAS_LIST_NAVIGATION and globalPage != #COMPONENT_PAGE_ID#; type: YES NO */ | "list" ":" ws reference /* applies when overrideUserInterfaceLevel = Y; type: COMPONENT */ | "listPosition" ":" ws ( "top" | "side" ) /* required; applies when list is set; type: SELECT LIST */ | "listTemplate" ":" ws reference /* required; applies when list is set; type: COMPONENT */ | "templateOptions" ":" ws array-of-string-like-value /* applies when list is set; type: TEMPLATE OPTIONS */ page-navigation ::= indent "navigation" ws "{" line-end ( page-navigation-property-line )* indent "}" line-end page-navigation-property-line ::= indent page-navigation-property line-end page-navigation-property ::= "cursorFocus" ":" ws ( "firstItemOnPage" | "doNotFocusCursor" ) /* required; applies when globalPage != #COMPONENT_PAGE_ID#; type: SELECT LIST */ | "warnOnUnsavedChanges" ":" ws boolean /* required; applies when globalPage != #COMPONENT_PAGE_ID#; type: YES NO */ page-java-script ::= indent "javaScript" ws "{" line-end ( page-java-script-property-line )* indent "}" line-end page-java-script-property-line ::= indent page-java-script-property line-end page-java-script-property ::= "fileUrls" ":" ws array-of-string-like-value /* applies when globalPage != #COMPONENT_PAGE_ID#; type: FILE URLS JAVASCRIPT */ | "functionAndGlobalVariableDeclaration" ":" ws multiline-string /* applies when globalPage != #COMPONENT_PAGE_ID#; type: JAVASCRIPT */ | "executeWhenPageLoads" ":" ws multiline-string /* applies when globalPage != #COMPONENT_PAGE_ID#; type: JAVASCRIPT */ | "includeStandardJavaScriptAndCss" ":" ws boolean /* required; applies when globalPage != #COMPONENT_PAGE_ID#; type: YES NO */ page-css ::= indent "css" ws "{" line-end ( page-css-property-line )* indent "}" line-end page-css-property-line ::= indent page-css-property line-end page-css-property ::= "fileUrls" ":" ws array-of-string-like-value /* applies when globalPage != #COMPONENT_PAGE_ID#; type: FILE URLS CSS */ | "inline" ":" ws multiline-string /* applies when globalPage != #COMPONENT_PAGE_ID#; type: CSS */ page-html-header ::= indent "htmlHeader" ws "{" line-end ( page-html-header-property-line )* indent "}" line-end page-html-header-property-line ::= indent page-html-header-property line-end page-html-header-property ::= "htmlHeader" ":" ws multiline-string /* applies when globalPage != #COMPONENT_PAGE_ID#; type: HTML */ | "pageHtmlBodyAttribute" ":" ws multiline-string /* applies when globalPage != #COMPONENT_PAGE_ID#; type: TEXT EDITOR */ page-header-and-footer ::= indent "headerAndFooter" ws "{" line-end ( page-header-and-footer-property-line )* indent "}" line-end page-header-and-footer-property-line ::= indent page-header-and-footer-property line-end page-header-and-footer-property ::= "headerText" ":" ws multiline-string /* applies when globalPage != #COMPONENT_PAGE_ID#; type: HTML */ | "bodyHeader" ":" ws multiline-string /* applies when globalPage != #COMPONENT_PAGE_ID#; type: HTML */ | "footerText" ":" ws multiline-string /* applies when globalPage != #COMPONENT_PAGE_ID#; type: HTML */ page-read-only ::= indent "readOnly" ws "{" line-end ( page-read-only-property-line )* indent "}" line-end page-read-only-property-line ::= indent page-read-only-property line-end page-read-only-property ::= "type" ":" ws string-like-value /* applies when globalPage != #COMPONENT_PAGE_ID#; type: SELECT LIST; large enum list omitted */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "preference" ":" ws string-like-value /* required; type: TEXT */ | "page" ":" ws number /* required; applies when type in (CURRENT_PAGE_EQUALS_CONDITION, CURRENT_PAGE_NOT_EQUAL_CONDITION); type: PAGE */ | "pages" ":" ws array-of-number /* required; applies when type in (CURRENT_PAGE_IN_CONDITION, CURRENT_PAGE_NOT_IN_CONDITION); type: PAGE */ | "text" ":" ws string-like-value /* required; type: TEXT */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (VALUE_OF_ITEM_IN_CONDITION_IN_COLON_DELIMITED_LIST, VALUE_OF_ITEM_IN_CONDITION_NOT_IN_COLON_DELIMITED_LIST); type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "value" ":" ws string-like-value /* required; applies when type in (DISPLAY_COND_IN_COND_TEXT, DISPLAY_COND_NOT_IN_COND_TEXT, DISPLAY_COND_EQUAL_COND_TEXT, DISP_COND_NOT_EQUAL_COND_TEXT); type: TEXT */ page-security ::= indent "security" ws "{" line-end ( page-security-property-line )* indent "}" line-end page-security-property-line ::= indent page-security-property line-end page-security-property ::= "authorizationScheme" ":" ws reference /* applies when globalPage != #COMPONENT_PAGE_ID#; type: COMPONENT */ | "authentication" ":" ws ( "required" | "public" ) /* required; applies when globalPage != #COMPONENT_PAGE_ID#; type: SELECT LIST */ | "deepLinking" ":" ws ( "true" | "false" ) /* applies when globalPage != #COMPONENT_PAGE_ID#; type: SELECT LIST */ | "pageAccessProtection" ":" ws ( "unrestricted" | "argumentsMustHaveChecksum" | "noArgumentsSupported" | "noUrlAccess" ) /* required; applies when globalPage != #COMPONENT_PAGE_ID#; type: SELECT LIST */ | "formAutoComplete" ":" ws ( "true" | "false" ) /* required; applies when globalPage != #COMPONENT_PAGE_ID#; type: SELECT LIST */ | "browserCache" ":" ws ( "true" | "false" ) /* applies when globalPage != #COMPONENT_PAGE_ID#; type: SELECT LIST */ page-session-management ::= indent "sessionManagement" ws "{" line-end ( page-session-management-property-line )* indent "}" line-end page-session-management-property-line ::= indent page-session-management-property line-end page-session-management-property ::= "rejoinSessions" ":" ws ( "false" | "publicSessions" | "allSessions" ) /* applies when globalPage != #COMPONENT_PAGE_ID#; type: SELECT LIST */ page-advanced ::= indent "advanced" ws "{" line-end ( page-advanced-property-line )* indent "}" line-end page-advanced-property-line ::= indent page-advanced-property line-end page-advanced-property ::= "enableMetaTags" ":" ws boolean /* required; applies when authentication = Y; type: YES NO */ | "enableDuplicatePageSubmissions" ":" ws ( "false" | "true" ) /* required; applies when globalPage != #COMPONENT_PAGE_ID#; type: SELECT LIST */ | "reloadOnSubmit" ":" ws ( "always" | "onlyForSuccess" ) /* required; applies when globalPage != #COMPONENT_PAGE_ID#; type: SELECT LIST */ | "duplicateSubmissionUrl" ":" ws string-like-value /* applies when enableDuplicatePageSubmissions = N; type: TEXT */ page-server-cache ::= indent "serverCache" ws "{" line-end ( page-server-cache-property-line )* indent "}" line-end page-server-cache-property-line ::= indent page-server-cache-property line-end page-server-cache-property ::= "caching" ":" ws ( "false" | "true" | "cacheByUser" | "cacheBySession" ) /* required; applies when globalPage != #COMPONENT_PAGE_ID#; type: SELECT LIST */ | "cacheTimeout" ":" ws ( "10Seconds" | "1Minute" | "10Minutes" | "30Minutes" | "1Hour" | "2Hours" | "3Hours" | "4Hours" | "6Hours" | "12Hours" | "1Day" | "2Days" | "3Days" | "4Days" | "1Week" | "2Weeks" | "4Weeks" | "10Weeks" | "1Year" ) /* required; applies when caching != NOCACHE; type: SELECT LIST */ | "type" ":" ws string-like-value /* applies when caching != NOCACHE; type: SELECT LIST; large enum list omitted */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "preference" ":" ws string-like-value /* required; type: TEXT */ | "page" ":" ws number /* required; applies when type in (CURRENT_PAGE_EQUALS_CONDITION, CURRENT_PAGE_NOT_EQUAL_CONDITION); type: PAGE */ | "pages" ":" ws array-of-number /* required; applies when type in (CURRENT_PAGE_IN_CONDITION, CURRENT_PAGE_NOT_IN_CONDITION); type: PAGE */ | "text" ":" ws string-like-value /* required; type: TEXT */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (VALUE_OF_ITEM_IN_CONDITION_IN_COLON_DELIMITED_LIST, VALUE_OF_ITEM_IN_CONDITION_NOT_IN_COLON_DELIMITED_LIST); type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "value" ":" ws string-like-value /* required; applies when type in (DISPLAY_COND_IN_COND_TEXT, DISPLAY_COND_NOT_IN_COND_TEXT, DISPLAY_COND_EQUAL_COND_TEXT, DISP_COND_NOT_EQUAL_COND_TEXT); type: TEXT */ page-error-handling ::= indent "errorHandling" ws "{" line-end ( page-error-handling-property-line )* indent "}" line-end page-error-handling-property-line ::= indent page-error-handling-property line-end page-error-handling-property ::= "inLineErrorNotificationText" ":" ws multiline-string /* applies when globalPage != #COMPONENT_PAGE_ID#; type: TEXT EDITOR */ | "errorHandlingFunctionName" ":" ws string-like-value /* applies when globalPage != #COMPONENT_PAGE_ID#; type: TEXT */ page-help ::= indent "help" ws "{" line-end ( page-help-property-line )* indent "}" line-end page-help-property-line ::= indent page-help-property line-end page-help-property ::= "helpText" ":" ws multiline-string /* applies when globalPage != #COMPONENT_PAGE_ID#; type: HTML */ page-config ::= indent "config" ws "{" line-end ( page-config-property-line )* indent "}" line-end page-config-property-line ::= indent page-config-property line-end page-config-property ::= "buildOption" ":" ws reference /* applies when globalPage != #COMPONENT_PAGE_ID#; type: COMPONENT */ page-comments ::= indent "comments" ws "{" line-end ( page-comments-property-line )* indent "}" line-end page-comments-property-line ::= indent page-comments-property line-end page-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ page-child-component ::= branch-a | button | computation-a | dynamic-action | meta-tag | page-item | process | region | validation-b /* branch */ /* direct properties use default group: identification */ branch-a ::= "branch" ( required-ws component-id )? ws "(" line-end ( branch-a-body-line )* indent ")" line-end branch-a-body-line ::= branch-a-direct-property-line | branch-a-group-block branch-a-direct-property-line ::= indent branch-a-direct-property line-end branch-a-direct-property ::= "name" ":" ws string-like-value /* type: TEXT */ branch-a-group-block ::= branch-a-execution | branch-a-behavior | branch-a-server-side-condition | branch-a-security | branch-a-config | branch-a-comments branch-a-execution ::= indent "execution" ws "{" line-end ( branch-a-execution-property-line )* indent "}" line-end branch-a-execution-property-line ::= indent branch-a-execution-property line-end branch-a-execution-property ::= "sequence" ":" ws number /* required; type: NUMBER */ | "point" ":" ws ( "beforeHeader" | "afterSubmit" | "validating" | "processing" | "afterProcessing" ) /* required; type: SELECT LIST */ branch-a-behavior ::= indent "behavior" ws "{" line-end ( branch-a-behavior-property-line )* indent "}" line-end branch-a-behavior-property-line ::= indent branch-a-behavior-property line-end branch-a-behavior-property ::= "type" ":" ws ( "pageOrUrl" | "urlIdentifiedByItem" | "functionReturningUrl" | "page" | "pageIdentifiedByItem" | "functionReturningPage" | "plsqlProcedure" | "pageProcessing" ) /* required; type: SELECT LIST */ | "target" ":" ws value /* required; applies when type = REDIRECT_URL; type: LINK_BRANCH */ | "saveStateBeforeBranching" ":" ws boolean /* required; applies when type = REDIRECT_URL; type: YES NO */ | "pageNumber" ":" ws number /* required; applies when type in (BRANCH_TO_STEP, BRANCH_TO_PAGE_ACCEPT); type: PAGE */ | "request" ":" ws string-like-value /* applies when type = BRANCH_TO_PAGE_ACCEPT; type: TEXT */ | "item" ":" ws string-like-value /* required; applies when type in (BRANCH_TO_PAGE_IDENT_BY_ITEM, BRANCH_TO_URL_IDENT_BY_ITEM); type: ITEM */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type in (BRANCH_TO_FUNCTION_RETURNING_PAGE, BRANCH_TO_FUNCTION_RETURNING_URL); type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language in (PLSQL) */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language in (JAVASCRIPT) */ | "plsqlCode" ":" ws multiline-string /* required; applies when type = PLSQL; type: PLSQL */ branch-a-server-side-condition ::= indent "serverSideCondition" ws "{" line-end ( branch-a-server-side-condition-property-line )* indent "}" line-end branch-a-server-side-condition-property-line ::= indent branch-a-server-side-condition-property line-end branch-a-server-side-condition-property ::= "whenButtonPressed" ":" ws reference /* type: COMPONENT */ | "type" ":" ws string-like-value /* type: SELECT LIST; large enum list omitted */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "preference" ":" ws string-like-value /* required; type: TEXT */ | "page" ":" ws number /* required; applies when type in (CURRENT_PAGE_EQUALS_CONDITION, CURRENT_PAGE_NOT_EQUAL_CONDITION); type: PAGE */ | "pages" ":" ws array-of-number /* required; applies when type in (CURRENT_PAGE_IN_CONDITION, CURRENT_PAGE_NOT_IN_CONDITION); type: PAGE */ | "text" ":" ws string-like-value /* required; type: TEXT */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (VALUE_OF_ITEM_IN_CONDITION_IN_COLON_DELIMITED_LIST, VALUE_OF_ITEM_IN_CONDITION_NOT_IN_COLON_DELIMITED_LIST); type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "value" ":" ws string-like-value /* required; applies when type in (DISPLAY_COND_IN_COND_TEXT, DISPLAY_COND_NOT_IN_COND_TEXT, DISPLAY_COND_EQUAL_COND_TEXT, DISP_COND_NOT_EQUAL_COND_TEXT); type: TEXT */ branch-a-security ::= indent "security" ws "{" line-end ( branch-a-security-property-line )* indent "}" line-end branch-a-security-property-line ::= indent branch-a-security-property line-end branch-a-security-property ::= "authorizationScheme" ":" ws reference /* type: COMPONENT */ branch-a-config ::= indent "config" ws "{" line-end ( branch-a-config-property-line )* indent "}" line-end branch-a-config-property-line ::= indent branch-a-config-property line-end branch-a-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ branch-a-comments ::= indent "comments" ws "{" line-end ( branch-a-comments-property-line )* indent "}" line-end branch-a-comments-property-line ::= indent branch-a-comments-property line-end branch-a-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ /* button */ /* direct properties use default group: identification */ button ::= "button" ( required-ws component-id )? ws "(" line-end ( button-body-line )* indent ")" line-end button-body-line ::= button-direct-property-line | button-group-block | button-child-component button-direct-property-line ::= indent button-direct-property line-end button-direct-property ::= "buttonName" ":" ws string-like-value /* required; type: TEXT */ | "label" ":" ws string-like-value /* required; type: TEXT */ button-group-block ::= button-layout | button-appearance | button-behavior | button-confirmation | button-advanced | button-server-side-condition | button-security | button-config | button-comments button-layout ::= indent "layout" ws "{" line-end ( button-layout-property-line )* indent "}" line-end button-layout-property-line ::= indent button-layout-property line-end button-layout-property ::= "sequence" ":" ws number /* required; type: NUMBER */ | "region" ":" ws reference /* type: COMPONENT */ | "slot" ":" ws string-like-value /* required; type: SELECT LIST */ | "startNewLayout" ":" ws boolean /* required; type: YES NO */ | "startNewRow" ":" ws boolean /* required; applies when startNewLayout = N or not set; type: YES NO */ | "rowCssClasses" ":" ws array-of-string-like-value /* type: COMBOBOX */ | "column" ":" ws string-like-value /* type: SELECT LIST */ | "newColumn" ":" ws boolean /* required; applies when startNewRow = N or not set; type: YES NO */ | "columnSpan" ":" ws string-like-value /* type: SELECT LIST */ | "rowSpan" ":" ws number /* type: NUMBER */ | "columnCssClasses" ":" ws array-of-string-like-value /* type: COMBOBOX */ | "columnAttributes" ":" ws array-of-string-like-value /* type: COMBOBOX */ | "horizontalAlignment" ":" ws ( "left" | "right" ) /* required; applies when slot in (TOP, TOP_AND_BOTTOM, ABOVE_BOX, BELOW_BOX, BOTTOM); type: PILL BUTTONS */ | "alignment" ":" ws ( "center" | "centerBottom" | "centerCenter" | "centerTop" | "left" | "leftBottom" | "leftCenter" | "leftTop" | "right" | "rightBottom" | "rightCenter" | "rightTop" ) /* required; applies when slot = BODY; type: SELECT LIST */ button-appearance ::= indent "appearance" ws "{" line-end ( button-appearance-property-line )* indent "}" line-end button-appearance-property-line ::= indent button-appearance-property line-end button-appearance-property ::= "buttonTemplate" ":" ws reference /* required; type: COMPONENT */ | "hot" ":" ws boolean /* required; type: YES NO */ | "showAsDisabled" ":" ws boolean /* required; applies when buttonTemplate supports IS_DISABLED; type: YES NO */ | "templateOptions" ":" ws array-of-string-like-value /* type: TEMPLATE OPTIONS */ | "cssClasses" ":" ws array-of-string-like-value /* type: COMBOBOX */ | "icon" ":" ws string-like-value /* type: ICON */ button-behavior ::= indent "behavior" ws "{" line-end ( button-behavior-property-line )* indent "}" line-end button-behavior-property-line ::= indent button-behavior-property line-end button-behavior-property ::= "type" ":" ws string-like-value /* required; type: SELECT LIST */ | "action" ":" ws ( "submitPage" | "triggerAction" | "redirectThisApp" | "redirectOtherApp" | "redirectUrl" | "definedByDynamicAction" | "resetPage" | "nextPage" | "previousPage" ) /* required; applies when type = STANDARD; type: SELECT LIST */ | "target" ":" ws value /* required; applies when action = REDIRECT_PAGE; type: LINK_IN_APP */ | "target" ":" ws value /* required; applies when action = REDIRECT_APP; type: LINK_IN_DIFF_APP */ | "targetUrl" ":" ws string-like-value /* required; applies when action = REDIRECT_URL; type: TEXT */ | "executeValidations" ":" ws boolean /* required; applies when action in (SUBMIT, REDIRECT_URL, DEFINED_BY_DA, DEFINED_BY_DA_ACTION); type: YES NO */ | "showProcessing" ":" ws boolean /* required; applies when action = SUBMIT; type: YES NO */ | "warnOnUnsavedChanges" ":" ws ( "doNotCheck" ) /* applies when action not in (DEFINED_BY_DA, DEFINED_BY_DA_ACTION); type: SELECT LIST */ | "databaseAction" ":" ws ( "insert" | "update" | "delete" ) /* applies when type = STANDARD; type: SELECT LIST */ | "requiresConfirmation" ":" ws boolean /* required; applies when type = STANDARD; type: YES NO */ button-confirmation ::= indent "confirmation" ws "{" line-end ( button-confirmation-property-line )* indent "}" line-end button-confirmation-property-line ::= indent button-confirmation-property line-end button-confirmation-property ::= "message" ":" ws multiline-string /* required; applies when requiresConfirmation = Y; type: HTML */ | "style" ":" ws ( "information" | "warning" | "danger" | "success" ) /* applies when requiresConfirmation = Y; type: SELECT LIST */ button-advanced ::= indent "advanced" ws "{" line-end ( button-advanced-property-line )* indent "}" line-end button-advanced-property-line ::= indent button-advanced-property line-end button-advanced-property ::= "htmlDomId" ":" ws string-like-value /* type: TEXT */ | "staticId" ":" ws string-like-value /* required; type: STATIC ID */ | "customAttributes" ":" ws string-like-value /* type: COMBOBOX */ | "preText" ":" ws multiline-string /* type: HTML */ | "postText" ":" ws multiline-string /* type: HTML */ | "requestSourceType" ":" ws ( "staticValue" | "databaseColumn" | "item" | "sqlQuerySingleValue" | "sqlQueryMultipleValues" | "plsqlExpression" | "plsqlFunctionBody" | "preference" | "null" ) /* type: SELECT LIST */ | "requestSource" ":" ws multiline-string /* applies when requestSourceType is set; type: TEXT EDITOR */ button-server-side-condition ::= indent "serverSideCondition" ws "{" line-end ( button-server-side-condition-property-line )* indent "}" line-end button-server-side-condition-property-line ::= indent button-server-side-condition-property line-end button-server-side-condition-property ::= "type" ":" ws string-like-value /* type: SELECT LIST; large enum list omitted */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "preference" ":" ws string-like-value /* required; type: TEXT */ | "page" ":" ws number /* required; applies when type in (CURRENT_PAGE_EQUALS_CONDITION, CURRENT_PAGE_NOT_EQUAL_CONDITION); type: PAGE */ | "pages" ":" ws array-of-number /* required; applies when type in (CURRENT_PAGE_IN_CONDITION, CURRENT_PAGE_NOT_IN_CONDITION); type: PAGE */ | "text" ":" ws string-like-value /* required; type: TEXT */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (VALUE_OF_ITEM_IN_CONDITION_IN_COLON_DELIMITED_LIST, VALUE_OF_ITEM_IN_CONDITION_NOT_IN_COLON_DELIMITED_LIST); type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "value" ":" ws string-like-value /* required; applies when type in (DISPLAY_COND_IN_COND_TEXT, DISPLAY_COND_NOT_IN_COND_TEXT, DISPLAY_COND_EQUAL_COND_TEXT, DISP_COND_NOT_EQUAL_COND_TEXT); type: TEXT */ button-security ::= indent "security" ws "{" line-end ( button-security-property-line )* indent "}" line-end button-security-property-line ::= indent button-security-property line-end button-security-property ::= "authorizationScheme" ":" ws reference /* type: COMPONENT */ button-config ::= indent "config" ws "{" line-end ( button-config-property-line )* indent "}" line-end button-config-property-line ::= indent button-config-property line-end button-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ button-comments ::= indent "comments" ws "{" line-end ( button-comments-property-line )* indent "}" line-end button-comments-property-line ::= indent button-comments-property line-end button-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ button-child-component ::= menu-c | trigger-action-c /* menu */ /* direct properties use default group: identification */ menu-c ::= "menu" ( required-ws component-id )? ws "(" line-end ( menu-c-body-line )* indent ")" line-end menu-c-body-line ::= menu-c-direct-property-line | menu-c-group-block | menu-c-child-component menu-c-direct-property-line ::= indent menu-c-direct-property line-end menu-c-direct-property ::= "type" ":" ws ( "menuEntry" | "subMenu" | "separator" ) /* required; type: SELECT LIST */ | "label" ":" ws string-like-value /* required; applies when type in (ENTRY, SUB_MENU); type: TEXT */ | "parentMenu" ":" ws reference /* type: COMPONENT */ menu-c-group-block ::= menu-c-layout | menu-c-behavior | menu-c-appearance | menu-c-server-side-condition | menu-c-advanced | menu-c-security | menu-c-config | menu-c-comments menu-c-layout ::= indent "layout" ws "{" line-end ( menu-c-layout-property-line )* indent "}" line-end menu-c-layout-property-line ::= indent menu-c-layout-property line-end menu-c-layout-property ::= "sequence" ":" ws number /* required; type: NUMBER */ menu-c-behavior ::= indent "behavior" ws "{" line-end ( menu-c-behavior-property-line )* indent "}" line-end menu-c-behavior-property-line ::= indent menu-c-behavior-property line-end menu-c-behavior-property ::= "type" ":" ws ( "redirectThisApp" | "redirectOtherApp" | "redirectUrl" | "triggerAction" ) /* required; applies when type = ENTRY; type: SELECT LIST */ | "target" ":" ws value /* required; applies when type = REDIRECT_PAGE; type: LINK_IN_APP */ | "target" ":" ws value /* required; applies when type = REDIRECT_APP; type: LINK_IN_DIFF_APP */ | "targetUrl" ":" ws string-like-value /* required; applies when type = REDIRECT_URL; type: TEXT */ | "linkAttributes" ":" ws string-like-value /* applies when type in (REDIRECT_PAGE, REDIRECT_APP, REDIRECT_URL); type: TEXT */ menu-c-appearance ::= indent "appearance" ws "{" line-end ( menu-c-appearance-property-line )* indent "}" line-end menu-c-appearance-property-line ::= indent menu-c-appearance-property line-end menu-c-appearance-property ::= "icon" ":" ws string-like-value /* applies when type in (ENTRY, SUB_MENU); type: ICON */ menu-c-server-side-condition ::= indent "serverSideCondition" ws "{" line-end ( menu-c-server-side-condition-property-line )* indent "}" line-end menu-c-server-side-condition-property-line ::= indent menu-c-server-side-condition-property line-end menu-c-server-side-condition-property ::= "type" ":" ws string-like-value /* applies when type in (ENTRY, SUB_MENU); type: SELECT LIST; large enum list omitted */ | "sqlQuery" ":" ws multiline-string /* required; applies when type in (EXISTS, NOT_EXISTS); type: SQL */ | "language" ":" ws ( "sql" | "plsql" | "javaScript-mle" ) /* required; applies when type = EXPRESSION; type: CODE LANGUAGE */ | "sqlExpression" ":" ws multiline-string /* required; applies when language = SQL; type: SQL EXPRESSION BOOLEAN */ | "plsqlExpression" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL EXPRESSION BOOLEAN */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT EXPRESSION BOOLEAN */ | "language" ":" ws ( "plsql" | "javaScript-mle" ) /* required; applies when type = FUNCTION_BODY; type: CODE LANGUAGE */ | "plsqlFunctionBody" ":" ws multiline-string /* required; applies when language = PLSQL; type: PLSQL FUNCTION BODY BOOLEAN */ | "javaScriptFunctionBody" ":" ws multiline-string /* required; applies when language = JAVASCRIPT; type: MLE JAVASCRIPT FUNCTION BODY BOOLEAN */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "preference" ":" ws string-like-value /* required; type: TEXT */ | "page" ":" ws number /* required; applies when type in (CURRENT_PAGE_EQUALS_CONDITION, CURRENT_PAGE_NOT_EQUAL_CONDITION); type: PAGE */ | "pages" ":" ws array-of-number /* required; applies when type in (CURRENT_PAGE_IN_CONDITION, CURRENT_PAGE_NOT_IN_CONDITION); type: PAGE */ | "text" ":" ws string-like-value /* required; type: TEXT */ | "value" ":" ws string-like-value /* required; type: TEXT */ | "list" ":" ws array-of-string-like-value /* required; applies when type in (VALUE_OF_ITEM_IN_CONDITION_IN_COLON_DELIMITED_LIST, VALUE_OF_ITEM_IN_CONDITION_NOT_IN_COLON_DELIMITED_LIST); type: TEXT */ | "item" ":" ws string-like-value /* required; type: ITEM */ | "value" ":" ws string-like-value /* required; applies when type in (DISPLAY_COND_IN_COND_TEXT, DISPLAY_COND_NOT_IN_COND_TEXT, DISPLAY_COND_EQUAL_COND_TEXT, DISP_COND_NOT_EQUAL_COND_TEXT); type: TEXT */ menu-c-advanced ::= indent "advanced" ws "{" line-end ( menu-c-advanced-property-line )* indent "}" line-end menu-c-advanced-property-line ::= indent menu-c-advanced-property line-end menu-c-advanced-property ::= "staticId" ":" ws string-like-value /* required; type: STATIC ID */ menu-c-security ::= indent "security" ws "{" line-end ( menu-c-security-property-line )* indent "}" line-end menu-c-security-property-line ::= indent menu-c-security-property line-end menu-c-security-property ::= "authorizationScheme" ":" ws reference /* applies when type in (ENTRY, SUB_MENU); type: COMPONENT */ menu-c-config ::= indent "config" ws "{" line-end ( menu-c-config-property-line )* indent "}" line-end menu-c-config-property-line ::= indent menu-c-config-property line-end menu-c-config-property ::= "buildOption" ":" ws reference /* type: COMPONENT */ menu-c-comments ::= indent "comments" ws "{" line-end ( menu-c-comments-property-line )* indent "}" line-end menu-c-comments-property-line ::= indent menu-c-comments-property line-end menu-c-comments-property ::= "comments" ":" ws multiline-string /* type: TEXT EDITOR */ menu-c-child-component ::= trigger-action-e /* triggerAction */ /* direct properties use default group: identification */ trigger-action-e ::= "triggerAction" ( required-ws component-id )? ws "(" line-end ( trigger-action-e-body-line )* indent ")" line-end trigger-action-e-body-line ::= trigger-action-e-direct-property-line | trigger-action-e-group-block trigger-action-e-direct-property-line ::= indent trigger-action-e-direct-property line-end trigger-action-e-direct-property ::= "name" ":" ws string-like-value /* type: TEXT */ | "action" ":" ws string-like-value /* required; type: SUPPORTED UI */ trigger-action-e-group-block ::= trigger-action-e-gen-ai | trigger-action-e-affected-elements | trigger-action-e-execution | trigger-action-e-client-side-condition | trigger-action-e-server-side-condition | trigger-action-e-security | trigger-action-e-config | trigger-action-e-advanced | trigger-action-e-comments trigger-action-e-gen-ai ::= indent "genAI" ws "{" line-end ( trigger-action-e-gen-ai-property-line )* indent "}" line-end trigger-action-e-gen-ai-property-line ::= indent trigger-action-e-gen-ai-property line-end trigger-action-e-gen-ai-property ::= "enabled" ":" ws boolean /* required; applies when action supports AI_ENABLED; type: YES NO */ | "agent" ":" ws reference /* applies when action supports AI_ENABLED_ALWAYS, AI_ENABLED and enabled = Y or not set; type: COMPONENT */ | "service" ":" ws reference /* applies when agent is not set; type: COMPONENT */ | "systemPrompt" ":" ws multiline-string /* applies when action supports AI_SYSTEM_PROMPT and agent is not set; type: TEXT EDITOR */ | "welcomeMessage" ":" ws multiline-string /* applies when action supports AI_UI and agent is not set; type: HTML */ | "itemsToSubmit" ":" ws array-of-string-like-value /* applies when action supports AI_ENABLED_ALWAYS, AI_ENABLED and enabled = Y or not set; type: ITEM */ trigger-action-e-affected-elements ::= indent "affectedElements" ws "{" line-end ( trigger-action-e-affected-elements-property-line )* indent "}" line-end trigger-action-e-affected-elements-property-line ::= indent trigger-action-e-affected-elements-property line-end trigger-action-e-affected-elements-property ::= "selectionType" ":" ws string-like-value /* required; applies when action supports ITEM, BUTTON, REGION, JQUERY_SELECTOR, JAVASCRIPT_EXPRESSION, TRIGGERING_ELEMENT, EVENT_SOURCE; type: SELECT LIST */ | "region" ":" ws reference /* required; applies when selectionType = REGION; type: COMPONENT */ | "button" ":" ws reference /* required; applies when selectionType = BUTTON; type: COMPONENT */ | "items" ":" ws array-of-string-like-value /* required; applies when selectionType = ITEM; type: ITEM */ | "jquerySelector" ":" ws string-like-value /* required; applies when selectionType = JQUERY_SELECTOR; type: TEXT */ | "javaScriptExpression" ":" ws multiline-string /* required; applies when selectionType = JAVASCRIPT_EXPRESSION; type: JAVASCRIPT */ trigger-action-e-execution ::= indent "execution" ws "{" line-end ( trigger-action-e-execution-property-line )* indent "}" line-end trigger-action-e-execution-property-line ::= indent trigger-action-e-execution-property line-end trigger-action-e-execution-property ::= "sequence" ":" ws number /* required; type: NUMBER */ | "stopExecutionOnError" ":" ws boolean /* required; applies when action supports STOP_EXECUTION_ON_ERROR; type: YES NO */ | "waitForResult" ":" ws boolean /* required; applies when action supports WAIT_FOR_RESULT; type: YES NO */ trigger-action-e-client-side-condition ::= indent "clientSideCondition" ws "{" line-end ( trigger-action-e-client-side-condition-property-line )* indent "}" line-end trigger-action-e-client-side-condition-property-line ::= indent trigger-action-e-client-side-condition-property line-end trigger-action-e-client-side-condition-property ::= "type" ":" ws ( "item=value" | "item!=value" | "item>value" | "item>=value" | "itemvalue" | "item>=value" | "itemvalue" | "item>=value" | "itemvalue" | "itemColumn>=value" | "itemColumnvalue" | "item>=value" | "itemvalue" | "itemColumn>=value" | "itemColumn