I'm not certain what your solutions translates to? As you can see from
the input XML file, the sequence is defined under the ads namespace.
Which I assume means that all elements under the sequence element
inherit that namespace (but are not printed for redundancy reasons).
<sequence version="1" description="Deploy Server"
command="DeployServer.xml"
xmlns="http://schemas.microsoft.com/ads/2003/sequence">
<task description="Launch Image Deployment Tool" doesReboot="false">
<command target="controller">C:\Patches\Tools\dpIDT.vbs</command>
<parameters>
<parameter>$device.system.name$</parameter>
<parameter>_osName_</parameter>
</parameters>
</task>
The match is on a parameter in that ads namespace (otherwise it would
not find the element)
xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ads="http://schemas.microsoft.com/ads/2003/sequence"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:variable name="osName" select="'WIN2K3'"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="ads:parameter[.='_osName_']">
<xsl:element name="parameter"><xsl:value-of
select="$osName"/></xsl:element>
</xsl:template>
But when I output the parameter element, it puts a xmlns="" as an
attribute. I don't want ANY NAMESPACE defined as an attribute for this
element. I want it to read exactly like the input; except the variable
_osName_ is being replaced with the XSLT variable $osName.
Does this make my problem clearer?
Thanks,
--Joel
-----Original Message-----
From: David Carlisle [mailto:davidc(_at_)nag(_dot_)co(_dot_)uk]
Sent: Wednesday, August 04, 2004 11:56 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Removing empty namespace definition from an element
I assume that you haven't shown the full output.
XSLT will only do this:
<parameters>
<parameter>$device.system.name$</parameter>
<parameter xmlns="">W
If the parameters element and the first parameter element are in some
namespace and the second parameter is in no-namespace.
(well actually it would be allowed to add redendant xmlns="" even if
that wasn't the case, but I've never seen an XSLT system do that) So I
assume that there is a namespace declaration on a parent element of teh
fragment you showed?
<xsl:element name="parameter">
is generating a parameter element in no-namespace I assume that your
other elements are in a namespace perhaps copied from a source file.
The solution is to use that namespace here, either using teh namespace
attribute of xsl:element or more simply putting xmlns="something" on
xsl:stylesheet.
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
--+------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--