Why use cts:and-not-query at all? Why use a word-query when you want to match 
values?

You want documents with party1 attribute 'abc'. Ask for them.

let $party1 := "abc"
return cts:search(
  doc(),
  cts:element-attribute-value-query(
    xs:QName("shortname"), xs:QName("party1"), $party1)))

This is more or less equivalent to the XPath:

  /root[shortname/@party1 eq 'abc']

-- Mike

On 21 Aug 2014, at 05:24 , judie pearline <[email protected]> wrote:

> Hi all,
> 
> Here, I am inserting two documents: demo2.xml contains only party1 attribute 
> and demo1.xml contains party1 and party2 attributes.
> Xdmp:document-insert(“demo1.xml”, 
> <root>
>   <shortname party1="abc"/>
>   <shortname party1="efg" party2="pqrs"/>
> </root>
> 
> Xdmp:document-insert(“demo2.xml”, 
> <root>  <shortname party1="abc"/></root>)
> 
> Now, I want documents who has party1 attribute as ‘abc’. So when I apply 
> cts:and-not-query as below, it is giving demo2.xml but not demo1.xml.
> Query: 
> 
> let $party1 := "abc"
> let $party2 := "*"
> return 
> cts:search(fn:doc(),
> cts:and-not-query(
>     
> cts:element-attribute-word-query(xs:QName("shortname"),xs:QName("party1"),$party1,
>             ("case-insensitive","punctuation-insensitive","lang=en"), 1),
>     
> cts:element-attribute-word-query(xs:QName("shortname"),xs:QName("party2"),$party2,
>         
> ("case-insensitive","diacritic-insensitive","punctuation-insensitive","wildcarded","lang=en"),
>  1)
>     )  )
> 
> So, now I want to generate a query that gives documents which contains party1 
> attribute as ‘abc’ no matter what party2 attribute is. And it should return 
> both the documents. Can you some one help us on this?
> 
> Regards,
> Judy
> _______________________________________________
> General mailing list
> [email protected]
> http://developer.marklogic.com/mailman/listinfo/general

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

Reply via email to