[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: RE: repeating and recursive inclusion
Jeni, The following may not answer all your questions but here are a few comments and pointers. "I've been working on a RELAX NG schema for XHTML. I thought it was a good target for checking out the modularity capabilities - how easy would it be to split up a RELAX NG schema along the same lines as the XHTML Modularisation effort, and pick and choose bits from XHTML to incorporate into other namespaces." James (Clark) has implemented in RELAX NG the XHTML abstract modules defined by the XHTML Modularization: http://www.thaiopensource.com/relaxng/xhtml/ , that you may want to look at. The implementation closely follows the DTD implementation structure-by-structure (though not in principle), and leverages on the previous TREX implementation. This makes transition and comparison quite convenient. The RELAX NG implementation for a member markup language of the XHTML "Family" is just a matter of aggregating relevant modules (and no more) as creating a model module (like the DTD implementation) is not required by the RELAX NG implementation. This possibility is certainly time saving and convenient. I suspect that some of the effort may be slightly dated as it points to "XHTML PR" at one place. "The first problem is that if you include something twice then you run into problems with having multiple defines of the same name." That would be a problem in DTDs too. "The second problem is to do with recursive inclusions in nested grammars. I'm coming across this with client-side image maps - the map element can have any block content (a Block.mix pattern), and within it any a elements can have two extra attributes (shape and coords) to indicate areas on the image that they correspond to." The RELAX NG implementation of the Client-Side Image Maps module http://thaiopensource.com/relaxng/xhtml/modules/csismap.rng does make use of nesting grammar patterns. It does not make use of Block.mix based on the reasoning that "loose.dtd doesn't use %Flow;" although I do not see why a reference to loose.dtd should be there at all. The RELAX NG Tutorial, Appendix A http://www.oasis-open.org/committees/relax- ng/tutorial.html#c41b1c17 mentions that RELAX NG "does allow entities to be specified". It may be useful  to include the three XHTML entity files in the RELAX NG/XHTML Modularization package for completeness. Hope this is useful. Pankaj Kamthan  I am working on a RELAX NG implementation of MathML (after modularizing it first) and this is of personal interest.
Powered by eList eXpress LLC