La définition DATA_CRITERIA
indique les critères utilisés pour affecter un type d'objet
à un fichier ou à un répertoire. 
Vous pouvez utiliser les critères figurant dans le Tableau 13–3 pour indiquer les types d'objets.
Tableau 13–3 Critères et descriptions de la définition DATA_CRITERIA
Vous pouvez utiliser plusieurs critères dans un type de données. Cependant, vous ne devez pas utiliser les critères NAME_PATTERN et PATH_PATTERN dans le même type de données.
Utilisez la zone NAME_PATTERN pour indiquer les exigences d'appellation. Les caractères génériques suivants sont acceptés :
? : remplace un caractère quelconque
* : remplace une séquence de caractères quelconque (y compris une chaîne nulle)
[cc…]remplace le(s) caractère(s) (c) figurant entre crochets
[c–c] : remplace les caractères compris entre c et c
La définition suivante crée un type de données basé sur le nom du fichier. Ce nom doit commencer par QS et se terminer par .doc.
	DATA_ATTRIBUTES QS_Doc
 	{
 		DESCRIPTION				Ce fichier contient 
 							un document pour le projet\ QS.
 		ICON						Word_Doc
 		ACTIONS					Ouvrir
 	}
 	DATA_CRITERIA Critères_Doc_QS
 	{
 		NAME_PATTERN				QS*.doc
 		DATA_ATTRIBUTES_NAME  Doc_QS
 	}
La définition suivante crée un type de données pour les répertoires portant le nom Demo_n où n correspond à un chiffre compris entre 0 et 9.
	DATA_ATTRIBUTES Répertoire_Demo
 	{
 		DESCRIPTION				Ceci est un répertoire. 
 							Cliquez deux fois dessus pour l'ouvrir.
 		ICON						Demo
 		ACTIONS					Ouvrir dans la fenêtre active,
 							Ouvrir dans une nouvelle fenêtre
 	}
 	DATA_CRITERIA Critères_répertoire_Demo
 	{
 		NAME_PATTERN						Demo_[0-9]
 		MODE					 				d
 		DATA_ATTRIBUTES_NAME			Répertoire_Demo
 	} 
