Saltar al contenido principal

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>