Subject: RE: [xsl] Getting rid of xmlns="" attributes From: "Jim Fuller" <jim.fuller@xxxxxxxxxxxxxx> Date: Wed, 31 Dec 2003 13:15:03 -0000 |
> list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Allen, Erik > Sent: 30 December 2003 23:23 > Subject: [xsl] Getting rid of xmlns="" attributes > I've been using XSL for a few months now and I've been given a > request for a transformation of our XML document into another XML > document, with only some slight changes. One of the changes is to remove > a xml:space="preserve" attribute, but I consider that a trivial problem > that I can easily solve. (I'm just explicitly writing the element with > the two other attributes that appear.) The bigger problem is that I need > to add two namespaces to the XML. > From what I've read on this list, the best place to do something > like that is to place the namespace definitions within the > <xsl:stylesheet> element. I've done that, but now all the child elements > have xmlns="" appearing within them. My XSL looks like this: > > <?xml version="1.0" encoding="iso-8859-1"?> > <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' > xmlns="http://tempuri.org/FormSchema.xsd" > > xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance" > version = '1.0'> > > <xsl:output method="xml"/> > > <xsl:template match="/template"> > <template> > <xsl:attribute name="version"> > <xsl:value-of select="@version"/> > </xsl:attribute> > <xsl:attribute name="readVersion"> > <xsl:value-of select="@readVersion"/> > </xsl:attribute> > <xsl:copy-of select="*"/> > </template> > </xsl:template> > > </xsl:stylesheet> > > The transformation appears to work fine, except, as I said, the > child elements of the root <template> element, all have the attribute > xmlns="". A short snippet of it would be this: [Jim Fuller] should just have to add the following template to your xslt; <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> this is related to what is known as the identity transform; read up on this here http://www.dpawson.co.uk/xsl/sect2/identity.html also would be useful to always have an example xml, in addition to your xslt, and which xslt processor you are using, there are some slight differences (not incompability) when it comes to explicitly printing out an xmlns attribute on every element which may affect your understanding. Happy new year, Jim Fuller XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Getting rid of xmlns="" a, Lars Huttar | Thread | RE: [xsl] Getting rid of xmlns="" a, Michael Kay |
RE: [xsl] newbie question on format, Ragulf Pickaxe | Date | [xsl] Re: Getting rid of xmlns="" a, yguaba |
Month |