Operador *
Por último, el operador *
permite indicar que un elemento aparece una vez, varias veces o ninguna vez.
La cardinalidad sería 0-n (ninguno o más).
Un elemento
El operador *
a un elemento se aplica de la siguiente manera:
<!ELEMENT extensiones (categoria, extension*)>
En el caso anterior, se está definiendo que:
- El elemento
<categoria>
debe aparecer una vez. - El elemento
<extension>
debe aparecer después de<categoria>
y puede no aparecer, aparecer una vez o varias veces.
Serían válidos los siguientes XML:
<extensiones>
<categoria>Imágenes</categoria>
<extension>.jpg</extension>
<extension>.png</extension>
<extension>.gif</extension>
<extension>.webp</extension>
</extensiones>
<extensiones>
<categoria>Imágenes</categoria>
<extension>.jpg</extension>
</extensiones>
<extensiones>
<categoria>Imágenes</categoria>
</extensiones>
El siguiente XML no sería válido:
<provincia>
<extension>.jpg</extension>
<extension>.png</extension>
<extension>.gif</extension>
</provincia>
Varios elementos
El operador *
aplicado a un grupo de elementos se realizaría de la siguiente forma:
<!ELEMENT extensiones (categoria, (nombre, extension)* )>
En el caso anterior, se está definiendo que:
- El elemento
<categoria>
debe aparecer una vez. - Los elementos
<nombre>
y<extension>
pueden aparecer ninguna vez, una vez o varias veces. En cualquier caso, deben aparecer después de<nombre>
y juntos, es decir, cada vez que se incluya un<nombre>
, justo después debe haber un<extension>
.
Serían válidos los siguientes XML:
<extensiones>
<categoria>Imágenes</categoria>
</extensiones>
<extensiones>
<categoria>Imágenes</categoria>
<nombre>Joint Photographic Experts Group</nombre>
<extension>.jpg</extension>
</extensiones>
<extensiones>
<categoria>Imágenes</categoria>
<nombre>Joint Photographic Experts Group</nombre>
<extension>.jpg</extension>
<nombre>Portable Network Graphics</nombre>
<extension>.png</extension>
<nombre>Graphics Interchange Format</nombre>
<extension>.gif</extension>
<nombre>WebP</nombre>
<extension>.webp</extension>
</extensiones>
Los siguientes XML no serían válidos:
<extensiones>
<nombre>Joint Photographic Experts Group</nombre>
<extension>.jpg</extension>
</extensiones>
<extensiones>
<categoria>Imágenes</categoria>
<extension>.jpg</extension>
<nombre>Joint Photographic Experts Group</nombre>
<nombre>Portable Network Graphics</nombre>
<extension>.png</extension>
</extensiones>