xsl-list
[Top] [All Lists]

Re: [xsl] Removing unwanted namespaces

2012-01-12 15:06:09
hi Wendell,
   this work for me but there is slight difference in namespace allignment.

here is the output i am getting 
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
        <soapenv:Header/>
        <soapenv:Body>
                <ns:abcdion xmlns:ns="http://abcd.com/abc/abcde/501/";>
                        <!--Optional:-->
                        <ns:serviceRequest>
                                <!--Optional:-->
                                <dat:SessionId 
xmlns:dat="http://abcdef.com/abcdef/abcdef";>?</dat:SessionId>
                                <!--Optional:-->
                                <ns:Id>?</ns:Id>
                        </ns:serviceRequest>
                </ns:abcdion>
        </soapenv:Body>
</soapenv:Envelope>

    what i was looking is

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:ns="http://abcd.com/abc/abcde/501/"; 
xmlns:dat="http://abcdef.com/abcdef/abcdef";>>
        <soapenv:Header/>
        <soapenv:Body>
                <ns:abcdion >
                        <!--Optional:-->
                        <ns:request>
                                <!--Optional:-->
                                <dat:SId >?</dat:SId>
                                <!--Optional:-->
                                <ns:Id>?</ns:Id>
                        </ns:request>
                </ns:abcdion>
        </soapenv:Body>
</soapenv:Envelope>

    I know its not really big differene, but want to get the output as expected.

--- On Thu, 12/1/12, Wendell Piez <wapiez(_at_)mulberrytech(_dot_)com> wrote:

From: Wendell Piez <wapiez(_at_)mulberrytech(_dot_)com>
Subject: Re: [xsl] Removing unwanted namespaces
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Date: Thursday, 12 January, 2012, 9:40 PM
Hi again,

Yes, this will work, but I think Ram also said he wants all
namespace declarations at the top. Since this logic
effectively strips all namespace nodes except where they are
needed, the declarations will only appear at the point (or
points, within the tree hierarchy) of first use.

(I also don't like using "*[local-name()='x']" tests but
I'm unwilling to say they're bad, exactly. It's just that
there are usually more graceful ways. :-)

Cheers,
Wendell

On 1/11/2012 7:04 PM, Markus Abt wrote:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">

<xsl:template match="@*|node()" priority="-1">
     <xsl:copy>
        <xsl:apply-templates
select="@*|node()"/>
     </xsl:copy>
</xsl:template>

<xsl:template match="*">
     <xsl:element
name="{name(.)}" namespace="{namespace-uri(.)}">
        <xsl:apply-templates
select="@*|node()"/>
     </xsl:element>
</xsl:template>

<xsl:template
match="*[local-name()='abcdHeader']"/>
<xsl:template
match="*[local-name()='Context']"/>

</xsl:stylesheet>

If required, you need to add code to remove unwanted
namespace
nodes from attributes in a similar way.

--
======================================================================
Wendell Piez           
               
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc.       
        http://www.mulberrytech.com
17 West Jefferson Street         
          Direct Phone:
301/315-9635
Suite 207             
               
            Phone:
301/315-9631
Rockville, MD  20850         
               
       Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in
SGML and XML
======================================================================

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--