Vorheriges Thema: value-AnweisungNächstes Thema: ComponentID Group


Füllen von Tabellen

Eine Tabelle besteht aus einem Array von Gruppeninstanzen. Die Instanzen bilden die Zeilen der Tabelle. Häufig genügt es zur Definition der Tabelle, die Gruppe mit einem Schlüssel zu definieren, da die Werte der Attribute in den einzelnen Zeilen von der Komponente zur Verfügung gestellt werden. Manchmal ist es jedoch nützlich, die Tabellenwerte in der MIF-Datei selbst zu ändern, um die Werte in einer Attributdefinition zu definieren.

Die Tabellenfüllfunktion trennt die Gruppendefinition von den Gruppendaten ab. Sie verwendet eine vorher definierte Gruppe als Vorlage zum Speichern von Werten in der MIF-Datenbank.

Die Tabellen werden nach folgender Syntax aufgefüllt:

start table
	name = "Tabellenname"
	id = nnn
	class = "Klassenzeichenfolge"
	{ v1[,v2 ...] }
	[ { vn[,vm ...] } ]
end table

Diese Tabelle muss von einer name-Anweisung beschrieben werden. Die erforderliche id-Anweisung gibt einen Ganzzahlwert an, der eindeutig innerhalb aller anderen Gruppen und Tabellen in dieser Komponente eindeutig sein muss. Die obligatorische Klassenanweisung identifiziert die vorher definierte und nun als Vorlage verwendete Gruppe.

In einer Tabellenzeile werden die Werte wie bereits gezeigt durch Kommas getrennt und von geschweiften Klammern "{" und "}" eingefasst angegeben. Die Werte werden von links nach rechts in der Reihenfolge der Attribut-IDs aufgelistet, wobei der Wert des Attributs mit der niedrigsten ID zuerst angezeigt wird. Wenn ein Wert in der Liste ausgelassen wird, wird der entsprechende Attributwert, sofern er in der Vorlage definiert ist, als "Standardwert" verwendet. Wenn in der Vorlage kein Standardwert angegeben wird, darf der Wert eines Attributs nicht ausgelassen werden. Zeilen mit zu wenigen Kommata werden wie Zeilen mit der erforderlichen Anzahl nachfolgender Kommata behandelt, so dass die in der Vorlage festgelegten Werte für die in der Zeile verbleibenden Attribute verwendet werden.

Beispiel: Auffüllen einer Tabelle unter Verwendung der zuvor definierten Gruppe

start table
	Name = "Softwaretabelle"
	Class = "DMTF|Softwarebeispiel|1"
	Id = 42
	{"Circus", "4.0a"}
	{"Disk Blaster", "2.0c"}
	{"Oleo", "3.0"}
	{"Presenter", "1.2"}
end table

Im dargestellten Beispiel hat die Ergebnistabelle vier Zeilen. Die value-Anweisungen in der Gruppendefinition werden während des Füllvorgangs nicht als eine Zeile, sondern als Standardwerte verwendet.

Das Füllen von Zeilen, ohne eindeutige Werte für die Kombination von Attributen anzugeben, die den Schlüssel enthalten, ist unzulässig. Die Diensteschichten müssen eine MIF zurückweisen, die beim Auffüllen der Zeilen keine eindeutigen Schlüssel liefert.

Eine Tabellendefinition muss der Gruppendefinition folgen, auf die sie sich bezieht. Die Gruppe muss mit einer key-Anweisung und ohne id-Anweisung definiert sein. Aus einer Vorlage können mehrere Tabellen erstellt werden. Jede Tabelle muss jedoch eine eigene ID aufweisen.