Subject:Relational Database Hierarchical (flat) table to XML Tree Mapping. Author:Minollo I. Date:06 Jun 2007 02:13 PM
I guess what you want to do is to convert that table into a hierarchical XML; you should be able to do something like this (using the proper table information in XQuery):
declare function local:getChildren($node as element(*,xs:anyType))
{
for $child in collection("pubs.dbo.hierarchy")/hierarchy[number(parent_id) = number($node/id)]
return
<item id="{$child/id}">
<value>{$child/description/text()}</value>
{local:getChildren($child)}
</item>
};
<items> {
for $roots in collection("pubs.dbo.hierarchy")/hierarchy[not(parent_id)]
return
<item>
<value>{$roots/description/text()}</value>
{local:getChildren($roots)}
</item>
} </items>