Choices
Sometimes one instance of an element may contain one kind of
child, and another instance may contain a different child. This can
be indicated with a choice. A choice is a list
of element names separated by vertical bars. For example, this
declaration says that a methodResponse element contains either a
params child or a fault child:
<!ELEMENT methodResponse (params | fault)>
However, it cannot contain both at once. Each methodResponse element must contain one or
the other.
Choices can be extended to an indefinite number of possible
elements. For example, this declaration says that each digit element can contain exactly one of
the child elements named zero,
one, two, three, four, five, six, seven, eight, or nine:
<!ELEMENT digit (zero | one | two | three | four | five | six | seven | eight | nine) >