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