Advertisement
Guest User

Untitled

a guest
Jan 31st, 2015
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. declare function local:maxconsecutive($partite as element()*, $squadra as xs:string, $i as xs:integer, $max as xs:integer, $tot as xs:integer) as xs:integer {
  2. (if ($i = count($partite)+1) then ( local:max($max, $tot))
  3. else (
  4. if (local:vinta($partite[$i], $squadra))
  5. then (local:maxconsecutive($partite, $squadra, $i+1, $max+1, $tot))
  6. else (local:maxconsecutive($partite, $squadra, $i+1, 0, local:max($max, $tot)))
  7. ))
  8. };
  9.  
  10. declare function local:max($a as xs:integer, $b as xs:integer) as xs:integer {
  11. (if ($a >= $b) then ($a) else ($b))
  12. };
  13.  
  14. declare function local:vinta($partita, $squadra) as xs:boolean {
  15. (($partita/squadracasa = $squadra and $partita/goalcasa > $partita/goalospite) or
  16. ($partita/squadraospite = $squadra and $partita/goalcasa < $partita/goalospite))
  17. };
  18.  
  19. let $partite := doc("partite.xml")//partita
  20. return local:maxconsecutive($partite, string("roma"), 1, 0, 0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement