[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: Issue: <element>&<attribute> in <list>
> Let's consider three positions in my mail at:
>
> http://lists.oasis-open.org/archives/relax-ng/200106/msg00127.html
OK.
Whatever position we adopt, we can allow <attribute>s within a <list>.
If we change the formal semantics of list to the following one,
E; ns |- a; split(s) =~ p => k;kr
---------------------------------
E; ns |- a; s =~ <list> p </list> => k;kr
then we can allow <attribute>s in a <list>. If the language generated by
p is within the XML1.0 model, then so does <list>p</list>.
The implementation is also easy. The attached algorithm can correctly
implement the above semantics.
For <element>s in a <list>, we didn't have an algorithm to implement
<element>s in a <list>. That's why I suggested to prohibit it. But
actually, I found it while I'm writing this. The attached algorithm is
also capable of properly implementing what you expect.
> In position 2, we disallow both <element> and <attribute>. Since position 2 is
> my favorite, I would like to disallow them in <list>.
I still don't think <element>/<attribute>s in a <list> is beyond the
regular language. Would you show me an example of such a case?
* modified algorithm for <list>
function residual( <list> P </list>, S ) {
if( S is a string token ) {
Let {t1,t2,..., tn} be tokenization of S.
return <list>
residual( residual( residual( P, t1 ), t2 ) ..., tn ) </list>
}
if( S is an element token ) {
return <list> residual(P,S) </list>;
}
if( S is an attribute token ) {
return <list> residual(P,S) </list>;
}
throw new AssertionFailure();
}
--
Kohsuke KAWAGUCHI +1 650 786 0721
Sun Microsystems kohsuke.kawaguchi@sun.com
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC