DATA_CRITERIA 定義は、オブジェクト型をファイルまたはディレクトリに割り当てるのに使用する基準を定義します。
使用できるオブジェクト型の基準は、表 13-3 のとおりです。
表 13-3 DATA_CRITERIA の基準と説明| 基準 | 説明 | 
|---|---|
| ファイル名 | |
| ファイル位置 | |
| ファイル内容 | |
| ファイル・モード | ファイルは指定したアクセス権 (読み取り、書き込み、実行、ディレクトリ) を所有しなければなりません。MODE フィールドを使用します。 | 
| リンク名はオブジェクトがリンクするファイルに基づきます。 | 
1 つのデータ型に 2 つ以上の基準を使用できます。ただし、NAME_PATTERN と PATH_PATTERN を同じデータ型で使用しないでください。
NAME_PATTERN フィールドを使用して、命名要件を指定します。フィールド値には、次のワイルドカードを指定できます。
? - 任意の 1 つの文字を示します。
[cc...] - 角括弧で囲まれた任意の文字 (c) を示します。
[c-c] - c から c までの範囲の任意の文字を示します。
次のデータ型定義は、ファイル名に基づいたデータ型を作成します。ファイル名は必ず QS で始まり .doc で終わるようにしてください。
   DATA_ATTRIBUTES QS_Doc
    {
      DESCRIPTION				This file contains a document for the QS ¥
 									   project.
      ICON						Word_Doc
      ACTIONS					Open
    }
   DATA_CRITERIA QS_Doc_Criteria
    {
      NAME_PATTERN				QS*.doc
      DATA_ATTRIBUTES_NAME 	QS_Doc
    }
次の定義は、Demo_n (n は 0 から 9) という名前のディレクトリのデータ型を作成します。
   DATA_ATTRIBUTES Demo_directory
    {
      DESCRIPTION				This is a directory. Double-click to open it.
      ICON						Demo
      ACTIONS					OpenInPlace,OpenNewView
    }
   DATA_CRITERIA Demo_directory_criteria
    {
      NAME_PATTERN						Demo_[0-9]
      MODE					 				d
      DATA_ATTRIBUTES_NAME			Demo_directory
    } 
PATH_PATTERN フィールドを使用してパスを指定します。NAME_PATTERN と同じワイルドカードを使用できます。
たとえば、次のデータ型はパスに基づいた基準を使用します。
DATA_ATTRIBUTES Project_Graphics
 {
 	DESCRIPTION			Graphics file for the QS project. Double-click the ¥
 							icon to see the graphic.
 	ICON					QSgraphics
 }
