Subject: RE: [xsl] Removing empty namespace definition from an element From: "Joel Friedman" <jfriedman@xxxxxxxxxxxx> Date: Wed, 4 Aug 2004 12:08:56 -0400 |
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@xxxxxxxxx] Sent: Wednesday, August 04, 2004 11:56 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx 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 ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Removing empty namespace , Michael Kay | Thread | Re: [xsl] Removing empty namespace , David Carlisle |
Re: [xsl] Removing empty namespace , David Carlisle | Date | Re: [xsl] Removing empty namespace , David Carlisle |
Month |