Hi Bridger,
Sorry for letting you wait:
> and it works fine so long at the <relatedItem> is not namespaced.
I tried to further strip down your code. Do you think that the
following examples are equivalent?
WORKS:
let $content := document { <root>BLA</root> }
return <item>{ $content/root }</item>
DOES NOT WORK:
let $content := document { <root>BLA</root> }
return <item xmlns='ns'>{ $content/root }</item>
This is indeed compliant with the spec. The hint may be a bit hidden,
but the spec states that “[…] the default element/type namespace may
be affected by namespace declaration attributes found inside the
element constructor.”.
I agree that the decision is somewhat counterintuitive, because you
would expect that moving your code to a different place will not
change its behavior.
Hope this helps,
Christian
[1] https://www.w3.org/TR/xquery-31/#id-element-constructor
>
> The input documents (in the SSCCE, under sample-data/*/metadata.xml) are not
> in a namespace.
>
> Would someone mind providing some context for the "why" here? I've been
> looking through Priscilla Walmsley's 2nd edition, and the specification, but
> haven't been able to find an answer. I'm almost certainly looking for the
> wrong thing(s).
>
> Any help will be greatly appreciated! Thank you in advance.
> Best,
> Bridger