我使用XSLT作爲各種組件的「代碼生成器」,包括其他XSLT。例如,我有一個查詢爲表生成MSSQL sys.columns行的XML輸出,並且希望生成一個XSLT,其中包含一個包含每行的列的表。Xslt生成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/'.
任何建議上一個變通?
由於提前,
埃裏克
正是我所需要的;非常感謝! –
@EricPatrick:不客氣。 –