SQL Server FOR XML PATH: Setzt die XML-Deklaration oder die Verarbeitungsanweisung "xml-stylesheet" oben auf

Ich möchte festlegen, dass eine Verarbeitungsanweisung ein Stylesheet über einem XML-Code enthält:

Das gleiche Problem trat bei der XML-Deklaration auf (z. B.<?xml version="1.0" encoding="utf-8"?>)

Erwünschtes Ergebnis

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

Meine Forschung brachte mich zuknotentest syntax undprocessing-instruction().

Die

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

produziert dies:

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

Alle Hinweise, die ich gefunden habe, weisen mich an, das XML in VARCHAR zu konvertieren, es "manuell" zu verketten und es wieder in XML zu konvertieren. Aber das ist - wie soll man sagen - hässlich?

Das funktioniert natürlich:

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

Gibt es eine Chance, dies zu lösen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage