[relaxng-user] A question on content models

K. Ari Krupnikov ari at lib.aero
Wed Sep 24 07:33:19 ICT 2003


James Clark <jjc at jclark.com> writes:

>  > Question 1: is this a good way of
>  > doing things in RELAX NG, or should I consider a better alternative?
> 
> It seems good to me.  The only disadvantage is that it may make your
> schemas harder to understand.  You have to weigh that against the
> better modularity it gives you.

What other (easier to understand, less modular) alternative are you
referring to?

As far as ease of understanding goes, I tangle the individual RNGs
from ``semi-literate'' markup, where the individual elements are
documented. It seemed easier to create one RNG per literate document
than put them all in one RNG.

>  > 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).
> 
> Even with inheritance in XSD, you have do do something on every
> element (namely declare it to have an appropriate type).  You can do
> this in RELAX NG by
> 
> - having a definition for each type
> 
> - having each type reference the definition of its base type
> 
> - having the pattern for each element of that type reference the
> definition for its type (the ref to this definition is serving the
> same role as the type attribute in XSD)

How would you then say "any element of this type allowed here"?

Ari.


More information about the relaxng-user mailing list