declare function local:split($x as node()) as node() {
let $name := $x/name/text() return
let $child := for $p in $x/children/person return local:split($p) return
if ($x/@gender = "M") then
{$child/self::man}
{$child/self::woman}
else
{$child/self::man}
{$child/self::woman}
}
;
{for $p in input()/doc/person return local:split($p)}