On Wed, Jul 14, 2010 at 12:56 PM, Christian Grün christian.gruen@gmail.comwrote:
So, in order to implement the update problem originally mentioned in this thread, which language/API would I use in BaseX?
- Godmar
I'm not sure what you mean with "implement the update problem"; if you want to bypass the current bug, you might try to create a simple document without namespace (<root/>), and add new nodes as children. The language you're using, or API, doesn't matter (as mentioned before, you'll have most freedom with our own API).
I apologize for being slow here. Suppose I have a Atom feed XML document. I need to replace one entry. The entry contains XML from multiple namespaces. I tried using the XQuery below:
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], *insert node $entry into $feed* * * I ran it via the XQJ binding, setting $entry to a DOM node implementation.
This fails.
What do you suggest I do instead? If I want this to work, should I not be using XQuery? Should I not be using a standard DOM node (using the built-in JDK org.w3c's implementation)? Should I not be using XQJ?
I don't understand what creating a new document <root /> would do to address this problem. Also, it seems to me that replacing a part of a XML document (which is what I'm trying to do) should be a straightforward operation for an XML database.
- Godmar
- Godmar