OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

relax-ng message

[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