Det finns situationer där en person kanske inte vill ha välformad XML - den jag (och kanske den ursprungliga affischen) stötte på använde For XML Path-tekniken för att returnera en enda fältlista med "underordnade" objekt via en rekursiv fråga. Mer information om denna teknik finns här (specifikt i avsnittet "The blackbox XML-metoder"):Sammanfoga radvärden i Transact-SQL
För min situation var det en verklig besvikelse att se "H&E" (en patologisk fläck) förvandlad till "välformad XML". Lyckligtvis hittade jag en lösning... följande sida hjälpte mig att lösa det här problemet relativt enkelt och utan att behöva omarbeta min rekursiva fråga eller lägga till ytterligare analys på presentationsnivå (för detta såväl som för andra/kommande situationer där mitt barn -rows datafält innehåller reserverade XML-tecken):Hantera specialtecken med FOR XML PATH
EDIT:kod nedan från det refererade blogginlägget.
select
stuff(
(select ', <' + name + '>'
from sys.databases
where database_id > 4
order by name
for xml path(''), root('MyString'), type
).value('/MyString[1]','varchar(max)')
, 1, 2, '') as namelist;