SQL Server PARA RUTA XML: establezca la declaración xml o la instrucción de procesamiento "xml-stylesheet" en la parte superior
Quiero establecer una instrucción de procesamiento para incluir una hoja de estilo encima de un XML:
El mismo problema fue con la declaración xml (p. Ej.<?xml version="1.0" encoding="utf-8"?>
)
Resultado deseado:
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<TestPath>
<Test>Test</Test>
<SomeMore>SomeMore</SomeMore>
</TestPath>
Mi investigación me trajo aprueba de nodo sintaxis yprocessing-instruction()
.
Esta
SELECT 'type="text/xsl" href="stylesheet.xsl"' AS [processing-instruction(xml-stylesheet)]
,'Test' AS Test
,'SomeMore' AS SomeMore
FOR XML PATH('TestPath')
produce esto:
<TestPath>
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<Test>Test</Test>
<SomeMore>SomeMore</SomeMore>
</TestPath>
Todas las sugerencias que encontré me dicen que convierta el XML a VARCHAR, lo concatene "manualmente" y vuelva a convertirlo a XML. Pero esto es, ¿cómo decirlo, feo?
Esto funciona obviamente:
SELECT CAST(
'<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<TestPath>
<Test>Test</Test>
<SomeMore>SomeMore</SomeMore>
</TestPath>' AS XML);
¿Hay alguna posibilidad de resolver esto?