Rubrique précédente: Instruction de valeurRubrique suivante: Groupe ComponentID


Remplissage de tables

Un tableau d'instances de groupe forme une table. Les instances sont les lignes de la table. Souvent, le fait de définir le groupe à l'aide d'une clé suffit pour définir la table, car les valeurs des attributs de chaque ligne sont données par le composant. Toutefois, il est parfois utile d'indiquer les valeurs de la table dans le fichier .MIF même pour définir des valeurs dans une définition d'attribut.

Le mécanisme de remplissage de la table sépare la définition du groupe des données de ce groupe. Ce mécanisme utilise un groupe défini auparavant comme modèle pour le stockage de valeurs dans la base de données MIF.

La syntaxe utilisée pour le remplissage de tables est la suivante :

start table
	name = "nom de la table"
	id = nnn
	class = "chaîne de classe"
	{ v1[,v2 ...] }
	[ { vn[,vm ...] } ]
end table

Une instruction de nom doit décrire cette table. L'instruction d'ID, obligatoire, définit une valeur entière unique parmi tous les autres groupes et tables de ce composant. L'instruction obligatoire de classe identifie le groupe défini précédemment et utilisé comme modèle.

Dans une ligne de table, les valeurs sont fournies comme indiqué ci-avant. Elles sont séparées par une virgule et mises entre accolades ("{" et "}"). La liste des valeurs est indiquée de gauche à droite, dans l'ordre des ID d'attribut. La valeur de l'attribut dont l'ID est le plus faible apparaît en premier. Lorsqu'une valeur de la liste est omise, la valeur d'attribut correspondante est utilisée comme valeur par défaut, si elle est définie dans le modèle. L'omission d'une valeur d'attribut, lorsque aucune valeur par défaut n'est indiquée dans le modèle, est interdite. Les lignes comportant un nombre insuffisant de virgules sont traitées comme des lignes comportant le nombre voulu de virgules à droite, afin que les valeurs définies dans le modèle soient utilisées pour les attributs restants de la ligne.

Exemple : Remplissage d'une table à l'aide du groupe défini précédemment

start table
	Name = "Tableau des logiciels"
	Class = "DMTF|Software Example|1"
	Id = 42
	{"Circus", "4.0a"}
	{"Disk Blaster", "2.0c"}
	{"Oleo", "3.0"}
	{"Presenter", "1.2"}
end table

Dans cet exemple, la table résultante possède quatre lignes. Les instructions de valeur de la définition de groupe sont utilisées comme valeurs par défaut pour le remplissage des lignes et non en tant que lignes mêmes.

Vous ne devez pas remplir de lignes sans fournir de valeurs uniques pour la combinaison d'attributs composant la clé. Les couches de services doivent rejeter un fichier MIF qui ne fournit pas de clés uniques lors du remplissage des lignes.

Une définition de table doit suivre la définition de groupe à laquelle elle fait référence. Le groupe doit avoir été défini avec une instruction de clé, mais sans instruction d'ID. Plusieurs tables peuvent être créées depuis un modèle unique, mais chacune de ces tables doit posséder un ID différent.