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>