Überschreiberegeln
Im Folgenden soll x:
der Prefix für den Namensraum http://www.top-logic.com/ns/config/6.0
sein.
Eine allgemeine Konfiguration kann durch eine spezielle Konfiguration überschrieben werden. Dabei gibt es folgende Möglichkeiten:
Benannte Komponenten
Eine Komponente sei durch das Tag <aConfig />
beschrieben. Das Konfigurationstag aConfig
bekommt ein neues boolean-wertiges Attribute x:override
(default false
).
- Im Fall
x:override="true"
wird eine komplette Neukonfiguration vorgenommen. Die allgemeine Konfiguration wird ignoriert. - Im Fall
x:override="false"
wird die allgemeine Konfiguration durch die spezielle Konfiguration modifiziert.- Es werden alle Attribute gesetzt die in der allgemeinen Konfiguration oder der speziellen Konfiguration angegeben werden. Wird ein Attribut in beiden Konfigurationen angegeben, wird der Konfigurationswert der speziellen Konfiguration benutzt.
- Wird eine Eigenschaft der Komponente durch ein Subtag beschrieben und ist diese entweder in der allgemeinen Konfiguration oder der speziellen Konfiguration gegeben, so wird diese Eigenschaft gesetzt. Ist diese Eigenschaft in beiden Konfigurationen gegeben, so wird abhängig von dem Type der Eigenschaft verfahren.
Subkomponentenlisten
Habe die Komponente eine listenwertige Subkomponenten Eigenschaft wobei es noch einen indizierenden Key gebe, z.B. laute ein Konfiguration:
<aConfig>
<bConfigs>
<bConfig name="component-1" />
<bConfig name="component-2" />
<bConfig name="component-3" />
<bConfigs>
<aConfig>
wobei name
der indizierender Key in der Liste der bConfig
sei.
Das Listenwertige Tag bConfigs
bekommt ein neues boolean-wertiges Attribute x:override
(default false
).
- Im Fall
x:override="true"
wird die komplette Liste redeklariert. Die in der allgemeinen Konfiguration angegebene Liste wird ignoriert. - Im Fall
x:override="false"
wird die in der allgemeine Konfiguration angegebene Liste modifiziert. Die UntertagsbConfig
erhalten zusätzliche Attributex:operation
mit möglichen Werten:add
(default): Dieser Listeneintrag wird an das Ende der Liste angehängt.remove
: Der Listeneintrag mit dem selben Key wird entfernt .update
: Der Listeneintrag mit dem selben Key wird bearbeitet. Dies geschieht wie in den Überschreiberegeln für Komponenten beschrieben.
x:position
mit den Wertenbegin
,end
,before
undafter
. Im Fall, dass die Operationadd
undupdate
ist bestimmt dasposition
Attribut die Stelle an der der Eintag eingefügt wird, bzw. beimupdate
wohin der Eintrag verschoben wird. Im Fallbefore
undafter
muss noch eine Reference zu einem anderen Listeneintrag überx:reference=key
gegeben werden um die relative Position zu bestimmen.
Indizierte Subkomponenten
Geschieht ählich wie bei den Subkomponentenlisten. Im Fall dass die indizierten Subkomponenten inkrementell verändert werden (bConfigs
hat das Attribut x:override="false"
) hat das Attribut x:operation
nur einen eingeschränkten Wertebereich: Die Werte prepend
, after
und before
entfallen ersatzlos.
Strukturierte Werte
Die allgemeine Konfiguration wird ignoriert. Es gibt keine Möglichkeit die Konfiguration inkrementell zu verändern.