Há situações em que uma pessoa pode não querer um XML bem formado - aquele que eu (e talvez o pôster original) encontrei estava usando a técnica For XML Path para retornar uma lista de campo único de itens 'filhos' por meio de uma consulta recursiva. Mais informações sobre essa técnica estão aqui (especificamente na seção 'Os métodos XML da caixa preta'):Concatenando valores de linha no Transact-SQL
Para a minha situação, ver 'H&E' (uma mancha de patologia) transformado em 'XML bem formado' foi uma verdadeira decepção. Felizmente, encontrei uma solução... a página a seguir me ajudou a resolver esse problema com relativa facilidade e sem ter que rearquitetar minha consulta recursiva ou adicionar análise adicional no nível da apresentação (para isso, bem como para outras situações/futuras em que meu filho campos de dados -rows contêm caracteres XML reservados):Manuseando caracteres especiais com FOR XML PATH
EDIT:código abaixo da postagem do blog referenciada.
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;