SQL Server PARA XML PATH: Defina a declaração xml ou a instrução de processamento “xml-stylesheet” na parte superior

Quero definir uma instrução de processamento para incluir uma folha de estilo em cima de um XML:

O mesmo problema ocorreu com a declaração xml (por exemplo,<?xml version="1.0" encoding="utf-8"?>)

Resultado desejado:

<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<TestPath>
  <Test>Test</Test>
  <SomeMore>SomeMore</SomeMore>
</TestPath>

Minha pesquisa me levou ateste de nó sintaxe eprocessing-instruction().

este

SELECT 'type="text/xsl" href="stylesheet.xsl"' AS [processing-instruction(xml-stylesheet)]
      ,'Test' AS Test
      ,'SomeMore' AS SomeMore
FOR XML PATH('TestPath')

produz o seguinte:

<TestPath>
  <?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
  <Test>Test</Test>
  <SomeMore>SomeMore</SomeMore>
</TestPath>

Todas as dicas que encontrei me dizem para converter o XML em VARCHAR, concatená-lo "manualmente" e convertê-lo novamente em XML. Mas isso é - como dizer - feio?

Isso funciona obviamente:

SELECT CAST(
'<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<TestPath>
  <Test>Test</Test>
  <SomeMore>SomeMore</SomeMore>
</TestPath>' AS XML);

Existe uma chance de resolver isso?

questionAnswers(2)

yourAnswerToTheQuestion