Thanks, this seems a problem in the XCC binary serialization. This really needs improvement if XCC cant serialize arbitrary XDM values.
Unfortunately I can't use your suggestion as my use case is to run other-peoples-code ... so I cant require them to add extra stuff to it. Well ... except that I'm telling them to run fn:string() on attributes, but I'd like to handle *any XDM Type* returned from an XQuery. FYI my use case is the marklogic extension to xmlsh http://www.xmlsh.org/MarkLogic In particular the query command where I dont have any ability to enforce special xquery code. Thanks for your reply. As a side note I'm slowly working on a proposal for XDM serialization which overlaps some of this issue... its a general case that many xquery processors dont actually handle XDM output like they should. http://xml.calldei.com/XDMSerialize -David ---------------------------------------- David A. Lee Senior Principal Software Engineer Epocrates, Inc. [email protected] <mailto:[email protected]> 812-482-5224 From: [email protected] [mailto:[email protected]] On Behalf Of Sam Neth Sent: Monday, March 01, 2010 2:59 PM To: General Mark Logic Developer Discussion Subject: Re: [MarkLogic Dev General] Bug in XCC - lone attributesreportingas elements. Unfortunately the result sequence sent by the server simply doesn't contain this information; you might consider obtaining the type yourself, using the xdmp:node-kind builtin, and including that information in the result, possibly by wrapping a special element around attribute nodes: xdmp:node-kind($x) = "attribute") then <attribute-node>{ $x }</attribute-node> else $x This also has the benefit of making the attribute name available on the client. On Mar 1, 2010, at 11:19 AM, Lee, David wrote: Thanks ! In my use case, any kind of method to accurately determine the Xdm type of results would be good enough, even if full attribute (XdmAttribute) support wasnt implemented. I I could only 'know' an item was an attribute then I can serialize it with the current implementation (I've tested ResultItem.writeTo( outputStream ) and it writes the value of the attribute just fine). So just knowing the XDM type would be sufficient for me. Thanks for noting this issue. -David Lee From: [email protected] [mailto:[email protected]] On Behalf Of Sam Neth Sent: Monday, March 01, 2010 1:51 PM To: General Mark Logic Developer Discussion Subject: Re: [MarkLogic Dev General] Bug in XCC - lone attributes reportingas elements. This would be the appropriate place to report a bug or RFE, assuming no support contract is in place. In this case, the behavior you describe is a known limitation of XCC which we are already tracking as an RFE. You may consider your interest noted. On Mar 1, 2010, at 5:46 AM, Lee, David wrote: Whats the best way to report this bug ? If I run an ad-hoc query in XCC which returns a single attribute, for example : attribute {"foo"} {"bar"} The resulting item in XCC is reporting itself as an element, but (of course) wont serialize. I would like to be able to detect lone attributes for special handling but I cant because XCC is incorrectly representing them as Elements Example code fragment: while (rs.hasNext()) { ResultItem rsItem = rs.next(); ItemType type = rsItem.getItemType(); XdmItem item = rsItem.getItem(); if( (type.isNode() && item instanceof XdmAttribute) ) // FAILS TEST ... item is an ElementImpl not an XdmAttribute --- item ElementImpl (id=62) stream null stringVal "bar" (id=73) type NodeType (id=58) ---------------------------------------- David A. Lee Senior Principal Software Engineer Epocrates, Inc. [email protected] 812-482-5224 _______________________________________________ General mailing list [email protected] http://xqzone.com/mailman/listinfo/general _______________________________________________ General mailing list [email protected] http://xqzone.com/mailman/listinfo/general
_______________________________________________ General mailing list [email protected] http://xqzone.com/mailman/listinfo/general
