Hi Geert, Yes, now it works. I removed the namespace from the attribute and works! Thank you very much!
Thanks, Ling Geert Josten wrote: > Hi Ling, > > There is something peculiar with attributes and namespaces. You must to > prefix attributes to make them take part of a namespace. No prefix on > attributes means by definition no namespace. This only applies to attributes. > > So, what happens if you start using a prefix in your code? ;-) > > Kind regards, > Geert > > > > drs. G.P.H. (Geert) Josten > Consultant > > > Daidalos BV > Hoekeindsehof 1-4 > 2665 JZ Bleiswijk > > T +31 (0)10 850 1200 > F +31 (0)10 850 1199 > > mailto:[email protected] > http://www.daidalos.nl/ > > KvK 27164984 > > P Please consider the environment before printing this mail. > De informatie - verzonden in of met dit e-mailbericht - is afkomstig van > Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit > bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit > bericht kunnen geen rechten worden ontleend. > >> From: [email protected] >> [mailto:[email protected]] On Behalf Of >> Ling Ling >> Sent: donderdag 6 mei 2010 17:58 >> To: General Mark Logic Developer Discussion >> Subject: Re: [MarkLogic Dev General] attribute range index >> >> Hi Danny, >> >> Yes, I have default namespace declared. I tried the query in cq, >> >> xquery version "1.0-ml"; >> (: buffer 2 :) >> declare namespace html = "http://www.w3.org/1999/xhtml"; >> declare default element namespace "http://tpox-benchmark.com/custacc"; >> >> xdmp:query-trace(true()),( >> for $cust in doc() >> where $cust/Customer/@id = 1002 >> return $cust >> ) >> >> I don't know why. Thank you very much! >> >> Ling >> >> >> Danny Sokolsky wrote: >>> What namespace is your element and attribute in, and what >> namespace is your range index in? It looks (according to the >> query trace) like both the element and the attribute are in >> the http://tpox-benchmark.com/custacc namespace, but the >> first query is requesting the id attribute in no namespace. >> Maybe somewhere here lies the clue? Do you have any default >> namespaces in play here? >>> -Danny >>> >>> -----Original Message----- >>> From: [email protected] >>> [mailto:[email protected]] On Behalf Of Ling >>> Ling >>> Sent: Wednesday, May 05, 2010 3:53 PM >>> To: [email protected] >>> Subject: [MarkLogic Dev General] attribute range index >>> >>> Hello, >>> >>> I have a question about query and attribute range query I have a >>> customer xml file stored in database and an attribute range >> index on >>> Customer id, if my query is like: >>> >>> for $cust in doc() >>> where $cust/Customer/@id = 1002 >>> return $cust >>> >>> The range index is not used and the trace file is here: >>> >>> Info: benchHttp: line 7: xdmp:eval("xquery version >>> "1.0-ml"; (: buffer 2 :) &...", (), <options >>> >> xmlns="xdmp:eval"><root>benchHttp</root><isolation>different-transacti >>> on</isolatio...</options>) >>> Info: benchHttp: line 7: Analyzing path for $cust: fn:doc() >>> Info: benchHttp: line 7: Step 1 is searchable: fn:doc() >>> Info: benchHttp: line 7: Path is fully searchable. >>> Info: benchHttp: line 7: Gathering constraints. >>> Info: benchHttp: line 7: Step 1 contributed 1 constraint: fn:doc() >>> Info: benchHttp: line 8: Comparison contributed hash value >> constraint: >>> Customer/@id = 1002 >>> Info: benchHttp: line 7: Where clause contributed 2 constraints for >>> $cust: $cust/Customer/@id = 1002 >>> Info: benchHttp: line 7: Executing search. >>> Info: benchHttp: line 7: Selected 1 fragment to filter >>> >>> If I wrote query like this: >>> >>> cts:search(doc()/Customer, >>> cts:element-attribute-range-query(xs:QName("Customer"), >>> xs:QName("id"), "=" ,1002)) >>> >>> xdmp:query-trace(true()),( >>> cts:search(doc()/Customer, >>> cts:element-attribute-range-query(xs:QName("Customer"), >>> xs:QName("id"), "=" ,1002)) >>> ) >>> >>> The index is used but no results returned. Here is the trace file: >>> >>> line 7: xdmp:eval("xquery version "1.0-ml"; (: >>> buffer >>> 2 :) &...", (), <options >>> >> xmlns="xdmp:eval"><root>benchHttp</root><isolation>different-transacti >>> on</isolatio...</options>) line 7: Analyzing path for search: >>> fn:doc()/Customer line 7: Step 1 is searchable: fn:doc() >> line 7: Step >>> 2 is searchable: Customer line 7: Path is fully searchable. >>> line 7: Gathering constraints. >>> line 7: Step 2 test contributed 1 constraint: Customer line 7: >>> Comparison contributed int range value constraint: >> Customer/@id = 1002 >>> line 7: Search query contributed 1 constraint: >>> >> cts:element-attribute-range-query(fn:QName("http://tpox-benchmark.com/ >>> custacc", "Customer"), >> fn:QName("http://tpox-benchmark.com/custacc", >>> "id"), "=", 1002, (), 1) line 7: Executing search. >>> line 7: Selected 0 fragments to filter >>> >>> Could you show me the reason? Thank you very much! >>> >>> Regards, >>> Ling >>> _______________________________________________ >>> General mailing list >>> [email protected] >>> http://developer.marklogic.com/mailman/listinfo/general >>> _______________________________________________ >>> General mailing list >>> [email protected] >>> http://developer.marklogic.com/mailman/listinfo/general >>> >> _______________________________________________ >> General mailing list >> [email protected] >> http://developer.marklogic.com/mailman/listinfo/general >> > _______________________________________________ > General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general > _______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
