[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Removing empty namespace definition from an elemen

Subject: RE: Removing empty namespace definition from an element
From: "Joel Friedman" <jfriedman@xxxxxxxxxxxx>
Date: Wed, 4 Aug 2004 12:08:56 -0400
xmlns empty namespace
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:  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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.