Ü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 Untertags bConfig erhalten zusätzliche Attribute
    • x: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 Werten begin, end, before und after. Im Fall, dass die Operation add und update ist bestimmt das position Attribut die Stelle an der der Eintag eingefügt wird, bzw. beim update wohin der Eintrag verschoben wird. Im Fall before und after muss noch eine Reference zu einem anderen Listeneintrag über x: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.