[
Lists Home |
Date Index |
Thread Index
]
In XHTML, several elements, such as <div>, may contain what's called
mixed content. Here's the mixed content model for <div>:
<!ELEMENT div (#PCDATA | %Block.class; | %Inline.class;)*>
%Block.class; includes several block-level (structural) elements, and
%Inline.class includes several inline-level (text) elements.
The mixed content model for <div> allows strange combinations which
are valid but which are definitely unacceptable. For example, the
following is valid XHTML, but definitely not very pretty:
<div>Some text.<p>Some more text.</p> And <em>more</em> text.</div>
I'd like to constrain the DTD content model, if at all possible, so
<div> may have one, and only one, of the following:
Either 1) (%Block.class)*
Or 2) (#PCDATA | %Inline.class;)*
(Thereby the "mixed" mixed content example given above will not
validate to the constrained DTD content model I seek.)
Anyway, I did some experimentation with some content models. Here's
one content model I tried which, in a purely logical way, makes sense:
<!ELEMENT div (((#PCDATA | %Inline.class;)*) | ((%Block.class;)*))>
However, it definitely caused problems with TurboXML which analyzed it
and gave the following error message:
"#PCDATA may only appear in the top-level group of a content model"
I'm getting the sinking feeling there's no way to build the content
model I'd like in XML, at least which would work in a DTD. If not,
why not? Would XML Schema or RelaxNG resolve the issue?
Thanks in advance...
Mark
--
Mark O. Zorro
markozorro@fastmail.fm
--
http://www.fastmail.fm - Same, same, but different…
|