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?