Utilisez la zone PATH_PATTERN pour indiquer le chemin. Vous pouvez utiliser les mêmes caractères génériques que pour NAME_PATTERN.
Par exemple, le type de données suivant utilise un critère basé sur le chemin.
DATA_ATTRIBUTES Graphique_projet
 {
 	DESCRIPTION			Fichier graphique pour le projet QS. 
 					Cliquez deux fois sur \
 							l'icône pour voir le graphique.
 	ICON					QSgraphics
 }
 DATA_CRITERIA Critères_graphique_projet
 {
 	DATA_ATTRIBUTES_NAME			Graphique_projet
 	PATH_PATTERN						*/projects/QS/graphics/*
 }
Pour créer un type de données basé à la fois sur le nom et sur l'emplacement, ajoutez le nom à la valeur PATH_PATTERN. Vous ne pouvez pas utiliser à la fois NAME_PATTERN et PATH_PATTERN dans la même définition de critères.
Le type de données Fichiers_source_QS défini ci-dessous s'applique à tous les fichiers appn.c, où n est un chiffre compris entre 1 et 9, situés dans des sous-répertoires de */projects/QS.
	DATA_ATTRIBUTES Fichiers_source_QS
 	{
 	        …
 	}
 	DATA_CRITERIA Critères_fichiers_source_QS
 	{
 		PATH_PATTERN						*/projects/QS/*/app[1-9].c
 		DATA_ATTRIBUTES_NAME			Fichiers_source_QS
 	}
Le type de données suivant s'applique à tous les fichiers du répertoire /doc/project1 dont le nom est chnn.xxx où n est un chiffre compris entre 0 et 9 et xxx est une extension à trois caractères.
	DATA_ATTRIBUTES Fichiers_chapitre
 	{
 		DESCRIPTION			Chapitre du projet.
 		ICON					chapter
 		ACTIONS				Editer,Imprimer
 	}
 	
 	DATA_CRITERIA Critères_chapitre
 	{
 		PATH_PATTERN						/doc/project1/ch[0-9][0-9].???
 		DATA_ATTRIBUTES_NAME			Fichiers_chapitre
 	}
Utilisez la zone MODE pour indiquer les autorisations requises.
Les critères de mode sont généralement associés à un type de données basé sur le nom, l'emplacement ou le contenu. Ils permettent de limiter un type de données à un fichier ou à un répertoire, ou d'indiquer l'autorisation de lecture, d'écriture ou d'exécution requise.
La zone MODE peut comporter des opérateurs logiques (Tableau 13–4) et des caractères (Tableau 13–5).
Tableau 13–4 Opérateurs logiques et descriptions de la zone MODE| Opérateur | Description | 
|---|---|
| ! | |
| & | |
| | | 
Tableau 13–5 Caractères et descriptions de la zone MODE
| Caractère | Description | 
|---|---|
| Type de données s'appliquant uniquement aux fichiers. | |
| Type de données s'appliquant uniquement aux répertoires. | |
| r | Fichier lisible par n'importe quel utilisateur. | 
| Fichier accessible en écriture par n'importe quel utilisateur. | |
| Fichier exécutable par n'importe quel utilisateur. | |
| Le fichier est un lien. | 
Par défaut, le mode n'est pas pris en compte.
Les zones de mode ci-dessous limitent le type de données de la manière décrite :
f&!w : fichiers en lecture seule
!w : fichiers et répertoires en lecture seule
f&x : fichiers exécutables
f&r&x :fichiers accessibles en lecture et exécutables
x|!wfichiers exécutables ou accessibles en lecture seule
La définition suivante crée un type de données pour les fichiers non exécutables accessibles en lecture seule dont le nom respecte la convention d'appellation *.doc. Cette définition suppose qu'une action Visualiser a été définie pour ce type de données.
	DATA_ATTRIBUTES Document_lecture_seule
 	{
 		ICON						read_only
 		DESCRIPTION				Ce document n'est pas modifiable. 
 							Cliquez deux fois \
 									pour ouvrir une copie accessible 
 									en lecture seule \
 									dans l'éditeur.
 		ACTIONS					Visualiser
 	}
 	DATA_CRITERIA Critères_document_lecture_seule
 	{
 		NAME_PATTERN						*.doc
 		MODE									!d&!x&!w
 		DATA_ATTRIBUTES_NAME			Document_lecture_seule
 	}
Utilisez la zone CONTENT pour indiquer un type de données basé sur le contenu du fichier. Ce type de données peut être utilisé en combinaison avec des types de données basés sur le nom ou sur l'emplacement.
Le type peut dépendre d'une chaîne ou de chiffres contenus dans le fichier. La numérotation des octets du fichier commence à 0.
Pour des chiffres, utilisez la syntaxe :
CONTENT octet_début byte numéro CONTENT octet_début short numéro CONTENT octet_début long numéro
Pour le contenu d'un répertoire, utilisez la syntaxe :
CONTENT 0 filename "nom_fichier"
Utilisez la notation C standard pour les numérotations octale (valeur précédée de o) et hexadécimale (valeur précédée de oX).
L'utilisation d'un type de données basé sur le contenu peut provoquer un ralentissement des performances du système. Utilisez de préférence un type basé sur le nom ou sur l'emplacement.
Par exemple, le type de données suivant, Wingz_modifiable, s'applique à tous les fichiers accessibles en écriture et commençant par la chaîne WNGZ.
	DATA_ATTRIBUTES Wingz_modifiable
	{	
 		…
 	}
 	DATA_CRITERIA Critères_Wingz_modifiable
 	{
 		CONTENT						0 string WNGZ
 		MODE							w&!d
 		DATA_ATTRIBUTES_NAME	Wingz_modifiable
 	}
Vous pouvez créer un type de données à l'aide de plusieurs critères indépendants autrement dit, le fichier est affecté à un type de données s'il répond à au moins un des critères.
Créez la définition DATA_ATTRIBUTES pour le type de données. 
Créez une définition DATA_CRITERIA pour chaque critère. 
Utilisez la zone DATA_ATTRIBUTES_NAME pour
associer chaque critère à la même définition DATA_ATTRIBUTES. 
Par exemple, les définitions suivantes permettent de créer le type de données Mif. Le type est basé sur le nom et le contenu.
DATA_ATTRIBUTES Mif
{
 	ICON								Frame
 	ACTION_LIST						Ouvrir,Imprimer
 }
 DATA_CRITERIA Critères_Nom_Mif
 {
 	DATA_ATTRIBUTES_NAME				Mif
 	NAME_PATTERN							*.mif
 }
 DATA_CRITERIA Critères_Contenu_Mif
 {
 	DATA_ATTRIBUTES_NAME		Mif
 	CONTENT							1 string MIFFile
 }