Lists Home |
Date Index |
This thread has moved to the new relaxng-user list.
John Cowan <firstname.lastname@example.org> writes:
> K. Ari Krupnikov scripsit:
> > I have a master RNG file that describes general properties of my
> > grammar, and individual RNG files that describe individual
> > elements. The master file <include>s the individual ones.
> Do you have them separated out merely for ease of maintenance, or do
> you anticipate using different contents for the individual files?
I tangle my RNGs from other markup, if you are curious, take a look at
> > Question 1: is this a good way of
> > doing things in RELAX NG, or should I consider a better alternative?
> The obvious alternative would be to avoid the machinery of "define"
> combination, and simply use externalRef to bring in the element patterns
> directly. This is somewhat more streamlined.
Won't work, I don't think. Any of the elements' CM may need to say
"any element of class foo here," without enumerating members of the
foo class by name or filename -- it can't because it doesn't know
about them. It knows about classes because they are enumerated in the
> > Question 2: I need to add declarations that would be common to all
> > members of a particular class. An obvious way is to have every element
> > <ref> the common declarations (a group of attributes in this
> > case). Can I do it in one place? DTDs don't provide such a mechanism,
> > XSD does (thought inheritance).
> I don't see that it's any better or worse to have to ref common
> subpatterns than to have to specify a common base type.
I want to specify both in one declaration. It's not an accidental
coincidence that all members of a class have common attributes, it's
part of the meaning of being a part of that class. I was wondering if
there was a way to capture that in RELAX NG.