Page 1 of 1

Factoring out a name-class declaration in RNG

Posted: Mon Dec 08, 2008 9:00 pm
by madde001
Hi all,

In my big RNG project that contains many files, I repeatedly use a particular name-class in various places throughout the project. (It's the name class of all names that are not in any of the namespaces used by my project, i.e. the foreign name class with respect to my project's namespaces.)

<anyName>
<except>
<nsName ns="http://myproject.org/ns1/"/>
<nsName ns="http://myproject.org/ns2/"/>
<nsName ns="http://myproject.org/ns3/"/>
</except>
</anyName>

Because it's used in lots of places, I'd like to factor the name-class declaration out into a separate file and reference in the locations where it appears in my files, so if my namespaces change, I can manage them in one place.

The problem is, in RNG a name-class is not a pattern. So to factor it out into an <externalRef> does not seem to be possible, since <externalRef/> requires the contents of the referenced file to be a valid pattern.

Nor can I seem to use <include> to insert a reference to this fragment, because a name-class can't be the immediate child of a <define> or <grammar> element, for the same reason as above.

So in RNG, does anybody know a good way to factor out name-class declarations into a separate file and reference them as externals in some way?

John

Re: Factoring out a name-class declaration in RNG

Posted: Thu Dec 11, 2008 3:16 pm
by sorin_ristache
Hello,

I see that you received an answer on the rng-users list.


Regards,
Sorin

Re: Factoring out a name-class declaration in RNG

Posted: Thu Dec 11, 2008 5:50 pm
by madde001
Yes, Sorin. Thanks.

It's an interesting problem. The alternative of using xi:include works fine (and I'm grateful for the XInclude support in oXygen!), but the bigger issue of whether name classes should be patterns in RNG is presently an open question, it seems.

John