Hi Ken, Thanks for your suggestions. This help us a lot.
Regards, Mano. ________________________________ From: G. Ken Holman <[email protected]> To: General MarkLogic Developer Discussion <[email protected]> Sent: Fri, 4 February, 2011 6:41:47 PM Subject: Re: [MarkLogic Dev General] Orderby clause - case sensitive At 2011-02-04 17:51 +0530, mano m wrote: >I would like to sort a squence of items in alphabetical order with >high precedence to capital case letters. > >For example > >let $sequence := ("PROFESSIONAL", "Technical", "Biographies", >"Literature" , "TRAVEL", "HISTORY", "Health", "Law", "Photography" >, "BUSINESS") > >for $category in $sequence >order by $category ascending >return <category>{$category}</category> > >Output: > > <category>Biographies</category> > <category>BUSINESS</category> > <category>Health</category> > <category>HISTORY</category> > <category>Law</category> > <category>Literature</category> > <category>Photography</category> > <category>PROFESSIONAL</category> > <category>Technical</category> > <category>TRAVEL</category> This output surprises me, though perhaps you are running "1.0-ml" and not "1.0" ... you don't say which. You are not specifying the collation URI and so in XQuery 1.0 the collation order should be Unicode code-point order, which has upper-case first. > Expected output : Order in ascendingwith hight precedence to > capital case. i.e "BUSINESS" should get listed before "Biographies" > , similarly "HISTORY" should get listed before "Health" > > <category>BUSINESS</category> > <category>Biographies</category> > <category>HISTORY</category> > <category>Health</category> > <category>Law</category> > <category>Literature</category> > <category>PROFESSIONAL</category> > <category>Photography</category> > <category>TRAVEL</category> > <category>Technical</category> > > >Please let me know is there any possiblilty to sort in this >way.Thanks in Advance. Here I have your example using another processor: ~/t/ftemp $ cat mano.xq let $sequence := ("PROFESSIONAL", "Technical", "Biographies", "Literature" , "TRAVEL", "HISTORY", "Health", "Law", "Photography" , "BUSINESS") for $category in $sequence order by $category ascending return (<category>{$category}</category>," ")~/t/ftemp $ xquery mano.xq <?xml version="1.0" encoding="UTF-8"?><category>BUSINESS</category> <category>Biographies</category> <category>HISTORY</category> <category>Health</category> <category>Law</category> <category>Literature</category> <category>PROFESSIONAL</category> <category>Photography</category> <category>TRAVEL</category> <category>Technical</category> ~/t/ftemp $ What I suggest you do is explicitly specify what is supposed to be the default: ~/t/ftemp $ cat mano.xq let $sequence := ("PROFESSIONAL", "Technical", "Biographies", "Literature" , "TRAVEL", "HISTORY", "Health", "Law", "Photography" , "BUSINESS") for $category in $sequence order by $category ascending collation "http://www.w3.org/2005/xpath-functions/collation/codepoint" return (<category>{$category}</category>," ")~/t/ftemp $ xquery mano.xq <?xml version="1.0" encoding="UTF-8"?><category>BUSINESS</category> <category>Biographies</category> <category>HISTORY</category> <category>Health</category> <category>Law</category> <category>Literature</category> <category>PROFESSIONAL</category> <category>Photography</category> <category>TRAVEL</category> <category>Technical</category> ~/t/ftemp $ In the above it produces the same result. In your situation it may give you what you want. One caveat is, though, that this destroys language-based sorting, so accented characters will not come out in the correct order. In XSLT your requirement is easily met with case-order="upper-first" which maintains any language-based sort yet addresses your need for upper-case letters first. I hope this helps. . . . . . . . . . . . Ken -- Contact us for world-wide XML consulting & instructor-led training Crane Softwrights Ltd. http://www.CraneSoftwrights.com/q/ G. Ken Holman mailto:[email protected] Legal business disclaimers: http://www.CraneSoftwrights.com/legal _______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
