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

Re: [xsl] Odd Result-Document Behavior

Subject: Re: [xsl] Odd Result-Document Behavior
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 23 Dec 2015 18:03:03 -0000

Eliot Kimber ekimber@xxxxxxxxxxxx wrote:
Im using Saxon via Oxygen.

Im 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:


Where $mapFormat has the string value map and the map output declaration is present:


<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. Ive
verified that $mapFormat has a value:

<xsl:message>+ [DEBUG]

Which produces:

+ [DEBUG] mapFormat=map"

It seems unlikely that this is a Saxon bug but Im at a loss as to what
I could be doing wrong to cause this behavior.

It looks like a bug to me, sample stylesheet is

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">

<xsl:param name="map" select="'map'"/>

 <xsl:output name="map"
    doctype-public="-//OASIS//DTD DITA Map//EN"

<xsl:template name="main"> <xsl:result-document href="test2015122301Output.xml" format="{$map}"> <root> <foo>bar</foo> </root> </xsl:result-document> <xsl:result-document href="test2015122302Output.xml" format="{'map'}"> <root> <foo>bar</foo> </root> </xsl:result-document> </xsl:template>


and the test2015122301Output.xml then looks like

<?xml version="1.0" encoding="UTF-8"?><root><foo>bar</foo></root>

while the second is test2015122302Output.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root
  PUBLIC "-//OASIS//DTD DITA Map//EN" "map.dtd">

Tested with Saxon-HE from Saxonica
Java version 1.8.0_66

Current Thread