[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: <div> in <include>
> <div> elements are equally sensible for the <include> element. > > <grammar> > <include href="..."> > <div> > <define name="foo"> > ... > </define> > </div> > > <define name="joe"> > ... > </define> > </include> > > .... > </grammar> > > > <div>s inside a <grammar> element and <div>s inside a <include> element > is not equal, for example because the former is allowed to have a <start> > element where the latter isn't. You need to be able to have a <start> inside an <include>, so it makes sense to have a <start> inside a <div> inside a <include>. However, I don't think we want <include>s to nest. So this means that a <div> inside an <include> is like a <div> outside an <include> except that it can't contain an <include>. I don't think this requires us to have two names for <div>. It's just like an exclusion in XML. RELAX NG allows context-sensitive content models, and this seems to me an appropriate use of them. This is what I would propose for the content model of <grammar>: <define name="pattern" combine="choice"> <element name="grammar"> <ref name="common-atts"/> <ref name="grammar-content"/> </element> </define> <define name="grammar-content"> <interleave> <ref name="other"/> <zeroOrMore> <choice> <ref name="start-element"/> <ref name="define-element"/> <element name="div"> <ref name="common-atts"/> <ref name="grammar-content"/> </element> <element name="include"> <attribute name="href"> <data type="anyURI"/> </attribute> <ref name="common-atts"/> <ref name="include-content"/> </element> </choice> </zeroOrMore> </interleave> </define> <define name="include-content"> <interleave> <ref name="other"/> <zeroOrMore> <choice> <ref name="start-element"/> <ref name="define-element"/> <element name="div"> <ref name="common-atts"/> <ref name="include-content"/> </element> </choice> </zeroOrMore> </interleave> </define> James
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC