|
Subject: Re: [xsl] Getting rid of xmlns="" attributes ( doubt ) From: "deva" <dev_stuff@xxxxxxxxxxx> Date: Fri, 2 Jan 2004 11:50:28 -0800 |
Hi guys,
Just a quick question,
for the xml ..
<?xml version="1.0" encoding="utf-8"?>
<template>
<exportTimeStamp xmlns="">
<date>2003-12-29</date>
<time>15:31:34</time>
</exportTimeStamp>
<templateInfo xmlns="" name="" id="1139410602" revision="1">
...
</templateInfo>
...
</template>
i just made a small modification to the XSL Allen had done,....Just added
xmlns = "" to the template element, and I could see no extra xmlns
attributes..
I think It works that way.I am trying to reason now. By forcing the template
element with an empty namespace, I am asking the processor to produce the
template element and all its children in an empty namespace. and so it
doesnt show up. am i right?
My XSL
<?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 xmlns = "">
<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>
Thanks
============================================================================
==
Allen Wrote:
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:
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
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Extreme Markup Languages 2004, B Tommie Usdin | Thread | RE: [xsl] Getting rid of xmlns="" a, Michael Kay |
| RE: [xsl] Getting rid of xmlns="" a, Michael Kay | Date | [xsl] Nested grouping question, Andrew Kirkpatrick |
| Month |