for $a in ./mondial//text()[.='Barcelona'] let $atts:=(for $i in $a return $i/ancestor-or-self::*/attribute(event)) return <match>{ distinct-values(for $att in $atts return string($att)) }</match>
for $a in ./mondial//text()[.='UN'] let $atts:=(for $i in $a return $i/ancestor-or-self::*/attribute(event)) return <match>{ distinct-values(for $att in $atts return string($att))}</match>
for $a in ./mondial//text()[.='Kilimanjaro'] let $atts:=(for $i in $a return $i/ancestor-or-self::*/attribute(event)) return <match>{ distinct-values(for $att in $atts return string($att))}</match>
for $a in ./mondial//name[text()='Barcelona'] let $atts:=(for $i in $a return $i/ancestor-or-self::*/attribute(event)) return <match>{distinct-values(for $att in $atts return string($att))}</match>
for $a in ./mondial/organization//text()[.='UN'] let $atts:=(for $i in $a return $i/ancestor-or-self::*/attribute(event)) return <match>{distinct-values(for $att in $atts return string($att))}</match>
for $a in ./mondial/mountain//text()[.='Kilimanjaro'] let $atts:=(for $i in $a return $i/ancestor-or-self::*/attribute(event)) return <match>{distinct-values(for $att in $atts return string($att))}</match>
for $a in ./mondial/country/attpopulation [number(text())>50000000] let $atts:=(for $i in $a return $i/ancestor-or-self::*/attribute(event)) return <match>{distinct-values(for $att in $atts return string($att))}</match>
for $a in ./mondial/country for $b in $a//text()[.='Calgary'] for $c in $a//text()[.='Alberta'] let $feuilles:=($b,$c) let $atts:=(for $i in $feuilles return $i/ancestor-or-self::*/attribute(event)) return <match>{ distinct-values(for $att in $atts return string($att)) }</match>
for $a in ./mondial/mountain/attheight [.//number(text())>5000] let $atts:=(for $i in $a return $i/ancestor-or-self::*/attribute(event)) return <match>{ for $att in $atts return string($att) }</match>
for $a in ./mondial//province for $b in $a//text() [.='Berkshire'] for $c in $a//population [number(text())>100000.0] let  $feuilles:=($b,$c) let $atts:=(for $i in $feuilles return $i/ancestor-or-self::*/attribute(event)) return <match>{ distinct-values(for $att in $atts return string($att)) }</match>
for $a in ./mondial/country for $b in $a//text() [.='United Kingdom'] for $c in  $a/city//*[number(text())>100000.0] let  $feuilles:=($b,$c) let $atts:=(for $i in $feuilles return $i/ancestor-or-self::*/attribute(event)) return <match>{ distinct-values(for $att in $atts return string($att)) }</match>
for $a in ./*/country//city//atttype [text()='sea'] let $atts:=(for $i in $a return $i/ancestor-or-self::*/attribute(event)) return <match>{ distinct-values(for $att in $atts return string($att))}</match>
for $a in ./mondial/country for $b in $a/*[text()='Muslim'] for $c in $a/population [number(text())>10000000.0] let  $feuilles:=($b,$c) let $atts:=(for $i in $feuilles return $i/ancestor-or-self::*/attribute(event)) return <match>{ distinct-values(for $att in $atts return string($att)) }</match>
for $a in ./mondial/country for $b in $a//text() [.='Indonesia'] for $c in $a//text() [.='Muslim'] for $d in $a/attpopulation [number(text())>10000000] let  $feuilles:=($b,$c,$d) let $atts:=(for $i in $feuilles return $i/ancestor-or-self::*/attribute(event)) return <match>{ distinct-values(for $att in $atts return string($att)) }</match>
for $a in ./mondial/*/province/city for $b in $a//text()[.='Barcelona'] for $c in $a//* [number(text())>1000000.0] let  $feuilles:=($b,$c) let $atts:=(for $i in $feuilles return $i/ancestor-or-self::*/attribute(event)) return <match>{ distinct-values(for $att in $atts return string($att)) }</match>

for $x1 in ./mondial/*/province/city  for $x2 in $x1/.//text() for $x3 in $x2/. for $x4 in $x2/'Barcelona' for $x5 in   for $x6 in $x5/.//*  for $x7 in $x6/number(text())>1000000.0 let $leaves:=($x3,$x4,$x7) let $atts:=(for $i in $leaves return $i/ancestor-or-self::*/attribute(event)) where $x3=$x4 return text{distinct-values(for $att in $atts return string($att))}

./mondial/*/province/city [.//text()[.='Barcelona']] [.//* [number(text())>1000000.0]]
