Las tres formas de escribir una propiedad
Etiqueta, etiqueta con valor, o atributo — y por qué lo cambia todo.
Una misma propiedad puede escribirse de tres maneras. Son equivalentes… salvo en un punto decisivo.
1. Como etiqueta hija
<image name="fond">
<path>./data/fond.jpg</path>
</image>
La forma histórica. La más legible en cuanto un componente tiene varias propiedades.
2. Como etiqueta hija con atributo value
<image name="fond">
<path value="./data/fond.jpg" />
</image>
Estrictamente equivalente a la primera.
3. Como atributo del componente
<image name="fond" path="./data/fond.jpg" pos="0 0" size="1 1" />
Todo cabe en una línea. Muy práctico para los componentes simples.
La diferencia que cuenta
Solo las formas 1 y 2 aceptan una condición sobre UNA propiedad.
<image name="fond">
<path if="crt">./data/fond-crt.jpg</path>
<path if="!crt">./data/fond-hd.jpg</path>
</image>
Imposible en la forma 3: if= en la etiqueta madre condicionaría el componente entero, no una de sus propiedades.
Se mezclan libremente
Este es el punto importante: no tienes que elegir una forma y atenerte a ella. El lector de Recalbox acepta las tres, incluso dentro del mismo componente.
<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>
Tres escrituras en el mismo componente: los valores simples como atributos en la primera línea, la que tiene variantes como etiquetas condicionales, y una última como etiqueta con value. Es perfectamente válido, y es incluso lo que se escribe en la práctica.
➡️ Regla simple: un solo valor → atributo; variantes → etiqueta hija.