[F&O] 15.1 zero-or-one, one-or-more, exactly-one

Section 15.1 Functions and Operators on Sequences defines the
functions  zero-or-one(), one-or-more(), exactly-one().

The function definitions are:

   fn:zero-or-one($srcval as item*) as item?
   fn:one-or-more($srcval as item*) as item+
   fn:exactly-one($srcval as item*) as item


The main purpose of these functions is to raise an error if the property
they name is not true for the parameter-sequence. 

Such functions are not necessary and useful, because, had their type been
specified as:

   fn:zero-or-one($srcval as item?) as item?
   fn:one-or-more($srcval as item+) as item+
   fn:exactly-one($srcval as item) as item

then the error would be raised automatically if $srcval was not of the
correct type.

Such automatic errors would be raised for any function when passed
parameters not matching the defined types of its arguments -- therefore
the above three functions are not necessary at all.

Solution: remove the functions fn:zero-or-one(), fn:one-or-more() and
fn:exactly-one()


Dimitre Novatchev


__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/

Received on Saturday, 22 November 2003 07:53:20 UTC