Re: [xsl] namespaces issue

Subject: Re: [xsl] namespaces issue
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 11 Nov 2010 14:23:53 -0500
At 2010-11-11 18:54 +0000, Dave Pawson wrote:
input document

<?xml version="1.0" encoding="utf-8"?>
<node xmlns:db='abc'>
<db:docbook xmlns="">fred</db:docbook>
</node>

ss

 <xsl:template match="db:docbook">
    <xsl:message>
      <xsl:value-of select="for $n in in-scope-prefixes(.) return
 concat('[',namespace-uri-for-prefix($n,.),']')"/> </xsl:message>
    <xsl:apply-templates/>
  </xsl:template>

result [http://www.w3.org/XML/1998/namespace] [abc]


Question... what effect (seemingly none) does the xmlns="" have?

I created this in error and sat staring at it.


Still can't get my head round it. Some sort of precedence?

No, xmlns="" is "special" in that it is the "undeclaration of the default namespace" directive.


It takes the default namespace *out* of the in-scope namespaces, rather than adding anything in.

In your case, it does nothing, because there was no default namespace to take away.

I hope this helps.

. . . . . . . . Ken

--
Contact us for world-wide XML consulting & instructor-led training
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal

Current Thread