[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Odd Result-Document Behavior

Subject: Re: [xsl] Odd Result-Document Behavior
From: "Eliot Kimber ekimber@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 23 Dec 2015 18:07:47 -0000

There is no default namespace declaration (and I don!&t normally set one).


Eliot Kimber, Owner
Contrext, LLC

On 12/23/15, 11:43 AM, "Martin Honnen martin.honnen@xxxxxx"
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

>Eliot Kimber ekimber@xxxxxxxxxxxx wrote:
>> I?m using Saxon via Oxygen.
>> I?m using xsl:result-document with @format to generate result documents.
>> If I use a variable reference in @format the referenced xml:output is
>> not used. If I replace the variable reference with a string literal I
>> get the expected output (in both cases the attribute is an attribute
>> value template).
>> My initial code is:
>> <xsl:result-documenthref="{$mapUri}"format="{$mapFormat}?>
>> Where $mapFormat has the string value ?map? and the ?map? output
>> declaration is present:
>> <xsl:paramname="mapFormat"as="xs:string"select="'map'?/>
>> <xsl:output name="map"
>>      method="xml"
>>      doctype-public="-//OASIS//DTD DITA Map//EN"
>>      doctype-system="map.dtd"
>>      indent="yes"
>> />
>> When I run this, the output is not used (result document has no DOCTYPE
>> decl and is not indented).
>> If I replace format="{$mapFormat}? with format=?{?map?}? then I get the
>> expected result (DOCTYPE decl, indented markup).
>> So the only difference is the use of the variable reference. I?ve
>> verified that $mapFormat has a value:
>> <xsl:message>+ [DEBUG]
>> mapFormat="<xsl:sequenceselect="$mapFormat"/>"</xsl:message>
>> Which produces:
>> + [DEBUG] mapFormat=?map"
>> It seems unlikely that this is a Saxon bug but I?m at a loss as to what
>> I could be doing wrong to cause this behavior.
>> What am I missing?
>Any chance some part of the stylesheet does e.g.
>xmlns="http://example.com/ns", i.e. sets a default namespace? If the
>result-document instruction is inside code doing that but the xsl:output
>not, then one would use a name in the namespace while the other would
>use a name in no namespace.

Current Thread