On page 109 the book discusses declaring mixed content DTDs. The example given
Code:
<!ELEMENT description (#PCDATA | em | strong | br)*>
seems to create a situation where a description can contain text, em, strong, or br tags but that none of those tags can contain anything within them but text. Only after reading a lot more of the book (and I have also read many other XML books) was I finally able to figure out that those other elements (em, strong, br) all also have to be declared to indicate what elements they are allowed to contain. For instance :
Code:
<!ELEMENT em (#PCDATA | strong | br)*>
<!ELEMENT strong (#PCDATA | em | br)*>
<!ELEMENT br EMPTY>
If the authors would mention this I think it would make the whole concept much more clear.
Thanks.