cómo convertir datos jerárquicos de base de datos a XML usando ASP.net 3.5 y LINQ

Tengo una tabla con estructura jerárquica. Me gusta esto:
texto alternativo http://aspalliance.com/ArticleFiles/822/image002.gif

y los datos de la tabla que se muestran aquí:
texto alternativo http://aspalliance.com/ArticleFiles/822/image003.gif
Esta estrategia me da la capacidad de tener categorías y subcategorías ilimitadas.

Yo uso ASP.net 3.5 SP1 y LINQ y MSSQL Server2005.¿Cómo convertirlo a XML? Puedo hacerlo conObjeto de conjunto de datos y ".GetXML ()"método, pero ¿cómo implementarlo con LINQtoSQL o LINQtoXML? ¿O si hay otra forma más sencilla de hacerlo? ¿Cuál es su sugerencia? ¿La mejor manera? Busqué en la web pero no encontré nada para .net 3.5 featuers.

Actualización de preguntas
Gracias a Murph, pero ahora tengo un nuevo problema. Quiero hacer un archivo Dunamic SiteMap en mi proyecto. Usted sabe que el archivo SiteMap en ASP.net se ve así:

<siteMapNode url="~/Category?cid=0" title="Home"  description="Home">

    <siteMapNode url="~/Category?cid=1" title="a"  description="" />

    <siteMapNode url="~/Category?cid=2" title="b"  description="" >

        <siteMapNode url="~/Category?cid=3" title="c"  description="" />

        <siteMapNode url="~/Category?cid=4" title="d"  description="" />

    </siteMapNode>
</siteMapNode>

El problema principal es que de acuerdo con el Código de Mr.Murph, las subcategorías estarán anidadas en el elemento pero en SiteMap Case no tenemos tales elementos y todas las categorías y subcategorías están anidadas en elementos. ¿Cómo puedo cambiar el código de Mr.Murph para dar forma a este esquema?

Respuestas a la pregunta(2)

Su respuesta a la pregunta