Я хочу установить инструкцию обработки, чтобы включить таблицу стилей поверх XML:
Та же проблема была с объявлением xml (например, <?xml version="1.0" encoding="utf-8"?>
)
Желаемый результат:
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<TestPath>
<Test>Test</Test>
<SomeMore>SomeMore</SomeMore>
</TestPath>
Мои исследования привели меня к синтаксису node test и processing-instruction()
.
Этот
SELECT 'type="text/xsl" href="stylesheet.xsl"' AS [processing-instruction(xml-stylesheet)]
,'Test' AS Test
,'SomeMore' AS SomeMore
FOR XML PATH('TestPath')
производит это:
<TestPath>
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<Test>Test</Test>
<SomeMore>SomeMore</SomeMore>
</TestPath>
Все подсказки, которые я нашел, говорят мне преобразовать XML в VARCHAR, объединить его «вручную» и преобразовать обратно в XML. Но это - как сказать - некрасиво?
Это работает очевидно:
SELECT CAST(
'<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<TestPath>
<Test>Test</Test>
<SomeMore>SomeMore</SomeMore>
</TestPath>' AS XML);
Есть ли шанс решить это?