<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6001.18203" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=217331823-08032009><FONT face=Arial 
color=#0000ff size=2>Is "someStr" the same element name throughout? If so, it 
looks like this:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=217331823-08032009><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=217331823-08032009><FONT face=Arial 
color=#0000ff size=2>declare function local:depth($e as element(*)) as 
xs:integer {</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=217331823-08032009><FONT face=Arial 
color=#0000ff size=2>&nbsp; 
count($e/ancestor::*[node-name(.)=node-name($e)]</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=217331823-08032009><FONT face=Arial 
color=#0000ff size=2>};</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=217331823-08032009><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=217331823-08032009><FONT face=Arial 
color=#0000ff size=2>declare function local:histogram($root as 
element(mainNode), $name as xs:QName) as element(count)*</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=217331823-08032009><FONT face=Arial 
color=#0000ff size=2>&nbsp; for $d in 
distinct-values(mainNode//*[node-name()=$s]/local:depth(.))&nbsp;</FONT></SPAN></DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT size=2><FONT color=#0000ff><SPAN 
class=217331823-08032009>&nbsp; return&nbsp;&lt;count element="{$name}" 
depth="{$d} 
count="{count(mainNode//*[node-name()=$name][local:depth(.)=$d]))</SPAN></FONT></FONT></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT size=2><FONT color=#0000ff><SPAN 
class=217331823-08032009>}</SPAN></FONT></FONT></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT size=2><FONT color=#0000ff><SPAN 
class=217331823-08032009></SPAN></FONT></FONT></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT size=2><FONT color=#0000ff><SPAN 
class=217331823-08032009>for $n in (xs:QName("", "someStr"), xs:QName("", 
"someOtherStr"), .....)</SPAN></FONT></FONT></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT size=2><FONT color=#0000ff><SPAN 
class=217331823-08032009>return local:histogram(mainNode, 
$n)</SPAN></FONT></FONT></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT size=2><FONT color=#0000ff><SPAN 
class=217331823-08032009></SPAN></FONT></FONT></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT size=2><FONT color=#0000ff><SPAN 
class=217331823-08032009>Michael Kay</SPAN></FONT></FONT></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT size=2><FONT color=#0000ff><SPAN 
class=217331823-08032009><A 
href="http://www.saxonica.com/">http://www.saxonica.com/</A></SPAN><SPAN 
class=217331823-08032009>&nbsp; </SPAN></FONT></FONT></FONT></DIV><BR>
<BLOCKQUOTE 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> talk-bounces@x-query.com 
  [mailto:talk-bounces@x-query.com] <B>On Behalf Of 
  </B>Michalmas<BR><B>Sent:</B> 08 March 2009 20:29<BR><B>To:</B> 
  talk@x-query.com<BR><B>Subject:</B> [xquery-talk] xquery: iteration 
  simulation<BR></FONT><BR></DIV>
  <DIV></DIV>Hello guys,<BR><BR>Can you help me with the following 
  problem:<BR><BR>I have some XML.<BR><BR>Now, i need to query it. But what i 
  need to do, is to make queries of the 
  form:<BR><BR>count(mainNode//someStr)<BR>count(mainNode//someStr/someStr)<BR>(...)<BR>count(mainNode//someStr/someStr/someStr/someStr/someStr/someStr/someStr/someStr)<BR><BR>The 
  deep level of the last query may be even around 50 (so, 50 queries).&nbsp; 
  <BR>Such set of queries will be repeated for about 100 keywords (like 
  someStr). In total, that gives about 500 queries to create.<BR><BR>Is is 
  posible to write iteration in XQuery for that. Or pass it as a 
  function?<BR><BR>Thanks,<BR>M.<BR><BR></BLOCKQUOTE></BODY></HTML>