[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: Guarded normal form (part 1)
> Ouch! I was hoping that a simple recursive program (which computes
> a set of namepaces) would work. Are you sure?
I was thinking about this while driving back to home, so maybe I'm wrong.
I'd be happy if that is the case.
One of the complex example.
<difference>
<difference><!--accepts nothing but foo-->
<anyName/>
<difference><!--accepts anything but foo-->
<anyName/>
<nsName ns="foo"/>
</difference>
</difference>
<nsName ns="foo"/>
</difference>
Actually this accepts nothing.
Let me see.
Set calcCard( NC );
"Set" is either PosSet<Namespace*> or NegSet<Namespace*>.
PosSet indicates namespaces not in the set is invalid.
NegSet means namespaces not in the set is valid.
"Namespace" is either Pos{NS}<local*> or Neg{NS}<local*>.
PosNS means local names not in the set is invalid.
NegNS means local names not in the set is valid.
For example,
PosSet< Pos{foo}<a,b,c> >
corresponds to:
<choice ns="foo">
<name>a</name>
<name>b</name>
<name>c</name>
</choice>
PosSet< Neg{foo}<a> > corresponds to:
<difference ns="foo">
<nsName />
<name>a</name>
</difference>
NegSet<> corresponds to <anyName/>
Mmm, it looks hopeful...
--
Kohsuke KAWAGUCHI +1 650 786 0721
Sun Microsystems kohsuke.kawaguchi@eng.sun.com
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC