0

I have an xsl transformation to generate ASP.NET User controls (ascx).

My XSL is defined this way:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt"
    xmlns:asp="System.Web.UI.WebControls"
    exclude-result-prefixes="asp msxsl"
>
<xsl:output method="xml" indent="no" omit-xml-declaration="yes" />

So from that exclude-result-prefixes I would assume, that everything with the asp prefix should not add the namespace information, but i.e. this template here:

<xsl:template match="Label">
    <asp:Label runat="server" AssociatedControlID="{../@id}">
        <xsl:copy-of select="./text()"/>
    </asp:Label>
</xsl:template>

fed with this xml:

<Label>Label Text</Label>

results in this output:

<asp:Label runat="server" AssociatedControlID="SomeName" xmlns:asp="System.Web.UI.WebControls">Label Text</asp:Label>

So what do I need to do to prevent the xmlns:asp=".." to show up in every single tag in my result?

Sebastian P.R. Gingter
  • 5,955
  • 3
  • 31
  • 73

1 Answers1

1

It is impossible, at least in MSXML, that is because output XML won't be well-formed. You can only output it like text, e.g. using CDATA.

Kirill Polishchuk
  • 54,804
  • 11
  • 122
  • 125
  • That's what I tried until you suggested I should output the asp-tags directly in the other question ( http://stackoverflow.com/questions/7103362/can-i-create-a-template-within-xslt/7103487#7103487 ). – Sebastian P.R. Gingter Aug 18 '11 at 08:47