Re: [xsl] How to remove unnecessary "xmlns:xx" attributes?

Subject: Re: [xsl] How to remove unnecessary "xmlns:xx" attributes?
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Wed, 10 Nov 2010 14:22:11 -0500
Abel,

At 11:54 AM 11/10/2010, you wrote:
Hi Wolfgang,

If one of the grand wizards would kindly review my solution:

That won't be me, but let's give it a try regardless ;)


<xsl:copy copy-namespaces = "no">

You don't want the namespaces but the output:


     <?xml version="1.0" encoding="UTF-8"?>
<doc xmlns="p/q/r" xmlns:abc="a/b/c" xmlns:def="d/e/f" xmlns:ghi="g/h/i">
   <abc:bef>The quick brown fox jumps over the lazy dog</abc:bef>

still contains them.

I think the OP actually does want the namespaces that are actually used.


The object is to remove namespaces (and hence namespace declarations) that aren't actually needed by virtue of being used in any names.

Given that, the only potential issue I see in Wolfgang's code is that he matches "/node()" for the top level, which would match any comment or PI siblings of the document element as well as the element itself.

If you want to keep the local part and remove the namespace part of an element, you'll have to use xsl:element with only a local-part.

True, but that's a different problem (at least if I understood the OP).


Cheers,
Wendell



======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
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
======================================================================

Current Thread