Re[2]: [xsl] How do you remove namespace?

Subject: Re[2]: [xsl] How do you remove namespace?
From: Arthur Maloney <ArthurM@xxxxxxxxxx>
Date: Mon, 14 Aug 2006 22:58:11 +0100
Hello Florent,

Monday, August 14, 2006, 6:05:41 PM, you wrote:

> Arthur Maloney wrote:

>> I want to get rid of xmlns:asp="System.Web.UI.WebControls"

>   Why?

>   Regards,

> --drkm

I've decided its time for me to get to grips with Xslt 2.0.
I have some code builders in Xslt 1.0 but am starting afresh using
Xslt 2.0, whilst I'm learning.


The purpose of the code builder is to write Microsoft ASP.Net 2.0 code
It all goes through the .Net Framework dlls that compiles it, and build the web
page on the server side.


To me it's syntax is Microsoft proprietary. Below is a typical snippet

NOTE: their are no xlmns in the asp:elements.

PUT SIMPLE: I am trying learn by cloning it, not changing it.

simple snippet e.g.
    <form id="frmMain" runat="server">
      <h4>Select a file to upload:</h4>
        <b>Upload Path</b><br />
        <asp:textbox id="UploadPath" runat="server" text="c:\temp\uploads\" />
        <hr />
        <b>File to upload</b><br />
        <asp:fileupload id="FileUpload1" runat="server" />
        <br><br>
       
       <asp:button id="UploadButton" 
           text="Upload file"
           onclick="UploadButton_Click"
           runat="server">
       </asp:button>    
       
       <hr />
       
       <asp:label id="UploadStatusLabel"
           runat="server">
       </asp:label>      
     </form>

detailed snippet:
<label id="lblEmail"
                class="labelText"
                for="txtEMail"
                title="e-Mail address.">e-Mail</label>
<asp:TextBox id="txtEmail" runat="server"
                CssClass="textBoxText"
                maxLength="100"
                style="width: 50%;"/>
<asp:RegularExpressionValidator id="revEmail" runat="server"
                controlToValidate="txtEmail"
                validationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
                CssClass="alertText"
                display="Dynamic"
                enableClientScript="True"
                errorMessage="A valid e-Mail address is required.">
                <img src="../images/arrow_alert.gif">
</asp:RegularExpressionValidator>
<br />

Also ASP has it own declarations
e.g.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Main.aspx.cs" Inherits="Main" %>



MESSY FULL DETAIL:
Also wondering about <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
 the attribute is now deprecated.

<?xml version="1.0"?>
<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:xdt="http://www.w3.org/2005/04/xpath-datatypes"; 
xmlns:ufn="http://seipas.com/user-defined-functions";
xmlns:asp="System.Web.UI.WebControls"
xmlns="http://www.w3.org/1999/xhtml";
exclude-result-prefixes="xsl xs xdt ufn asp">
        <xsl:strip-space elements="*"/>
        <xsl:variable name="namingConvention" select="doc(resolve-uri('../xml/NamingConvention.xml',document-uri(/)))"/>
        <!-- lib-xhtml.xsl created 2006-08-05T07:58 -->
        <!-- Utility for helping with Asp.Net/Xhtml functionality. -->

        <xsl:variable name="pageName">
                <xsl:value-of select="//page/name"/>
                <xsl:text>.</xsl:text>
                <xsl:value-of select="$namingConvention//class[@name='Page']/@extension"/>
        </xsl:variable>

        <xsl:variable name="pageTitle">
        <xsl:value-of select="//page/@title"/>
        </xsl:variable>
        <xsl:variable name="metaDescription">
        <xsl:value-of select="//page/descriptor"/>
        </xsl:variable>


<xsl:template name="masthead">
<div id="masthead">
<xsl:element name="asp:xyz">
<xsl:attribute name="Id" select="'lblPageTitle'"/>
<xsl:attribute name="runat" select="'server'"/>
</xsl:element>
<asp:Label Id="lblPageTitle" runat="server" />
<asp:Label Id="lblPageCaption" runat="server" />
<asp:Label Id="lblMessage" runat="server" />
</div><!-- end of masthead -->
</xsl:template>

