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. |
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 |
|
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> |