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: Issue: empty strings as keys and keyRefs


When we discussed this at the telcon, there was some talk of dealing with 
this in the restricted grammar.  I don't think this works, because it 
wouldn't deal with:

<choice>
  <element name="foo">
    <key name="x">
       <data type="string"/>
    </key>
  </element>
  <element name="foo">
    <empty/>
  </element>
</choice>

We could try to extend 7.4 to deal with this, but I think it's going to be 
very tricky because we need to allow

<list>
  <zeroOrMore>
    <keyRef name="x">
      <data type="string"/>
    </keyRef>
  </zeroOrMore>
</list>

which will turn into a <choice> with <empty/>.

Also it also seems a little tricky to implement empty strings as keys.  No 
doubt it can be done, but it's definitely extra work for an implementation.

I therefore continue to believe that the best solution is what is I've put 
in the spec: putting not(s = "") in the antecedent to key and keyRef in 
6.2.12.

James

--On 02 July 2001 10:55 +0700 James Clark <jjc@jclark.com> wrote:

> We need to think about what happens if an element with key or keyRef
> content has an empty string.  For example, if the schema has:
>
> <element name="foo">
>   <choice>
>     <empty/>
>     <key name="bar">
>       <data type="string"/>
>     </key>
>   </choice>
> </element>
>
> and the instance has
>
>   <foo></foo>
>
> then it is ambiguous what the key generated by the match is. One the
> other hand I don't think our ambiguity algorithm handles this.
>
> I think the simplest solution will be to say that <key> and <keyRef>
> don't match empty strings even if the included pattern can match an empty
> string, eg
>
> <element name="foo">
>   <key name="bar">
>     <data type="string"/>
>   </key>
> </element>
>
> does not match
>
> <foo></foo>
>
> James
>
>
>
>
>
> ------------------------------------------------------------------
> To unsubscribe from this elist send a message with the single word
> "unsubscribe" in the body to: relax-ng-request@lists.oasis-open.org
>
>






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


Powered by eList eXpress LLC