[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: DTD and Illegal Construct
- From: James Clark <jjc@jclark.com>
- To: xml-dev@lists.xml.org
- Date: Thu, 11 Jan 2001 11:27:07 +0700
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.
James