[xquery-talk] SequenceType matching in For/Some/Every expressions

Martin Probst martin at x-hive.com
Wed Sep 28 17:00:39 PDT 2005

I think there is a (somewhat minor) bug in the XQuery specification
about sequence type matching. The grammar states:

[34]   ForClause         ::=    <"for" "$"> VarName TypeDeclaration? ...
[118]  TypeDeclaration   ::=    "as" SequenceType
[119]  SequenceType      ::=    (ItemType OccurrenceIndicator?)
                                | <"empty-sequence" "(" ")">

and similar rules for Some, Every and Let. I think these rules should
rather reference/descend directly into ItemType as the following
statements do not make any sense to me (same for some&every):

for $x as xs:string* in ...
for $x as xs:string+ in ...
for $x as xs:string? in ...
for $x as empty-sequence() in ...

The only thing that adds any semantic meaning is the empty-sequence()
statement which I would interpret as "give an error if this yields
something". But it's really cryptic and there are better ways to do

Am I missing something or is this an issue? The description for for/let
clauses doesn't mention occurrences at all.

Martin Probst
X-Hive Corporation

More information about the talk mailing list