Вот xquery, который работает с этими XML-файлами.
<results>
{
for $depen in doc("../company/dependent.xml")//dependent
where $depen/dependent_name=*
return
<row>
<dependent name="{$depen/dependent_name}"/>
{
for $emp in doc("../company/employee.xml")//employee[ssn = $depen/essn ]
return
<employee>
<emp fname="{$emp/fname}" lname="{$emp/lname}"/>
{
for $man in doc("../company/employee.xml")//employee[ssn = $emp/superssn ]
return
<manager>
<mgr fname="{$man/fname}" lname="{$man/lname}"/>
</manager>
}
</employee>
}
</row>
}
</results>
Он производит вывод ниже.
<results>
<row>
<dependent name="Alice"/>
<employee>
<emp fname="John" lname="Smith"/>
<manager>
<mgr fname="Franklin" lname="Wong"/>
</manager>
</employee>
</row>
<row>
<dependent name="Elizabeth"/>
<employee>
<emp fname="John" lname="Smith"/>
<manager>
<mgr fname="Franklin" lname="Wong"/>
</manager>
</employee>
</row>
<row>
<dependent name="Michael"/>
<employee>
<emp fname="John" lname="Smith"/>
<manager>
<mgr fname="Franklin" lname="Wong"/>
</manager>
</employee>
</row>
<row>
<dependent name="Alice"/>
<employee>
<emp fname="Franklin" lname="Wong"/>
<manager>
<mgr fname="James" lname="Borg"/>
</manager>
</employee>
</row>
<row>
<dependent name="Joy"/>
<employee>
<emp fname="Franklin" lname="Wong"/>
<manager>
<mgr fname="James" lname="Borg"/>
</manager>
</employee>
</row>
<row>
<dependent name="Theodore"/>
<employee>
<emp fname="Franklin" lname="Wong"/>
<manager>
<mgr fname="James" lname="Borg"/>
</manager>
</employee>
</row>
<row>
<dependent name="Abner"/>
<employee>
<emp fname="Jennifer" lname="Wallace"/>
<manager>
<mgr fname="James" lname="Borg"/>
</manager>
</employee>
</row>
</results>
Как удалить теги сотрудника и менеджера в конечном результате, чтобы они выглядели примерно так, как показано ниже.
<results>
<row>
<dependent name="Alice"/>
<emp fname="John" lname="Smith"/>
<mgr fname="Franklin" lname="Wong"/>
</row>
<row>
<dependent name="Elizabeth"/>
<emp fname="John" lname="Smith"/>
<mgr fname="Franklin" lname="Wong"/>
</row>
<row>
<dependent name="Michael"/>
<emp fname="John" lname="Smith"/>
<mgr fname="Franklin" lname="Wong"/>
</row>
<row>
<dependent name="Alice"/>
<emp fname="Franklin" lname="Wong"/>
<mgr fname="Franklin" lname="Wong"/>
</row>
<row>
... и т. Д. И т. П.
Мне просто нужно знать, как переписать окончательный xquery, чтобы устранить необходимость в узле сотрудника и менеджера в конечном результате, но при этом сохранить значение.