I am trying to report on a Spring configuration: Of course the XML has a lot of depth and the important pieces are pretty deep. The interesting flow can be summarized as follows with multiple property elements omitted.
bean
-property
--list
---bean
----property name="phaseName"
----property name="pluginID
----property name="fileSpecifications"
-----set
-------bean
--------property name="dataStoreName" value="courses"
--------property name="columnNames"
---------list
----------value
----------value
In the xsl, I get to the second bean level and extract the pluginID and then find the "fileSpecifications" where I get the "dataStoreName". For no reason that I can see, Saxon also extracts the list of values with a lot of empty line and extra tabs.
The extra text is from a property called "columnNames" which is not referenced in the XSL file anywhere. In debugging by adding xsl:message statements, I have not been able to determine which template is doing this extraction.
In case that this is hard to read in the mailing list, I have created a blog entry http://blog.artifact-software.com/tech/?p=296 describing the files that can be downloaded and executed. I can provide more sample phase files if required.
There is a higher level bit of processing in the xsl that reads a master configuration and finds all of the files that are imported. It matches the file with the phase so that the phases can be reported in the same sequence that the phases will be processed. The xsl builds the list and then processes each file in turn.
Even if I remove the code that extracts the dataStoreName value attribute, I still get the columnNames list of values.
Is this a know bug or have I done something silly?
Extract from the output
<tr>
<td class="header">Bean Name</td>
<td class="header">Plugin Name</td>
<td class="header">DataStore Name</td>
</tr>
<tr>
<td class="id">CourseWriterOutputting a row</td>
<td class="pluginId">Plugin ID:CourseFileWriter<br>Usage Description</td>
<td class="dataStoreName"></td>
<td>
courses
TITLE
PMI_REPORTING_NUMBER
IIBA_REPORTING_NUMBER
DEFAULT_CURRENCY
PRICE
OFFERING_TEMPLATE_NO
ABSTRACT
The extract of the xsl is Outputting a table /xsl:variable>
<caption><xsl:value-of select="$phaseName" />
from <xsl:value-of select="$resourceName" /></caption>
<tr>
<td class="header">Bean Name</td><td class="header">Plugin Name</td>
<td class="header">DataStore Name</td>
</tr>
<xsl:apply-templates select="document($fileName)/sb:beans/sb:bean" />
<xsl:apply-templates
select="document($fileName)/sb:beans/sb:bean/sb:property[@name='plugins']/sb:list" mode="plug-in"/>
</table>
</xsl:template>