OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DTD and Illegal Construct

It seems relatively easy to rewrite individual content models to
workaround the restriction on ambiguity.  Where I find it much more of a
nuisance is the way it makes parameterization harder.  For example,
imagine something like

<!ENTITY % local.emph.class "">
<!ENTITY % emph.class "emph|phrase %local.emph.class;">

<!ENTITY % local.tech.class "">
<!ENTITY % tech.class "code|var %local.tech.class;">

<!ELEMENT eg (#PCDATA|%emph.class;)*>
<!ELEMENT p (#PCDATA|%emph.class;|%tech.class;)*>

Now suppose I want to allow the var element everywhere the emph element
is allowed (ie inside eg).  In my internal subset I do:

<!ENTITY % local.emph.class "|var">

Then I get hit with an ambiguity in the content model for p.

TREX avoids this annoyance by fully supporting ambiguous content
models.  I believe RELAX does also.