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

 


Help: OASIS Mailing Lists Help | MarkMail Help

relax-ng message

[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 [1] to include the three XHTML entity files in the RELAX 
NG/XHTML Modularization package for completeness.

Hope this is useful.

Pankaj Kamthan

[1] I am working on a RELAX NG implementation of MathML (after 
modularizing it first) and this is of personal interest.


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC