Subject: [xsl] Getting rid of xmlns="" attributes From: "Allen, Erik" <eallen@xxxxxxxxxxx> Date: Tue, 30 Dec 2003 16:22:33 -0700 |
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: <?xml version="1.0" encoding="utf-8"?> <template xmlns="http://tempuri.org/FormSchema.xsd" xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance" version="3" readVersion="3"> <exportTimeStamp xmlns=""> <date>2003-12-29</date> <time>15:31:34</time> </exportTimeStamp> <templateInfo xmlns="" name="" id="1139410602" revision="1"> ... </templateInfo> ... </template> I've found that if I change the namespace in the <xsl:stylesheet> from xmlns to xmlns:y, then I don't get the rogue attribute, but that is also giving me the incorrect namespace. The source XML does not have any namespaces defined within it, and I think that I read somewhere that the <xsl:copy-of> might have issues with that. Is there anyway to get the namespaces to come out correctly, without giving me the xmlns=""? Erik Allen XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] anyway obvious way to spe, Ragulf Pickaxe | Thread | RE: [xsl] Getting rid of xmlns="" a, Lars Huttar |
RE: [xsl] anyway obvious way to spe, Ray Tayek | Date | [xsl] newbie question on formatting, Renzo |
Month |