Les trois façons d’écrire une propriété
Balise, balise à valeur, ou attribut — et pourquoi ça change tout.
Une même propriété peut s’écrire de trois manières. Elles sont équivalentes… sauf sur un point décisif.
1. En balise enfant
<image name="fond">
<path>./data/fond.jpg</path>
</image>
La forme historique. La plus lisible dès qu’un composant a plusieurs propriétés.
2. En balise enfant à attribut value
<image name="fond">
<path value="./data/fond.jpg" />
</image>
Strictement équivalente à la première.
3. En attribut du composant
<image name="fond" path="./data/fond.jpg" pos="0 0" size="1 1" />
Tout tient sur une ligne. Très pratique pour les composants simples.
La différence qui compte
Seules les formes 1 et 2 acceptent une condition sur UNE propriété.
<image name="fond">
<path if="crt">./data/fond-crt.jpg</path>
<path if="!crt">./data/fond-hd.jpg</path>
</image>
Impossible en forme 3 : if= sur la balise mère conditionnerait le composant entier, pas une de ses propriétés.
Elles se mélangent librement
C’est le point important : vous n’avez pas à choisir une façon et vous y tenir. Le lecteur de Recalbox les accepte toutes les trois, y compris dans le même composant.
<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>
Trois écritures dans le même composant : les valeurs simples en attributs sur la première ligne, celle qui a des variantes en balises conditionnelles, et une dernière en balise à value. C’est parfaitement valide, et c’est même ce qu’on écrit en pratique.
➡️ Règle simple : une seule valeur → attribut ; des variantes → balise enfant.