Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

The <xsl:namespace-alias>element replaces the prefix associated with a given name space with another prefix.

Syntax

<xsl:namespace-alias
  stylesheet-prefix = 
QName
  result-prefix = 
QName/>

Attributes

None.

Element Information

Number of occurrences

Unlimited

Parent elements

xsl:stylesheet

Child elements

None

Remarks

Sometimes the content that an XSL Transformations (XSLT) file generates is other XSLT. This presents a challenge with name spaces because there is no explicit way to declare two prefixes with the same name space without the processor treating both prefixes as the same name space and acting on them. With the name space-alias command, you canassign an interim name space to an alternate prefix, apply the style sheet, and then map the alternate name space to the XSLT one.

Although XSL-to-XSL file generation is the primary use for this command, it is not the only one. You can use this technique anywhere you have colliding name spaces (for example, with the xsi: schema data type name space). The top-level element must be <xsl:namespace-alias>.

Examples

The following style sheet generates a style sheet based on a couple of input parameters, and then maps the alt: prefix to the xsl: prefix.

alias.xsl

Copy Code
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:alt="http://www.w3.org/1999/XSL/Transform-alternate" 
version="1.0">
<xsl:namespace-alias stylesheet-prefix="alt"
result-prefix="xsl"/>
<xsl:param name="browser" select="'InternetExplorer'"/>
  <xsl:template match="/">
	 <alt:stylesheet>
	 <xsl:choose>
		<xsl:when test="$browser='InternetExplorer'">
		<alt:import href="IERoutines.xsl"/>
		<alt:template match="/">
			<div>
			<alt:call-template name="showTable"/>
			</div>
		</alt:template>
		</xsl:when>
		<xsl:otherwise>
		<alt:import href="OtherBrowserRoutines.xsl"/>
		<alt:template match="/">
			<div>
			<alt:call-template name="showTable"/>
			</div>
		</alt:template>
		</xsl:otherwise>
	 </xsl:choose>
	 </alt:stylesheet>
  </xsl:template>
</xsl:stylesheet>

The resulting output stylesheet can be viewed by loading it with the following Microsoft® Visual Basic® code.

Copy Code
Sub aliastest(StyleSheetFileName As String)
	Dim DOMDoc As New Msxml2.DOMDocument
	Dim StyleSheet As New Msxml2.DOMDocument
	Dim Output As New Msxml2.DOMDocument

	StyleSheet.Load StyleSheetFileName

	DOMDoc.transformNodeToObject StyleSheet, Output

	MsgBox Output.xml
End Sub

Private Sub Command1_Click()
	 Call aliastest("C:\Code_Snippets\alias.xsl")
End Sub

The following shows the resulting style sheet when the Visual Basic application is run.

Copy Code
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:import
href="IERoutines.xsl"/><xsl:template
match="/"><div><xsl:call-template
name="showTable"/></div></xsl:template></xsl:stylesheet>

See Also