С помощью запроса, подобного следующему:
SELECT
dbo.emp.FName ,
dbo.emp.LName ,
(SELECT
ID AS '@ID',
TraitDesc
FROM dbo.Trait t
WHERE t.EmpID = emp.ID
FOR XML PATH('Trait'), TYPE) AS 'Traits',
dbo.emp.Phone
FROM
emp
FOR XML PATH('Emp'), ROOT('Tests')
, вы можете получить вывод, подобный следующему:
<Tests>
<Emp>
<FName>Good</FName>
<LName>Boys</LName>
<Traits>
<Trait ID="1">
<TraitDesc>Trait #1</TraitDesc>
</Trait>
<Trait ID="2">
<TraitDesc>Trait #2</TraitDesc>
</Trait>
<Trait ID="3">
<TraitDesc>Trait #3</TraitDesc>
</Trait>
</Traits>
<Phone>897-122-222</Phone>
</Emp>
</Tests>
Что вы, вероятно, не можете сделать (или, по крайней мере, без грязных хаков и грязногокод) имеет различные <Trait1>, <Trait2>, <Trait3>
теги XML для каждого дочернего узла.