<!-- DocType for page -->
<xsl:template name="pageDoctype">
<xsl:param name="page" as="element()"/>
<xsl:variable name="x" select="/webSite/pages[1]/page[1]/@doctype"/>
<xsl:value-of select="$namingConvention/NamingConvention/docTypes/doctype[@name=$x]"/>
<xsl:call-template name="enter"/>
</xsl:template>

<!-- Builds directive as DirectiveName=value pair types. -->
<xsl:template name="pageDirectives">
        <xsl:param name="page" as="element()"/>
        <xsl:call-template name="encloseDirective">
                <xsl:with-param name="value">
                        <xsl:text>Page </xsl:text>
                        <xsl:text>language=</xsl:text>
                        <xsl:call-template name="encloseDblQuote">
                        <xsl:with-param name="space" select="1"/>
                                <xsl:with-param name="value">
                                        <xsl:value-of select="substring($page/@language,1,2)"/>
                                </xsl:with-param>
                        </xsl:call-template>

                        <xsl:text>inherits=</xsl:text>
                        <xsl:call-template name="encloseDblQuote">
                                <xsl:with-param name="value">
                                        <xsl:value-of select="$page/@namespace"/>
                                        <xsl:text>.</xsl:text>
                                        <xsl:value-of select="$namingConvention//class[@name='Page']/@prefix"/>
                                        <xsl:value-of select="ufn:upStyle($page/name)"/>
                                </xsl:with-param>
                        </xsl:call-template>

                        <xsl:text> codeFile=</xsl:text>
                        <xsl:call-template name="encloseDblQuote">
                                <xsl:with-param name="value">
                                        <xsl:value-of select="$namingConvention//languages/language[@name=$page/@language]/@directory"/>
                                        <xsl:text>/</xsl:text>
                                        <xsl:value-of select="$page/name"/>
                                        <xsl:text>.</xsl:text>
                                        <xsl:value-of select="$namingConvention//class[@name='Page']/@extension"/>
                                        <xsl:text>.</xsl:text>
                                        <xsl:value-of select="$namingConvention//languages/language[@name=$page/@language]/@extension"/>
                                </xsl:with-param>
                        </xsl:call-template>
                </xsl:with-param>
        </xsl:call-template>
</xsl:template>

<xsl:function name="ufn:comment">
        <xsl:param name="value" as="xs:string"/>
        <xsl:text disable-output-escaping="yes">&lt;</xsl:text>
        <xsl:text>!--</xsl:text>
        <xsl:value-of select="$value"/>
        <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
        <xsl:call-template name="enter"/>
</xsl:function>


<!-- Enclose a string in double quote characters. -->
<xsl:function name="ufn:encloseDblQuote" as="xs:string">
        <xsl:param name="value" as="xs:string"/>
        <xsl:value-of select="concat('&quot;',$value,'&quot;')"/>
</xsl:function>

<xsl:function name="ufn:encloseParenthesis" as="xs:string">
        <xsl:param name="value" as="xs:string"/>
        <xsl:value-of select="concat('(',$value,')')"/>
</xsl:function>

<!-- A capitalisation style that reflects the tendency to use fewer capital letters -->
<xsl:function name="ufn:upStyle">
        <xsl:param name="value" as="xs:string"/>
        <xsl:value-of select="concat(upper-case(substring($value,1,1)), substring($value,2))"/>
</xsl:function>
        
<!-- Comment Line -->
<xsl:template name="comment">
        <xsl:param name="value" as="xs:string+"/>
        <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
        <xsl:value-of select="$value"/>
        <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
        <xsl:call-template name="enter"/>
</xsl:template>

<!-- enclose text in <%@ %> or return blank ones. default with newline. -->
<xsl:template name="encloseDirective">
        <xsl:param name="value" as="xs:string"/>
        <xsl:param name="enter" as="xs:integer" select="0"/>
        <xsl:text disable-output-escaping="yes">&lt;%@ </xsl:text>
        <xsl:value-of select="$value"/>
        <xsl:text disable-output-escaping="yes"> %&gt;</xsl:text>
        <xsl:call-template name="enter">
                <xsl:with-param name="number" select="1"/>
        </xsl:call-template>
</xsl:template>

