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: Comments on RELAX NG 2001-06-08



> In an early version of RELAX Core, I did the same thing.  But this makes
> type assignment for simple types ambiguous, since two <attribute> for the
> same attribute name can have different datatypes.  In particular, Relaxer
> had a big problem about such duplicated declarations.

So this is an implementation issue, in large part?

> Furthermore, this appoarch makes validation of RELAX NG very difficult or
even
> impossible.  As an example, consider
>
> <group>
>   <choice><group><attribute name="foo"/><ref name="bar11"/></group>
>           <ref name="bar12"/>
>   </choice>
>   <choice><group><attribute name="foo"/><ref name="bar21"/></group>
>           <ref name="bar22"/>
>   </choice>
> </group>
>
> In your approach, when the attribute "foo" is present, this is equivalent
> to (bar11, bar21) | (bar12, bar21) | (bar12, bar22) .  If it is absent,
> this is equivalent to (bar12, bar22).  However, I do not think we can
> implement this semantics.

If foo is present, the interpretation I suggest is that next must come
(bar11, bar21).   I am not suggesting (bar12,21) | (bar12, bar22).

> When we have <... foo="">, what is our derivative?  If we simply consume
> both <attribute>s, we have
>
> <group>
>   <choice><ref name="bar11"/>
>           <ref name="bar12"/>
>   </choice>
>   <choice><ref name="bar21"/>
>           <ref name="bar22"/>
>   </choice>
> </group>,
>
> but this incorrectly permits (bar12, bar22).

(Aside: I think it is better to write  foo="..." rather than
foo="", b.t.w.)

Why isnt the appropriate derivative the following?  (eliding
the choice)  Isn't this what would happen if foo was an element?

<group>
   <ref name="bar11"/>
  <ref name="bar21"/>
 </group>

...
> This allows only (bar11, bar21), and is thus incorrect.

But (bar11, bar21) is the thing I am suggesting is correct.
Sorry being thick, but I don't understand this answer at all.

Cheers
Rick



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC