Saltar al contenido principal

Operador ?

El operador ? permite indicar que un elemento es opcional, es decir, que aparece una sola vez o ninguna.

La cardinalidad sería 0-1 (uno o ninguno).

Un elemento

El operador ? a un elemento se aplica de la siguiente manera:

<!ELEMENT telefono (trabajo?, casa )>

En el caso anterior, se está definiendo que:

  • El elemento <trabajo> puede aparecer una vez o ninguna.
  • El elemento <casa> debe aparecer una vez y después de <trabajo> (en el caso de estar definido). Si <trabajo> no está definido, se muestra solo.

Serían válidos los siguientes XML:

<telefono>
<trabajo>634195909</trabajo>
<casa>690756558</casa>
</telefono>
<telefono>
<casa>690756558</casa>
</telefono>

Los siguientes XML no serían válidos:

<telefono></telefono>
<telefono>
<trabajo>634195909</trabajo>
<trabajo>981510050</trabajo>
<casa>690756558</casa>
</telefono>

Varios elementos

El operador ? aplicado a un grupo de elementos se realizaría de la siguiente forma:

<!ELEMENT telefono ((prefijo | pais)?, numero )>

En el caso anterior, se está definiendo que:

  • Se debe realizar una elección entre <prefijo> y <pais>. Solo se puede incluir uno.
  • Una vez realizada la elección, indicar uno de los dos elementos es opcional. Por lo tanto, puede incluirse <prefijo>, <pais> o ninguno de ellos.
  • El elemento <numero> debe aparecer una vez y después de <prefijo> o <pais> (en el caso de estar definido). Si <prefijo> o <pais> no está definido, se muestra solo.

Serían válidos los siguientes XML:

<telefono>
<prefijo>0034</prefijo>
<numero>682214867</numero>
</telefono>
<telefono>
<pais>España</pais>
<numero>615321259 </numero>
</telefono>
<telefono>
<numero>669453046</numero>
</telefono>