<!-- enclose text in double quotes. -->
<xsl:template name="encloseDblQuote">
        <xsl:param name="value" as="xs:string"/>
        <xsl:param name="space" select="0"/>
        <xsl:text disable-output-escaping="yes">&quot;</xsl:text>
        <xsl:value-of select="$value"/>
        <xsl:text disable-output-escaping="yes">&quot;</xsl:text>
        <xsl:call-template name="space">
                <xsl:with-param name="number" select="$space"/>
        </xsl:call-template>
</xsl:template>

<!-- enclose text in <> or return blank ones. Optionally with newlines.-->
<xsl:template name="encloseAngleBrackets">
        <xsl:param name="value" as="xs:string"/>
        <xsl:param name="enter" as="xs:integer" select="0"/>
        <xsl:text disable-output-escaping="yes">&lt;</xsl:text>
        <xsl:value-of select="$value"/>
        <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
        <xsl:call-template name="enter">
                <xsl:with-param name="number" select="0"/>
        </xsl:call-template>
</xsl:template>

<!-- Add carriage return(s) whitespace -->
<xsl:template name="carriageReturn">
        <xsl:param name="number" select="1"/>
        <xsl:choose>
                <xsl:when test="$number=1">
                        <xsl:text>&#xD;</xsl:text>
                </xsl:when>
                <xsl:when test="$number=2">
                        <xsl:text>&#xD;&#xD;</xsl:text>
                </xsl:when>
                <xsl:when test="$number=3">
                        <xsl:text>&#xD;&#x20;&#xD;</xsl:text>
                </xsl:when>
                <xsl:when test="$number=4">
                        <xsl:text>&#xD;&#xD;&#xD;&#xD;</xsl:text>
                </xsl:when>
        </xsl:choose>
</xsl:template>

<!-- Add space(s) whitespace -->
<xsl:template name="space">
        <xsl:param name="number" select="1"/>
        <xsl:choose>
                <xsl:when test="$number=1">
                        <xsl:text>&#x20;</xsl:text>
                </xsl:when>
                <xsl:when test="$number=2">
                        <xsl:text>&#x20;&#x20;</xsl:text>
                </xsl:when>
                <xsl:when test="$number=3">
                        <xsl:text>&#x20;&#x20;&#x20;</xsl:text>
                </xsl:when>
                <xsl:when test="$number=4">
                        <xsl:text>&#x20;&#x20;&#x20;&#x20;</xsl:text>
                </xsl:when>
        </xsl:choose>
</xsl:template>

<!-- Add tab(s) whitespace -->
<xsl:template name="tab">
        <xsl:param name="number" select="1"/>
        <xsl:choose>
                <xsl:when test="$number=1">
                        <xsl:text>&#x9;</xsl:text>
                </xsl:when>
                <xsl:when test="$number=2">
                        <xsl:text>&#x9;&#x9;</xsl:text>
                </xsl:when>
                <xsl:when test="$number=3">
                        <xsl:text>&#x9;&#x9;&#x9;</xsl:text>
                </xsl:when>
                <xsl:when test="$number=4">
                        <xsl:text>&#x9;&#x9;&#x9;&#x9;</xsl:text>
                </xsl:when>
        </xsl:choose>
</xsl:template>

<!-- add new line(s) whitespace using single newline #xA character optionally followed by tabs  -->
<xsl:template name="enter">
        <xsl:param name="number" select="1"/>
        <xsl:param name="tab" select="0"/>
        <xsl:choose>
                <xsl:when test="$number=1">
                        <xsl:text>&#xA;</xsl:text>
                </xsl:when>
                <xsl:when test="$number=2">
                        <xsl:text>&#xA;&#xA;</xsl:text>
                </xsl:when>
                <xsl:when test="$number=3">
                        <xsl:text>&#xA;&#xA;&#xA;</xsl:text>
                </xsl:when>
                <xsl:when test="$number=4">
                        <xsl:text>&#xA;&#xA;&#xA;&#xA;</xsl:text>
                </xsl:when>
        </xsl:choose>
        <xsl:call-template name="tab">
                <xsl:with-param name="number" select="$tab"/>
        </xsl:call-template>
</xsl:template>
</xsl:stylesheet>







  Sorry for being long winded.
  Are there any advantages from leaving the namespaces in?

-- 
Best regards,
 Arthur                            mailto:ArthurM@xxxxxxxxxx

Current Thread