Я использую XSLT в качестве «генератора кода» для различных компонентов, включая другие XSLT.Например, у меня есть запрос, который производит вывод XML строк MSSQL sys.columns для таблицы, и я хочу создать XSLT, который включает в себя таблицу со столбцом для каждой строки.
Поэтому я хочу произвестиследующий XSLT:
<xsl:stylesheet version="1.0" xmlns:format="urn:qbo3-formatting" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:stylesheet>
Я генерирую XSLT выше с помощью чего-то вроде этого «генератора» XSLT:
<xsl:element name="xsl:stylesheet">
<xsl:attribute name="version">1.0</xsl:attribute>
<xsl:attribute name="format" namespace="http://www.w3.org/XML/1998/namespace" >urn:qbo3-formatting</xsl:attribute>
...
</xsl:element>
Проблема в том, что этот XSLT «генератора» производит:
<xsl:stylesheet version="1.0" xml:format="urn:qbo3-formatting" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:stylesheet>
Обратите внимание на xml:format
вместо требуемого xmlns:format
.
В соответствии с W3C, xmlns зарезервировано и связано с http://www.w3.org/2000/xmlns/'. Если я пытаюсь создать атрибут формата вышеиспользуя это пространство имен, я получаю сообщение об ошибке:
Elements and attributes cannot belong to the reserved namespace 'http://www.w3.org/2000/xmlns/'.
Есть предложения по обходу?
Заранее спасибо,
Эрик