データ型検査は、次の 2 つの部分から成ります。
データの基準とデータの属性を格納するデータベース
データベースに問い合わせるルーチンの集まり
CONTENT
DATA_ATTRIBUTES_NAME
LINK_NAME
LINK_PATH
MODE
NAME_PATTERN
PATH_PATTERN
データの基準を使用頻度が高いものから順に表 9-1 に示します。
表 9-1 データの基準 (使用頻度順)
基準 |
説明 |
使用例 |
---|---|---|
DATA_ATTRIBUTES_NAME |
このデータ型の名前。この値は、データ属性テーブルの中の record_name です。 |
POSTSCRIPT |
NAME_PATTERN |
このデータに一致するファイル名を記述するシェル・パターン照合表現。デフォルトは空の文字列で、照合の際にファイル名のパターンを無視することを意味します。 |
*.ps |
CONTENT |
ファイル・ユーティリティが使用し、マジック・ファイルの開始、型、および値のフィールドとして解釈される 3 つの値。詳細は、file(1) のマニュアル・ページを参照してください。デフォルトは空のフィールドで、照合の際に内容を無視することを意味します。一致する型の例としては、文字列、バイト、ショート、ロング、およびファイル名があります。 |
0 string !% |
MODE |
stat 構造体のモード・フィールドに一致する 0 〜 4 文字の文字列。詳細は、stat(2) のマニュアル・ページを参照してください。最初の文字は、次のとおりです。
d は、ディレクトリに一致します。 s は、ソケットに一致します。 l は、シンボリック・リンクに一致します。 f は、通常ファイルに一致します。 b は、ブロック・ファイルに一致します。 c は、文字型特殊ファイルに一致します。 |
f&!x
|
|
次の文字は、最初または後続の文字にできます。
r は、ユーザ、グループ、またはその他の読み取り権ビットが設定されたファイルに一致します。 w は、ユーザ、グループ、またはその他の書き込み権ビットが設定されたファイルに一致します。 x は、ユーザ、グループ、またはその他の実行あるいはディレクトリ検索のアクセス権ビットが設定されているファイルに一致します。
|
|
|
たとえば、frw の MODE フィールドは、読み取り可能または書き込み可能な通常ファイルに一致します。x は、実行可能なビットまたは検索ビットが設定されたファイルに一致します。 デフォルトは空のフィールドで、照合の際にモードを無視することを意味します。 |
|
PATH_PATTERN |
このデータに一致する絶対パス名を記述するシェル・パターン照合式。デフォルトは空の文字列で、照合の際にパス・パターンを無視することを意味します。 |
*/mysubdir /* |
LINK_NAME |
dtdtsfile(4) のマニュアル・ページを参照してください。 |
|
LINK_PATH |
dtdtsfile(4) のマニュアル・ページを参照してください。 |
|
データ型の一般的な属性のいくつかをアルファベット順に示します。
ACTIONS
COPY_TO_ACTION
DESCRIPTION
ICON
INSTANCE_ICON
IS_EXECUTABLE
IS_TEXT
LINK_TO_ACTION
MEDIA
MIME_TYPE
MOVE_TO_ACTION
NAME_TEMPLATE
PROPERTIES
X400_TYPE
これらのデータの属性を使用頻度が高い順に表 9-2 に示します。
表 9-2 データの属性 (使用頻度順)
基準 |
説明 |
使用例 |
---|---|---|
DESCRIPTION |
人間が読める形式で書かれたデータの説明。このフィールドが NULL か、データ属性レコードに含まれていない場合は、データ属性名が使用されます。 |
This is a PostScript page description. |
ICON |
このデータに対して使用されるアイコン名。このフィールドが NULL か、データ属性レコードに含まれていない場合は、標準のアイコンが使用されます。アイコンの命名の詳細は、dtdtsfile(4) のマニュアルページを参照してください。 |
Dtps |
PROPERTIES |
このデータの属性を示すキーワード。有効な値は、見える場合と見えない場合があります。このフィールドが NULL か、データ属性レコードに含まれていない場合は、可視属性とみなされます。これは、ファイルをユーザから完全に隠したい場合に使用します。 |
invisible |
ACTIONS |
このデータに対して実行できるアクションのリスト。このリストは、この型のオブジェクトに対してユーザに提示されるアクションのアクション・テーブル内の名前を参照します。このフィールドが NULL か、データ属性レコードに含まれていない場合は、どのアクションも使用できません。 |
Open,Print |
NAME_TEMPLATE フィールド
|
この型のデータの新規ファイル作成に使用される文字列。文字列は、ファイル名と共に 1 つの引き数として sprintf(3) に渡されます。デフォルトは空です。このフィールドをデータ抽出条件テーブルの NAME_PATTERN フィールドと比較してみてください。テンプレートは %s.c など、特定のファイルを作成するために使用されますが、パターンは *.c などのファイルを検索するために使用されます。 |
%s.ps |
IS_EXECUTABLE フィールド |
このデータ型をアプリケーションとして実行できることをユーザに知らせる文字列論理値。IS_EXECUTABLE に true が設定されている場合 (DtDtsIsTrue() 参照)、データは実行可能です。このフィールドが NULL かデータ属性レコードに含まれていない、または true に設定されていない場合は、データは実行可能ではないとみなされます。 |
true |
MOVE_TO_ACTION |
オブジェクトが現在のオブジェクトに移動されるときに実行されるアクション名 |
FILESYSTEM_MOVE |
COPY_TO_ACTION |
オブジェクトが現在のオブジェクトにコピーされるときに実行されるアクション名 |
FILESYSTEM_COPY |
LINK_TO_ACTION |
オブジェクトが現在のオブジェクトにリンクされるときに実行されるアクション名 |
FILESYSTEM_LINK |
IS_TEXT |
このデータ型がテキスト・エディタまたはテキスト・ウィジェットでの操作 (表示または編集) に適していることをユーザに知らせる文字列論理値。データが本来はテキストである場合や、ユーザに対してテキスト形式で表示される場合、IS_TEXT フィールドには true が設定されます (DtDtsIsTrue() 参照)。その基準は、データが人間の言語から成るものか、手動で生成および管理されているか、テキスト・エディタでの表示と編集が可能か、構造体と書式の情報をまったく (あるいはごくわずかしか) ないかどうかという点から決定されます。 |
詳細な例については、表 9-3 を参照してください。 |
|
IS_TEXT フィールドが true の場合、データはアプリケーションから直接表示できます。すなわち、アプリケーションは XmText などのテキスト編集ウィジェットにデータを直接読み込むことができます。 |
|
MEDIA フィールド |
MEDIA ネーム・スペース名は、データそのものの形式について記述します。MEDIA 名は、ICCCM 選択ターゲットとして使用され、データ型レコードの MEDIA フィールドで名前が付けられ、ToolTalk メディア交換メッセージの型パラメータの中で使用されます。
MEDIA ネーム・スペースは、ICCCM によって定義された選択ターゲット・アトムのネーム・スペースのサブセットです。データ書式を指定する選択ターゲットは、すべて有効な MEDIA 名です。有効な MEDIA 名は選択ターゲットとして直接使用できます。データ書式ではなく、選択の属性 (たとえば、LIST_LENGTH) や発生する副作用 (たとえば、DELETE) を指定する選択ターゲットもあります。これらの属性選択ターゲットは、MEDIA ネーム・スペースの一部ではありません。 |
POSTSCRIPT |
MIME_TYPE |
MEDIA は、デスクトップ内部にあり、データ型を表す一意の名前です。ただし、外部の他の命名組織もネーム・スペースを設定しています。MIME RFC で述べられている Multipurpose Internet Message Extensions (MIME)は、そのような外部登録の 1 つであり、デスクトップ・メール・プログラムのための標準的なネーム・スペースです。 |
application/postscript |
X400_TYPE |
X.400 型は、構造は MEDIA 型に似ていますが、異なる規則を使用して書式化され、異なる命名組織を持ちます。 |
1 2 840 113556 3 2 850 |
INSTANCE_ICON フィールド |
データのインスタンスのために使用されるアイコン名で、通常は %name%.icon などの値 (dtdtsfile(4) のマニュアル・ページの「バグ」も参照)。INSTANCE_ICON が設定されている場合は、アプリケーションは ICON の代わりに使用しなければなりません。このフィールドが NULL か、データ属性レコードに含まれていない場合は、ICON フィールドが使用されます。 |
/myicondir/%name%.bm |
DATA_HOST |
DATA_HOST 属性は、*.dt ファイルのデータ属性テーブルに追加できるフィールドではありませんが、テーブルから属性を読み込むアプリケーションに返すことができます。データ型検査サービスはこの属性を自動的に追加して、データ型の読み込み元のホスト・システムを示します。このフィールドが NULL か、データ属性レコードに含まれていない場合、データ型はローカル・システムから読み込まれています。 |
|
IS_TEXT フィールドは、MIME_RFC で述べられている MIME コンテント・タイプである MIME_TYPE フィールドのテキスト属性とは異なります。MIME コンテント・タイプから、データがテキスト文字とバイト値のどちらで作成されているかがわかります。データがテキスト文字で作成され、データに text/* というラベルが付けられている場合、IS_TEXT フィールドはテキスト形式でユーザに表示するのに適したデータかどうかを判別します。
さまざまな MIME_TYPE属性での IS_TEXTの使用例を表 9-3 に示します。
表 9-3 IS_TEXT 属性の例
説明と MIME_TYPE 属性 |
IS_TEXT 値 |
---|---|
ASCII でコード化された人間の言語 (MIME_TYPE text/plain) |
IS_TEXT true |
*EUC、JIS、Unicode、または ISO ラテン文字セットにコード化された人間の言語 (MIME-TYPE text/plain; charset=XXX) |
IS_TEXT true |
カレンダ・アポイント (MIME_TYPE text/plain) |
IS_TEXT false |
ハイパーテキスト・マークアップ言語 (HTML) (MIME_TYPE text/html) |
IS_TEXT true |
PostScript (MIME_TYPE application/postscript) |
IS_TEXT false |
C プログラム・ソース (C_SRC) (MIME_TYPE text/plain) |
IS_TEXT true |
ビットマップとピックスマップ (XBM と XPM) (MIME_TYPE text/plain) |
IS_TEXT false |
デスクトップ・アプリケーション・ビルド・サービスのためのプロジェクトまたはモジュール・ファイル (MIME_TYPE text/plain) |
IS_TEXT false |
シェル・スクリプト (MIME_TYPE text/plain) |
IS_TEXT false |
uuencode(1) によって生成されたコード化テキスト (MIME_TYPE text/plain) |
IS_TEXT false |
*MIME_TYPE text/plain |
IS_TEXT false |
データ型属性の詳細は、dtdtsfile(4) のマニュアル・ページを参照してください。