[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: General concern about inter-grammar references
The way to think of the current <grammar>/<ref> mechanism is like block
scoping in many programming languages (eg letrec in Scheme). With
block-scoping you can refer to variables only in the current block or
ancestor blocks. There are a couple of differences between this and RELAX
NG. In programming language it is typically implicit which block is being
accessed: if there's no binding in the current block, it looks in the
parent block and so on. I don't think this would work well in the context
of a schema, so instead it is made explicit with parentRef. The other
difference is that with RELAX NG you can only access the immediate parent
rather than an arbitrary ancestor. It would be easy to fix this if
necessary: instead of
<parentRef name="foo"/>
do
<withParent>
<ref name="foo"/>
</withParent>
Then if you really need to get to the grandparent, you can do:
<withParent>
<withParent>
<ref name="foo"/>
</withParent>
</withParent>
Thus I don't think there is anything weird or strange about the kinds of
inter-grammar access that we currently have.
James
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC