Only a session-variable-substitution-reference is permitted to occur in host attribute values. For the following grammar, a simple-substitution-variable-reference can be used in configuration resource files and certain component element attributes. complex-substitution-variable-reference can be used in substitution variable default and override values.
In this grammar, \p{N} represents all Unicode numbers, and \p{L} represents all Unicode letters.
simple-substitution-variable-reference: local-component-substitution-reference complex-substitution-variable-reference: simple-substitution-variable-reference host-substitution-reference external-component-substitution-reference session-variable-substitution-reference local-component-substitution-reference: :[component-variable-name] component-variable-name: predefined-component-variable-name dynamic-component-variable-name predefined-component-variable-name: sys.name sys.description sys.label sys.softwareVendor sys.author sys.path sys.rsrcInstallPath sys.targetRefName dynamic-component-variable-name: identifier host-substitution-reference: :[target:host-variable-name] :[target(host-reference):host-variable-name] :[:] :[/] host-reference: root-host-selector parent-host-selector host-selector / root-host-selector host-selector / parent-host-selector host-selector: host-name complex-substitution-variable-reference root-host-selector: / parent-host-selector: ..(/..)* host-variable-name: predefined-host-variable-name dynamic-host-variable-name predefined-host-variable-name: sys.hostName sys.description sys.hostType sys.ipAddress sys.portNumber sys.raHomeDir sys.raDataDir sys.raConfigDir sys.raTmpDir dynamic-host-variable-name: identifier session-variable-substitution-reference: :[session:session-variable-name] session-variable-name: predefined-session-variable-name dynamic-session-variable-name predefined-session-variable-name: sys:sessionID external-component-substitution-reference: :[component-reference-list:component-variable-name] component-reference-list: primary-component-reference primary-component-reference:secondary-component-reference-list primary-component-reference: explicit-external-component-reference system-service-component-reference system-type-component-reference secondary-component-reference targetable-component-reference secondary-component-reference: nested-component-reference toplevel-component-reference dependee-component-reference container-component-reference secondary-component-reference-list: secondary-component secondary-component:secondary-component-reference-list explicit-external-component-reference: component:explicit-component-reference component(host-reference):explicit-component-reference explicit-component-reference: full-component-name full-component-name#component-version full-component-name@{install-path} full-component-name#component-version@{install-path} full-component-name: path-reference component-name component-name path-reference: / / relative-path-reference / relative-path-reference / relative-path-reference: . .. path-part . / relative-path-reference .. / relative-path-reference path-part / relative-path-reference system-service-component-reference: systemService:system-name system-type-component-reference: systemType:system-name systemType:system-name@{install-path} systemType(host-reference):system-name systemType(host-reference):system-name@{install-path} targetable-component-reference: targetableComponent targetableComponent(host-reference) nested-component-reference: nestedRef:component-reference-name toplevel-component-reference: toplevelRef:component-reference-name toplevelRef:component-reference-name@{install-path} toplevelRef(host-reference):component-reference-name toplevelRef(host-reference):component-reference-name@{install-path} dependee-component-reference: dependee:dependency-name container-component-reference: container dependency-name: component-reference-name: identifier dynamic-session-variable-name: host-name: [\p{L}_][\p{N}\p{L}-_. ]* path-part: component-name: [\p{N}\p{L}-_. ]+ (except "." and "..") system-name: system-name-identifier plugin-name#system-name-identifer plugin-name: identifier identifier.plugin-name system-name-identifier: [\p{L}_][\p{N}\p{L}-_. +]* component-version: [1-9][0-9]*.[0-9]+ install-path: complex-substitution-variable-reference path-literal path-liternal: (([^}])|(}}))+ identifier: [\p{L}_][\p{N}\p{L}_]* |