[xquery-talk] Empty or Null Array?

John Snelson John.Snelson at marklogic.com
Thu Jul 16 07:31:15 PDT 2015


Hi Eliot,

The grammar allows you to use both "[]" and "array{}" to create an empty 
array:

http://www.w3.org/TR/xpath-31/#id-arrays

John

On 16/07/2015 10:11, Eliot Kimber wrote:
> I'm using an array to pass values down a recursive function call chain.
>
> I noticed that, at least with BaseX but also based on my reading of the
> 3.1 spec, that you cannot construct an empty array.
>
> Is this correct?
>
> If so, how can one have a function where the array is effectively empty?
> E.g., given this function declaration:
>
> declare ns:myFunc($arg1 as xs:string+, $arg2 as array(*)?, $arg3 as
> xs:string) {};
>
> How can I satisfy the second argument when in fact I have no items for the
> array?
>
> I tried passing in () but BaseX says "Cannot cast empty-sequence() to
> array(*)", which makes sense.
>
> I would expect array{} to be a valid constructor, such that
>
> array:size(array{}) = 0 is true but that does not appear to be allowed for
> in the 3.1 spec.
>
> What have I missed?
>
> Thanks,
>
> Eliot
>
> ----
> Eliot Kimber, Owner
> Contrext, LLC
> http://contrext.com
>
>
>
> _______________________________________________
> talk at x-query.com
> http://x-query.com/mailman/listinfo/talk


-- 
John Snelson, Lead Engineer                    http://twitter.com/jpcs
MarkLogic Corporation                         http://www.marklogic.com



More information about the talk mailing list