[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Unwanted namespace prefix _0

Subject: Re: Unwanted namespace prefix _0
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 23 Dec 2013 11:29:54 -0500
Re:  Unwanted namespace prefix _0
At 2013-12-23 08:16 -0800, Martin Holmes wrote:
Hi all,

I'm doing an identity transform with Saxon (HE, PE and EE all do the same) on a TEI file with embedded examples in the Examples namespace:

<TEI xmlns="http://www.tei-c.org/ns/1.0" version="5.0">
<egXML xmlns="http://www.tei-c.org/ns/Examples" valid="true">
  For more information, consult the
  <ref target="mol:linking#linking_graphics"> guide to
  linking graphic content</ref>.</egXML>

In the output, Saxon generates unwanted namespace prefixes, like this:

<_0:egXML xmlns:_0="http://www.tei-c.org/ns/Examples" valid="true">
  For more information, consult the
  <_0:ref target="mol:linking#linking_graphics"> guide to
  linking graphic content</_0:ref>.</_0:egXML>

This is even though I have exclude-result-prefixes="#all", and it happens whether or not I define a prefix in the root stylesheet element for the Examples namespace.

What am I missing?

That exclude-result-prefixes= has no impact on namespaces in input trees, it only prunes the stylesheet tree literal result elements of unwanted namespaces (though the actual prohibition typically happens during serialization, conceptually it is as if the namespaces were pruned from the stylesheet tree).

How would I get output that looks exactly like the input?

Have you considered reconstituting each element explicitly with no prefix?

<xsl:element name="{name()}" namespace="{namespace-uri()}">

Though I could imagine it has no effect since it will build an exact replica of the result tree as a copy. If you know that what you want is in the default namespace you could try:

<xsl:element name="{local-name()}" namespace="{namespace-uri()}">

But, again, it will likely build the exact result tree.

I'm making these suggestions just in case Saxon looks to the result tree creation for a hint regarding serialization.

The specification doesn't provide such control over serialization, so Saxon is within its rights to do what it wants. You could look in the Saxon documentation for a private extension that would govern the rules.

I hope this helps.

Happy holidays to list readers!

. . . . . . . . Ken

Public XSLT, XSL-FO, UBL & code list classes: Melbourne, AU May 2014 |
Contact us for world-wide XML consulting and instructor-led training |
Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm |
Crane Softwrights Ltd.            http://www.CraneSoftwrights.com/s/ |
G. Ken Holman                   mailto:gkholman@xxxxxxxxxxxxxxxxxxxx |
Google+ profile: https://plus.google.com/116832879756988317389/about |
Legal business disclaimers:    http://www.CraneSoftwrights.com/legal |

Current Thread


Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
First Name
Last Name
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.