この章では、リソース記述子ファイルの XML スキーマを説明します。以下の内容を扱います。
「リソース記述子ファイル」は、単純コンポーネントのリソースを構成するファイルとディレクトリに使用する、所有者、グループ、およびアクセス権の設定を指定します。リソース記述子ファイルは XML ファイルです。リソース記述子ファイルを使用することで、コンポーネントのチェックイン時に決定されるアクセス権をオーバーライドすることができます。
リソース記述子ファイルを使用しない場合、リソースはチェックイン時の所有者、グループ、およびアクセス権の設定を使用します。このような状態は、UNIX システム上でチェックインを行う場合のデフォルトです。Windows システム上でコンポーネントをチェックインする場合、デフォルト設定は、リソース記述子ファイルの各設定に :NONE: 値を使用したかのようになります。
リソース記述子ファイルを使用する場合、リソースは、リソース記述子により指定される所有者、グループ、およびアクセス権の設定を使用します。リソースに対して <entry> 要素が指定されている場合、設定はそのエントリから取得されます。エントリが設定の一部を指定していない場合、指定されていない設定値が <defaultEntry> から取得されます (存在する場合)。これらの設定値が <defaultEntry> で指定されていない場合、リソースはチェックイン時に取得した設定値を使用します。
リソースに <entry> 要素が指定されてない場合、リソースは <defaultEntry> で指定されている設定を使用します (存在する場合)。<defaultEntry> が存在しない場合、リソースはチェックイン時に取得した設定を使用します。
コンポーネントが配備されるファイルシステムのデフォルト設定を使用するようN1 SPSに通知するには、:NONE: 値を使用します。<defaultEntry> ブロック、またはリソースの <entry> で指定されている任意の設定に対しては、:NONE: 値を指定できます。
リソース記述子ファイルを使用するのは、UNIX システムにコンポーネントを配備する場合のみです。コンポーネントを Windows システムに配備する場合、リソース記述子ファイルは無視されます。そのため、コンポーネントが Windows システムのみに適用される場合は、リソース記述子ファイルを作成しないでください。
リソース記述子ファイルは、system#file および system#directory コンポーネント型を拡張する単純コンポーネントにより使用できます。また、リソース記述子ファイルは、Linux プラグインの一部である com.sun.linux#rpm コンポーネント型を拡張するコンポーネントで使用することもできます。
コンポーネントのチェックインと同時に、リソース記述子ファイルをチェックインします。最後のチェックインにリソース記述子ファイルを使用したコンポーネントに対し checkin-current を試みると、N1 SPSは元のチェックイン場所でリソース記述子が見つかると想定します。そのため、ファイルを別の場所に移動してコンポーネントに対し checkin-current を試みると、チェックイン操作が失敗します。
チェックインされた単純コンポーネント用にリソース記述子をダウンロードして、コンポーネントのリソースの一部である、あらゆるファイルの設定を確認することができます。
このダウンロード機能を使用すると、ファイルを更新して、更新バージョンのコンポーネントをチェックインできます。まず、リソース記述子ファイルをダウンロードしてから、関連付けられたコンポーネントのリソースをチェックアウトします。続いて、リソース記述子ファイルを変更し、それを使用して新しいバージョンのコンポーネントをチェックインします。
ダウンロードしたリソース記述子は、コンポーネントのチェックインに使用したリソース記述子とは異なる場合があります。違いが生じるのは、コンポーネントのチェックインに使用する記述子は、リソース内のあらゆるファイルに関する情報を持つ必要がないか、または、あらゆるエントリに関する完全な情報を持つ必要がないためです。ダウンロードされたリソース記述子ファイルには <defaultEntry> ブロックが出現しないことに注意してください。その代わりに、あらゆるファイルは独自の <entry> に記述されています。
リソース記述子全体は、<resourceDescriptor> 要素により囲まれています。
リソース記述子ファイルは、バイトオーダーマーク (BOM) が存在する場合を除き、UTF-8 形式で符号化されます。BOM が存在する場合は、ファイルの符号化の決定に BOM が使用されます。
<resourceDescriptor> 要素には次の属性があります。
http://www.sun.com/schema/SPS |
http://www.w3.org/2001/XMLSchema-instance |
xsi:schemaLocation (オプション) – 次の推奨値を持つ文字列
http://www.sun.com/schema/SPS resourceDescriptor.xsd |
schemaVersion – 使用されるリソース記述子スキーマのバージョンである、型 schemaVersion の必須属性。許可されている値は 5.0 と 5.1 のみです。
<resourceDescriptor> 要素には 1 つの必須子要素 <entryList> があります。これは、当該リソースに含まれるファイルとディレクトリのリストです。各ファイルまたはディレクトリのエントリには、関連付けられた所有者、グループ、およびアクセス権の設定が含まれます。
<entryList> 要素は、<resourceDescriptor> 要素の必須の子です。この要素は当該リソースに含まれるファイルとディレクトリのリスト作成に使用され、またファイルとディレクトリに関連付けられた設定を記述します。
<entryList> 要素には 2 つのオプションの子要素があり、存在する場合は次の順序で出現する必要があります。
<defaultEntry>
<entry>
指定されている場合、<defaultEntry> 要素は 1 回しか出現できません。<entry> 要素は、1 つのファイルまたはディレクトリの設定を記述します。そのため、リソース記述子ファイルでは複数の <entry> 要素を指定できます。
<defaultEntry> 要素は、<entryList> 要素のオプションの子です。この要素は、リソース記述子ファイル内の <entry> 要素内にはないリソースファイルの、デフォルトの所有者、グループ、およびアクセス権の設定を指定します。
この要素が省略されている場合、当該 <entryList> ブロックにあるファイルとディレクトリは、チェックイン時に決定される設定値を使用します。この要素を指定する場合、この要素は 1 回しか出現できません。
<settings> 要素は、<defaultEntry> 要素および <entry> 要素の必須子要素です。
<settings> 要素は、これらの要素の子として使用された場合、次のように動作が異なります。
<defaultEntry> 要素 – 独自の <entry> 要素と関連付けられていない任意のファイルのデフォルトとして使用される設定値を指定します。
<entry> 要素 – 当該 <entry> 要素に関連付けられているファイルにより使用される設定値を指定します。
属性が省略されている場合、当該 <entryList> の <defaultEntry> 要素にある対応する属性値が使用されます。<defaultEntry> 要素が指定されていない場合、チェックイン時の設定が使用されます。
<settings> 要素には次のオプションの属性があります。
group (オプション) – 当該エントリのグループである文字列。グループは、グループ ID ではなく、グループ名である必要があります。
owner (オプション) – 当該エントリの所有者である文字列。所有者は、ユーザー ID ではなく、ユーザー名である必要があります。
permissions (オプション) – ファイルまたはディレクトリのアクセス権設定である文字列。文字列の書式は、UNIX chmod コマンドでコマンドで定義されているように 3 桁の 8 進数を使用します。chmod(1M) のマニュアルページを参照してください。
これらの任意の属性に対しては :NONE: の値を指定できます。コンポーネントが配備されるファイルシステムのデフォルト設定を使用するようN1 SPSに通知するには、:NONE: 値を使用します。
<entry> 要素は、<entryList> 要素のオプションの子です。この要素は、リソース内の 1 つのエントリの所有者、グループ、およびアクセス権の設定を指定します。<entry> 要素には 1 つの必須要素 <settings> があります。「<settings> 要素」を参照してください。
<entryList> ブロック内で <entry> 要素として出現しないファイルとディレクトリは、次のものを使用します。
<defaultEntry> ブロックで指定されている設定値
チェックイン時に決定される設定値
<entry> 要素には 1 つの必須属性 name があります。name の値は、リソースのルートに相対的な、当該エントリの名前を定義する文字列です。最上位リソースの名前は、常に root である必要があります。
たとえば、topDir で始まるディレクトリ階層をリソースが作成した場合、最上位ディレクトリの name 属性は root です。入れ子になったディレクトリ subDir の name 属性は root/subDir です。file.txt という名前のファイルリソースの場合、name 属性は root です。
末尾のスラッシュ (/) 文字は使用できません。
「<resourceDescriptor> 要素のサンプル XML」を参照してください。
次の例に、ディレクトリリソースの <resourceDescriptor> 要素を示します。
<?xml version ="1.0" encoding="UTF-8"?> <resourceDescriptor xmlns="http://www.sun.com/schema/SPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sun.com/schema/SPS resourceDescriptor.xsd" schemaVersion="5.1"> <entryList> <defaultEntry> <settings owner="root" group="wheel" permissions="664"/> </defaultEntry> <!-- This directory overrides all of the default settings --> <entry name="root"> <settings owner="gprabhu" group="bin" permissions="777"/> </entry> <!-- This directory overrides the owner and group, but will have perms of "664" from the defaultEntry --> <entry name="root/nestedDirectory" > <settings owner="gprabhu" group="wheel"/> </entry> <!-- This file overrides the group and perms, but will have owner of "root" from the defaultEntry --> <entry name="root/nestedDirectory/fileThatWillUseSomeDefaults.txt" > <settings group="bin" permissions="777"/> </entry> <!-- This file overrides none of the settings in the defaultEntry, so it will inherit all of them. In practice, this entry would probably be omitted entirely. --> <entry name="root/nesteddirectory/fileThatWillUseAllDefaults.txt" > <settings/> </entry> </entryList> </resourceDescriptor> |
次の例に、ファイルリソースの <resourceDescriptor> 要素を示します。
<?xml version ="1.0" encoding="UTF-8"?> <resourceDescriptor xmlns="http://www.sun.com/schema/SPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sun.com/schema/SPS resourceDescriptor.xsd" schemaVersion="5.1"> <entryList> <!-- There is no <defaultEntry> in this <entryList>, so anything not specified in the <settings> element for this entry uses the settings determined at check-in time. --> <entry name="root"> <settings owner="terry" group="bin" permissions="777"/> </entry> </entryList> </resourceDescriptor> |