DATA_CRITERIA Project_Graphics_Criteria
 {
 	DATA_ATTRIBUTES_NAME			Project_Graphics
 	PATH_PATTERN						*/projects/QS/graphics/*
 }
ファイル名と位置の両方に基づいたデータ型を作成するには、PATH_PATTERN の値に名前を取り込みます。NAME_PATTERN と PATH_PATTERN の両方を同じ基準定義で使用できません。
次に定義する QS_Source_Files データ型は、*/projects/QS のサブディレクトリにある appn.c (n は 1 から 9) という名前のすべてのファイルに適用されます。
   DATA_ATTRIBUTES QS_Source_Files
    {
      ...
    }
   DATA_CRITERIA QS_Source_Files_Criteria
    {
      PATH_PATTERN						*/projects/QS/*/app[1-9].c
      DATA_ATTRIBUTES_NAME			QS_Source_Files
    }
次のデータ型は、/doc/project1 ディレクトリの chnn.xxx (n は 0 から 9、xxx は任意の 3 文字のファイル名の拡張子) という名前のすべてのファイルに適用されます。
   DATA_ATTRIBUTES ChapterFiles
    {
      DESCRIPTION		Chapter file for the project document.
      ICON					chapter
      ACTIONS				Edit,Print
    }
   DATA_CRITERIA Chapter_Criteria
    {
      PATH_PATTERN						/doc/project1/ch[0-9][0-9].???
      DATA_ATTRIBUTES_NAME			ChapterFiles
    }
MODE フィールドを使用して、必須アクセス権を指定します。
通常、モード基準は名前、位置、内容に基づいたデータ型作成の組み合わせで使用します。これらの基準によって、データ型をファイルまたはディレクトリに制限したり、必須の読み取り権、書き込み権、実行権を指定したりできます。
MODE フィールドには、論理演算子 (表 13-4) と文字 (表 13-5) を指定できます。
表 13-4 MODE フィールドの論理演算子と説明| 演算子 | 説明 | 
|---|---|
| ! | |
| & | |
| | | 
表 13-5 MODE フィールドの文字と説明
| 文字 | 説明 | 
|---|---|
| ファイルだけに適用されるデータ型 | |
| ディレクトリだけに適用されるデータ型 | |
| r | 任意のユーザが読み取れるファイル | 
| 任意のユーザが書き込めるファイル | |
| 任意のユーザが実行できるファイル | |
| リンクであるファイル | 
特定モードのデフォルトは、モードには関係ありません。
次のモード・フィールドは、データ型を制限します。
f&!w - 読み専用ファイル
!w - 読み専用ファイルおよび読み専用ディレクトリ
f&x - 実行可能ファイル
f&r&x - 書き込み可能および実行可能ファイル
x|!w - 実行可能ファイルまたは読み専用ファイル
次のデータ型定義は、読み専用で実行可能でないファイルのデータ型を作成します。ファイル名は *.doc という命名規則に従っています。View アクションはデータ型に対して定義されているものとします。
   DATA_ATTRIBUTES ReadOnlyDocument
    {
      ICON						read_only
      DESCRIPTION			This document is not writable. Double- ¥
 									clicking runs your editor with a ¥
 									read-only copy of the file.
      ACTIONS					View
    }
   DATA_CRITERIA ReadOnlyDocument_Criteria
    {
      NAME_PATTERN						*.doc
      MODE									!d&!x&!w
      DATA_ATTRIBUTES_NAME			ReadOnlyDocument
    }
CONTENT フィールドを使用して、ファイル内容に基づいたデータ型を作成します。内容に基づいたデータ型の作成には、名前または位置に基づいたデータ型を組み合わせて使用できます。
データ型作成は、ファイルの文字または数字内容に基づいて行われます。ファイルの最初のバイトの番号は 0 です。
ファイルの数字内容には、次の構文を使用します。
CONTENT starting_byte byte number CONTENT starting_byte short number CONTENT starting_byte long number
ディレクトリの内容には、次の構文を使用します。
CONTENT 0 filename "file_name"
8 進数 (先頭が o) と 16 進数 (先頭が oX) には、標準 C 表記を使用します。
内容に基づいたデータ型を作成すると、システム性能が遅くなります。できるだけ、名前または位置に基づいたデータ型を使用してください。
たとえば、次のデータ型 Writable_Wingz は、ファイルの最初に WNGZ 文字列が入っていて、書き込み権を持つすべてのファイルに適用されます。
DATA_ATTRIBUTES Writable_Wingz
 {	
 	...
 }
DATA_CRITERIA Writable_Wingz_Criteria
 {
 	CONTENT						0 string WNGZ
 	MODE							w&!d
 	DATA_ATTRIBUTES_NAME	Writable_Wingz
 }
いくつかの独自の基準を持つデータ型を作成できます。つまり、基準のいずれか (または両方) に一致した場合、ファイルはデータ型に割り当てられます。
たとえば、次の定義は Mif データ型を作成します。データ型は名前または内容に基づき作成します。
DATA_ATTRIBUTES Mif
{
 	ICON								Frame
 	ACTION_LIST						Open,Print
 }
DATA_CRITERIA Mif_Name_Criteria
 {
 	DATA_ATTRIBUTES_NAME				Mif
 	NAME_PATTERN							*.mif
 }
DATA_CRITERIA Mif_Content_Criteria
 {
 	DATA_ATTRIBUTES_NAME		Mif
 	CONTENT							1 string MIFFile
 }