* Marta Carrasco
| <!ELEMENT A(B,B)>
| is right?
This is just fine.
People tend to expect there to be a large number of restrictions in
the allowed content models for elements, but in fact there is only one
restriction, and even that is not necessary, but only included for
compatibility with SGML (which should have been fixed, rather than
impose pointless and awkward restrictions on XML).
The restriction is that when you are matching a sequence of elements
against a content model you must always be able to tell which particle
in the content model the current element matches, without having to
So <!ELEMENT A (B | B)> would violate this, as would
<!ELEMENT A (B?, B)> although both could trivially be rewritten into
forms that are non-offensive.