When I made this change, a
namespace started showing up on an HTML tag which was being
copied from the XML file to the generated XSL file: <html:br\>
became <html:br xmlns="http://fedex.com/gnsl"/>.
Outside of eliminating my use of the default namespace in my
source XML file, I have discovered no way to circumvent the
inclusion of this unwanted "xmlns" attribute. I am using the
XalanC++ 'Xalan' and 'testXSLT' XSL processors.
The source XML file has the following (truncated) content:
<TagLabels xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://fedex.com/gnsl" >
<Tag name="GNSL_LOCATION_TYPE_CD">LOC<html:br/>TYPE</Tag>
</TagLabels>
The XSL stylesheet declaration and the templates which output
the offending statement follow:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:gnsl="http://fedex.com/gnsl"
exclude-result-prefixes="gnsl html" >
Note that exclude-result-prefixes= only prunes namespace nodes from the
stylesheet tree and never from the source tree.