On Sun, Jul 11, 2010 at 11:34 PM, Godmar Back <
godmar@gmail.com> wrote:
>
> To follow up on my previous email, we observe the following.
> We run a query:
> declare namespace libx='
http://libx.org/xml/libx2';
> declare namespace atom='
http://www.w3.org/2005/Atom';
> declare variable $entry as xs:anyAtomicType external;
> declare variable $id as xs:string external;
> declare variable $feed as xs:anyAtomicType := doc('libx2_feed')/atom:feed;
> delete node $feed/atom:entry[atom:id=$id],
> (: INVESTIGATE: this results in wrong xmlns entries :)
> insert node $entry into $feed
> whereby we bind 'entry' to a DOM node using the org.w3c. Implementation.
> When we print the about-to-be-inserted entry from Java code prior to
> insertion, we see:
> <?xml version="1.0" encoding="UTF-8"?><entry
> xmlns="
http://www.w3.org/2005/Atom" xmlns:libx="
http://libx.org/xml/libx2">
> <id>3</id>
> (rest omitted)
> If we run a database dump via the org.basex.BaseX program (query:
> doc('libx2_feed')) right after the update, we see this:
> <entry xmlns="" xmlns="
http://www.w3.org/2005/Atom"
> xmlns:libx="
http://libx.org/xml/libx2">
> <id>3</id>
> <title> (rest omitted)
> Other than the spurious 'xmlns=""', the rest looks ok.
> It seems to me that BaseX should never allow two default namespace prefixes
> for any element.
> - Godmar