Die drei Schreibweisen einer Eigenschaft
Tag, Tag mit Wert, oder Attribut — und warum das alles ändert.
Dieselbe Eigenschaft kann auf drei Arten geschrieben werden. Sie sind gleichwertig… außer in einem entscheidenden Punkt.
1. Als Kind-Tag
<image name="fond">
<path>./data/fond.jpg</path>
</image>
Die historische Form. Am lesbarsten, sobald eine Komponente mehrere Eigenschaften hat.
2. Als Kind-Tag mit value-Attribut
<image name="fond">
<path value="./data/fond.jpg" />
</image>
Streng gleichwertig zur ersten.
3. Als Attribut der Komponente
<image name="fond" path="./data/fond.jpg" pos="0 0" size="1 1" />
Alles passt in eine Zeile. Sehr praktisch für einfache Komponenten.
Der Unterschied, der zählt
Nur die Formen 1 und 2 akzeptieren eine Bedingung auf EINER Eigenschaft.
<image name="fond">
<path if="crt">./data/fond-crt.jpg</path>
<path if="!crt">./data/fond-hd.jpg</path>
</image>
In Form 3 unmöglich: if= auf dem Eltern-Tag würde die ganze Komponente bedingen, nicht eine ihrer Eigenschaften.
Sie mischen sich frei
Das ist der wichtige Punkt: Du musst dich nicht für eine Art entscheiden und dabei bleiben. Recalbox' Leser akzeptiert alle drei, auch in derselben Komponente.
<image name="fond" pos="0 0" size="1 1" zIndex="1">
<path if="crt">${root}/images/fond-crt.jpg</path>
<path if="!crt">${root}/images/fond-hd.jpg</path>
<color value="FFFFFFC0" />
</image>
Drei Schreibweisen in derselben Komponente: die einfachen Werte als Attribute in der ersten Zeile, die mit Varianten als bedingte Tags, und eine letzte als Tag mit value. Vollkommen gültig — und genau das schreibt man in der Praxis.
➡️ Einfache Regel: ein einziger Wert → Attribut; Varianten → Kind-Tag.