RE: RE: [xsl] Unwanted namespace declaration in output

Subject: RE: RE: [xsl] Unwanted namespace declaration in output
From: cknell@xxxxxxxxxx
Date: Wed, 01 Mar 2006 13:32:14 -0500
> First point is that a parameter becomes mandatory if you specify
> as="xs:integer" with no default value. That's because the "default default"
> value of "" is not a valid instance of this type, so there is effectively no
> default, which is the same as specifying required="yes"

Thanks for that clarification.

> Running with -T reveals that the offending call (which doesn't supply a
> value for the parameter) is at line 31:
> 
>              <xsl:apply-templates select="name" />

Ouch! I overlooked that one. Thanks.

> In my tests with both Saxon 8.7 and Saxon 8.6.1, it fails on the long source
> document with or without the exclude-result-prefixes, and it succeeds on the
> short source document with or without the exclude-result-prefixes. 

I have version 8.6. Here's the output from a command-line invocation of Saxon:

X:\>java  net.sf.saxon.T
Saxon 8.6 from Saxonica

Apparently you made some change between 8.6 and 8.6.1 that changed the behavior I experienced. Try the transformation with the older version and you will get the behavior I saw, i.e., failure with exclude-result-prefixes, "success" without it. However, with the current version being 8.7, that may be of interest only for archaeological reasons.

Thanks.

-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     Michael Kay <mike@xxxxxxxxxxxx>
Sent:     Wed, 1 Mar 2006 18:03:19 -0000
To:       <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject:  RE: [xsl] Unwanted namespace declaration in output


First point is that a parameter becomes mandatory if you specify
as="xs:integer" with no default value. That's because the "default default"
value of "" is not a valid instance of this type, so there is effectively no
default, which is the same as specifying required="yes".

Running with -T reveals that the offending call (which doesn't supply a
value for the parameter) is at line 31:

             <xsl:apply-templates select="name" />

In my tests with both Saxon 8.7 and Saxon 8.6.1, it fails on the long source
document with or without the exclude-result-prefixes, and it succeeds on the
short source document with or without the exclude-result-prefixes. The
difference between the two cases is that the short one doesn't contain the
data that causes the apply-templates call on line 31 to be activated.

I couldn't work out from your post exactly how you are suggesting that
exclude-result-prefixes affects the outcome. (It would of course be possible
to construct a stylesheet where exclude-result-prefixes does affect the
outcome, but it would be rather artificial).

Michael Kay
http://www.saxonica.com/

Current Thread