Rahul,

The fn:doc function takes a URI (a string), but in your second case you are 
passing it whatever is selected by the XPath /documents/book2-which is most 
likely an empty sequence, which is automatically cast to an empty string.  If 
the URI of your document is really /documents/book2, then you need to put that 
inside quotes (either single or double will work), thus:  
fn:doc("/documents/book2")//book/@year=2002.  My guess is that the URI is 
actually /documents/book2.xml, in which case the ".xml" must be included inside 
the quotes:  fn:doc("/documents/book2.xml")//book/@year=2002.

Basically, a URI is a string, not an XPath, so when you enter one manually you 
must enclose it in quotes.

Doug Glidden
Software Engineer
The Boeing Company
[email protected]



  _____

From: [email protected] 
[mailto:[email protected]] On Behalf Of Rahul Saluja
Sent: Monday, October 12, 2009 15:26
To: General Mark Logic Developer Discussion
Subject: [MarkLogic Dev General] Difference between two queries


hello all,

i am in a flux to understand whats the difference between following two queries

fn:doc(xdmp:node-uri( 
cts:search(//books,cts:and-query((cts:element-word-query(xs:QName("title"),"human"
 , ("wildcarded", "case-insensitive")),cts:element-word-query
(
xs:QName("status"),"Unavai* " ,

("wildcarded", "case-insensitive")

)
))
)))//book/@year=2002

returns TRUE

AND

fn:doc(/documents/book2)//book/@year=2002
 Returns FALSE

Argument to first query also returns the uri of document which satisfies the 
search criteria whereas when i pass this Uri by myself it returns false.

please reply.

regards
Rahul Saluja


_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general

Reply via email to