N1 Grid Service Provisioning System 5.0 プランとコンポーネントの開発者ガイド

付録  A 変数置換の文法

ホスト属性値に指定できるのは、 session-variable-substitution-reference だけです。次の文法では、構成リソースファイルと特定のコンポーネント要素属性で simple-substitution-variable-reference を使用できます。complex-substitution-variable-reference は、置換変数のデフォルト値とオーバーライド値で使用できます。

この文法では、\p{N} はすべての Unicode 数字を、\p{L} はすべての Unicode 文字を表します。


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}_]*