[ http://issues.apache.org/jira/browse/XALANJ-1184?page=all ]
Brian Minchau updated XALANJ-1184: ---------------------------------- Version: Latest Development Code (was: 2.4) > xsl:key or generate-id() appears to lose first attribute from referenced > document element. > ------------------------------------------------------------------------------------------ > > Key: XALANJ-1184 > URL: http://issues.apache.org/jira/browse/XALANJ-1184 > Project: XalanJ2 > Type: Bug > Components: transformation, Xalan-interpretive > Versions: Latest Development Code > Environment: Operating System: Windows NT/2K > Platform: Other > Reporter: Ian Gratton > Assignee: Xalan Developers Mailing List > Attachments: PrintManagerSearchResults.xml, gaprintmanagerresults.xsl > > I have a problem where by an attribute (it has a namespace) is stolen from my > XML when I use apache XTAGS in conjunction with XalanJ 2.4 to perform a > stylesheet transformation. > The style sheet makes use of 5 <xsl:key> statements to pre-index document > nodes > for efficient output in the style sheet.... > If you transform the XML below with the stylesheet below you get a fragment > of > an HTML page. Notice there are some Print <A> tags. When you hover over the > Print anchors you should notice a call to javascript:printSingleDocument(). > The first item has no parameters in the method call - this means that the > transformation has lost the ino:id attribute from the first > <PrintableDocument> > element in the XML. > If I run this stylesheet via XMLSPY using MSXML I do not get this problem. I > am pretty sure I have not broken any of the standards XSLT rules in the > stylesheet. > Anyone have any ideas ??? > The XML is as follows: > ------------------------------ XML -------------------------- > <?xml version="1.0" encoding="iso-8859-1"?> > <PrintManagerSearchResults > xmlns:ino="http://namespaces.softwareag.com/tamino/response2/"> > <PrintableDocuments> > <PrintableDocument ino:id="2" PolicyNumber="59999999" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014031891" > EffectiveDate="20020830" Part="Policy" DocumentVersion="1" PolicyVersion="1" > PolicyProducerId="OH95000908" PolicyInsuredName="Billy Ocean" > DateCreated="20020910014041155" CopyType="COMPANY"/> > <PrintableDocument ino:id="3" PolicyNumber="59999999" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014041235" > EffectiveDate="20020830" Part="Schedule A" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="OH95000908" PolicyInsuredName="Billy > Ocean" > DateCreated="20020910014044760" CopyType="ORIGINAL"/> > <PrintableDocument ino:id="4" PolicyNumber="59999999" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014044810" > EffectiveDate="20020830" Part="Schedule A" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="OH95000908" PolicyInsuredName="Billy > Ocean" > DateCreated="20020910014048345" CopyType="OFFICE"/> > <PrintableDocument ino:id="5" PolicyNumber="59999999" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014048455" > EffectiveDate="20020830" Part="Schedule A" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="OH95000908" PolicyInsuredName="Billy > Ocean" > DateCreated="20020910014058430" CopyType="COMPANY"/> > <PrintableDocument ino:id="6" PolicyNumber="59999999" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014058510" > EffectiveDate="20020830" Part="Schedule B" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="OH95000908" PolicyInsuredName="Billy > Ocean" > DateCreated="20020910014102075" CopyType="ORIGINAL"/> > <PrintableDocument ino:id="7" PolicyNumber="59999999" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014102145" > EffectiveDate="20020830" Part="Schedule B" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="OH95000908" PolicyInsuredName="Billy > Ocean" > DateCreated="20020910014105710" CopyType="OFFICE"/> > <PrintableDocument ino:id="8" PolicyNumber="59999999" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014105790" > EffectiveDate="20020830" Part="Schedule B" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="OH95000908" PolicyInsuredName="Billy > Ocean" > DateCreated="20020910014110777" CopyType="COMPANY"/> > <PrintableDocument ino:id="9" PolicyNumber="59999999" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014110868" > EffectiveDate="20020830" Part="Schedule C" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="OH95000908" PolicyInsuredName="Billy > Ocean" > DateCreated="20020910014114443" CopyType="ORIGINAL"/> > <PrintableDocument ino:id="10" PolicyNumber="59999999" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014114553" > EffectiveDate="20020830" Part="Schedule C" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="OH95000908" PolicyInsuredName="Billy > Ocean" > DateCreated="20020910014117958" CopyType="OFFICE"/> > <PrintableDocument ino:id="11" PolicyNumber="59999999" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014118168" > EffectiveDate="20020830" Part="Schedule C" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="OH95000908" PolicyInsuredName="Billy > Ocean" > DateCreated="20020910014123285" CopyType="COMPANY"/> > <PrintableDocument ino:id="12" PolicyNumber="59999999" > Type="ENDORSEMENT" PolicyStatus="Policy" Id="C002" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014123375" > EffectiveDate="20020830" Part="Endorsement" DocumentReference="B01" > DocumentVersion="1" PolicyVersion="1" PolicyProducerId="OH95000908" > PolicyInsuredName="Billy Ocean" DateCreated="20020910014127832" > CopyType="ORIGINAL"/> > <PrintableDocument ino:id="13" PolicyNumber="59999999" > Type="ENDORSEMENT" PolicyStatus="Policy" Id="C002" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014127942" > EffectiveDate="20020830" Part="Endorsement" DocumentReference="B01" > DocumentVersion="1" PolicyVersion="1" PolicyProducerId="OH95000908" > PolicyInsuredName="Billy Ocean" DateCreated="20020910014131006" > CopyType="OFFICE"/> > <PrintableDocument ino:id="14" PolicyNumber="59999999" > Type="ENDORSEMENT" PolicyStatus="Policy" Id="C002" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014131087" > EffectiveDate="20020830" Part="Endorsement" DocumentReference="B01" > DocumentVersion="1" PolicyVersion="1" PolicyProducerId="OH95000908" > PolicyInsuredName="Billy Ocean" DateCreated="20020910014135433" > CopyType="COMPANY"/> > <PrintableDocument ino:id="15" PolicyNumber="51111111" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014135523" > EffectiveDate="20020830" Part="Policy" DocumentVersion="1" PolicyVersion="1" > PolicyProducerId="200111021604250921" PolicyInsuredName="Billy Ocean" > DateCreated="20020910014139018" CopyType="ORIGINAL"/> > <PrintableDocument ino:id="16" PolicyNumber="51111111" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014139078" > EffectiveDate="20020830" Part="Policy" DocumentVersion="1" PolicyVersion="1" > PolicyProducerId="200111021604250921" PolicyInsuredName="Billy Ocean" > DateCreated="20020910014141852" CopyType="OFFICE"/> > <PrintableDocument ino:id="17" PolicyNumber="51111111" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014141942" > EffectiveDate="20020830" Part="Policy" DocumentVersion="1" PolicyVersion="1" > PolicyProducerId="200111021604250921" PolicyInsuredName="Billy Ocean" > DateCreated="20020910014146158" CopyType="COMPANY"/> > <PrintableDocument ino:id="18" PolicyNumber="51111111" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014146228" > EffectiveDate="20020830" Part="Schedule A" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="200111021604250921" > PolicyInsuredName="Billy Ocean" DateCreated="20020910014149703" > CopyType="ORIGINAL"/> > <PrintableDocument ino:id="19" PolicyNumber="51111111" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014149783" > EffectiveDate="20020830" Part="Schedule A" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="200111021604250921" > PolicyInsuredName="Billy Ocean" DateCreated="20020910014153319" > CopyType="OFFICE"/> > <PrintableDocument ino:id="20" PolicyNumber="51111111" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014153409" > EffectiveDate="20020830" Part="Schedule A" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="200111021604250921" > PolicyInsuredName="Billy Ocean" DateCreated="20020910014158516" > CopyType="COMPANY"/> > <PrintableDocument ino:id="21" PolicyNumber="51111111" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014158626" > EffectiveDate="20020830" Part="Schedule B" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="200111021604250921" > PolicyInsuredName="Billy Ocean" DateCreated="20020910014207339" > CopyType="ORIGINAL"/> > <PrintableDocument ino:id="22" PolicyNumber="51111111" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014208901" > EffectiveDate="20020830" Part="Schedule B" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="200111021604250921" > PolicyInsuredName="Billy Ocean" DateCreated="20020910014212396" > CopyType="OFFICE"/> > <PrintableDocument ino:id="23" PolicyNumber="51111111" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014212476" > EffectiveDate="20020830" Part="Schedule B" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="200111021604250921" > PolicyInsuredName="Billy Ocean" DateCreated="20020910014216151" > CopyType="COMPANY"/> > <PrintableDocument ino:id="24" PolicyNumber="51111111" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014216221" > EffectiveDate="20020830" Part="Schedule C" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="200111021604250921" > PolicyInsuredName="Billy Ocean" DateCreated="20020910014221289" > CopyType="ORIGINAL"/> > <PrintableDocument ino:id="25" PolicyNumber="51111111" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014221429" > EffectiveDate="20020830" Part="Schedule C" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="200111021604250921" > PolicyInsuredName="Billy Ocean" DateCreated="20020910014224974" > CopyType="OFFICE"/> > <PrintableDocument ino:id="26" PolicyNumber="51111111" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014225044" > EffectiveDate="20020830" Part="Schedule C" DocumentVersion="1" > PolicyVersion="1" PolicyProducerId="200111021604250921" > PolicyInsuredName="Billy Ocean" DateCreated="20020910014228669" > CopyType="COMPANY"/> > <PrintableDocument ino:id="40" PolicyNumber="59999999" > Type="POLICY" PolicyStatus="Policy" Id="APG" CurrentVersion="Y" > DatePrinted="00000000000000000" EarliestPrintDate="20020910014012854" > EffectiveDate="20020830" Part="Policy" DocumentVersion="1" PolicyVersion="1" > PolicyProducerId="OH95000908" PolicyInsuredName="Billy Ocean" > DateCreated="20020910014028857" CopyType="ORIGINAL"/> > </PrintableDocuments> > </PrintManagerSearchResults> > ------------------------------ END XML -------------------------- > The stylesheet is as follows: > ------------------------------ XSL -------------------------- > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:ino="http://namespaces.softwareag.com/tamino/response2/" > xmlns:xql="http://metalab.unc.edu/xql/" > exclude-result-prefixes="ino xql"> > <xsl:output indent="yes" omit-xml-declaration="yes" /> > <!-- Set up the key for matching PrintableDocument for groupings in page > output --> > <xsl:key name="by-policynumber" match="PrintableDocument" > use="@PolicyNumber"/> > <xsl:key name="by-producer" match="PrintableDocument" > use="@PolicyProducerId"/> > <xsl:key name="by-producer-policynumber" match="PrintableDocument" use="concat > (@PolicyProducerId, '++', @PolicyNumber)"/> > <xsl:key name="by-policynumber-part" match="PrintableDocument" use="concat > (@PolicyNumber, '++', @Part)"/> > <xsl:key name="by-policynumber-part-copytype" match="PrintableDocument" > use="concat(@PolicyNumber, '++', @Part, '++', @CopyType)"/> > <xsl:template match="/"> > <xsl:choose> > <xsl:when > test="PrintManagerSearchResults/PrintableDocuments/PrintableDocument"> > <!-- List all the matching documents --> > <xsl:call-template name="ListDocuments"/> > </xsl:when> > <xsl:otherwise> > <!-- There are no documents to display --> > <xsl:call-template name="NoDocuments"/> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > <xsl:template name="NoDocuments"> > <p>No documents were found by your search. Click <a > href="/aus/servlet/GAPrintManager">here</a> to try again</p> > </xsl:template> > <xsl:template name="ListDocuments"> > <p>There were <strong><xsl:value-of select="count > (PrintManagerSearchResults/PrintableDocuments/PrintableDocument) - > 1"/></strong> documents found by your search.</p> > <p>The <img src="../Images/tick.gif" align="middle" alt="" > width="16" height="16" border="0"/> symbol indicates that the document > has > already been printed. Hover over a tick to find out when.</p> > <table border="0" width="100%" cellpadding="5" cellspacing="0" > style="border: 1px solid Black;"> > <!-- Show each producer --> > > <xsl:for-each select="//PrintableDocument[generate-id() > =generate-id(key('by-producer',@PolicyProducerId))]"> > <!--<xsl:if test="@PolicyProducerId != ''">--> > <xsl:variable name="currProducerId" > select="@PolicyProducerId"/> > > <!-- Show the producers name --> > <tr> > <td colspan="5" class="ProducerHeading"> > <strong> > <xsl:call-template > name="getProducerTitle"> > <xsl:with-param > name="title" select="@PolicyProducerId"/> > </xsl:call-template> > </strong> > </td> > </tr> > <!-- Show each policy for this producer --> > <xsl:for-each select="//PrintableDocument > [generate-id() = generate-id(key('by-producer-policynumber', concat > ($currProducerId, '++', ./@PolicyNumber)))]"> > <xsl:variable name="currPolicyNumber" > select="@PolicyNumber"/> > <tr> > <td class="PolicyHeadingTop" > colspan="2" nowrap="nowrap"> > <strong><xsl:value-of > select="@PolicyInsuredName"/></strong> > </td> > <td width="15%" align="center" > class="PolicyHeadingTop"> > <a title="Click to > print all documents shown for this policy"> > <xsl:attribute > name="href">javascript:printPolicyDocuments([<xsl:call-template > name="buildPolicyPrintURL"><xsl:with-param name="policynumber" > select="$currPolicyNumber"/></xsl:call-template>])</xsl:attribute> > <xsl:value-of > select="@PolicyNumber"/> > </a> > </td> > <td width="15%" align="center" > nowrap="nowrap" class="PolicyHeadingTop"> > <strong> > <xsl:call-template > name="formatDate"> > <xsl:with-param > name="date" select="@EffectiveDate"/> > </xsl:call-template> > </strong> > </td> > <td width="15%" align="center" > nowrap="nowrap" class="PolicyHeadingTop"> > <strong><xsl:value-of > select="@PolicyStatus"/></strong> > </td> > </tr> > <tr> > <td colspan="2" > class="PolicyHeadingBottom"><strong>Documents</strong></td> > <td align="center" > nowrap="nowrap" class="PolicyHeadingBottom"><strong>Original</strong></td> > <td align="center" > nowrap="nowrap" class="PolicyHeadingBottom"><strong>Producer > Copy</strong></td> > <td align="center" > nowrap="nowrap" class="PolicyHeadingBottom"><strong>Company Copy</strong></td> > </tr> > > <!-- Show each document for the current > policy --> > > <xsl:for-each > select="//PrintableDocument[generate-id() = generate-id(key('by-policynumber- > part', concat($currPolicyNumber, '++', ./@Part)))]"> > <xsl:sort select="@DateCreated" > data-type="text" order="ascending"/> > > <xsl:variable name="currPart" > select="@Part"/> > <xsl:variable name="currId" > select="@Id"/> > <tr> > <xsl:attribute > name="BgColor"> > <xsl:choose> > > <xsl:when test="position() mod 2 = 1">#dfdfdf</xsl:when> > > <xsl:when test="position() mod 2 = 0">#f5f5f5</xsl:when> > </xsl:choose> > </xsl:attribute> > <td> > <img > src="../Images/document_sml.gif" alt="" width="16" height="16" border="0"/> > >  <xsl:value-of select="@Part"/> (<xsl:value-of select="@Id"/>) > </td> > <td> > <a title="Click > to print all copies of this document"> > > <xsl:attribute name="href"> > > javascript:printDocumentCopies([<xsl:call-template > name="buildMulticopyPrintURL"><xsl:with-param name="policynumber" > select="$currPolicyNumber"/><xsl:with-param name="part" > select="$currPart"/></xsl:call-template>]) > > </xsl:attribute> > Print > </a> > </td> > <xsl:call-template > name="createPrintOption"> > <xsl:with-param > name="printableDoc" select="key('by-policynumber-part-copytype', concat > ($currPolicyNumber, '++', $currPart, '++', 'ORIGINAL'))"/> > </xsl:call-template> > <xsl:call-template > name="createPrintOption"> > <xsl:with-param > name="printableDoc" select="key('by-policynumber-part-copytype', concat > ($currPolicyNumber, '++', $currPart, '++', 'OFFICE'))"/> > </xsl:call-template> > <xsl:call-template > name="createPrintOption"> > <xsl:with-param > name="printableDoc" select="key('by-policynumber-part-copytype', concat > ($currPolicyNumber, '++', $currPart, '++', 'COMPANY'))"/> > </xsl:call-template> > </tr> > > </xsl:for-each> > </xsl:for-each> > <!-- </xsl:if> --> > </xsl:for-each> > </table> > <br/> > <table border="0" width="100%" cellpadding="5" cellspacing="0"> > <tr> > <td colspan="5" align="center"> > <input type="reset" class="Button" > name="resetform" title="Click to reset this form" value="Reset Form" > onMouseOver="this.className='ButtonHover'" > onMouseOut="this.className='Button'"/>  > <input type="button" class="Button" > name="printall" title="Click to print all the above documents" value="Print > All" onMouseOver="this.className='ButtonHover'" > onMouseOut="this.className='Button'" onclick="javascript:printAll()"/>  > <input type="submit" class="Button" > name="printselected" title="Click to print the selected documents" > value="Print > Selected" onMouseOver="this.className='ButtonHover'" > onMouseOut="this.className='Button'"/>  > <input type="button" class="Button" > name="printmanager" title="Click to return to the search screen" > value="Return > To Search" onMouseOver="this.className='ButtonHover'" > onMouseOut="this.className='Button'" onclick="javascript:returnToSearch()"/> > </td> > </tr> > </table> > </xsl:template> > <xsl:template name="buildPolicyPrintURL"> > <xsl:param name="policynumber"/> > > <xsl:for-each select="key('by-policynumber', $policynumber)"> > <xsl:value-of select="@ino:id"/><xsl:if test="position > () != last()">,</xsl:if> > </xsl:for-each> > </xsl:template> > > > <xsl:template name="buildMulticopyPrintURL"> > <xsl:param name="policynumber"/> > <xsl:param name="part"/> > > <xsl:for-each select="key('by-policynumber-part',concat > ($policynumber, '++', $part))"> > <xsl:value-of select="@ino:id"/><xsl:if > test="position() != last()">,</xsl:if> > </xsl:for-each> > </xsl:template> > <xsl:template name="createPrintOption"> > <xsl:param name="printableDoc"/> > <td align="center"> > <xsl:choose> > <xsl:when test="$printableDoc"> > > <xsl:choose> > <xsl:when > test="$printableDoc/@DatePrinted != '00000000000000000'"> > <img > src="../Images/tick.gif" width="16" height="16" border="0" > onmouseover="this.style.cursor = 'help'" onmouseout="this.style.cursor > = 'default'"> > <xsl:attribute > name="title">This document was printed on <xsl:call-template > name="formatDate"> > > <xsl:with-param name="date" select="@DatePrinted"/> > </xsl:call- > template> > </xsl:attribute> > </img> >   > </xsl:when> > <xsl:otherwise> > <img > src="../Images/blank.gif" width="16" height="16" border="0"/>  > </xsl:otherwise> > </xsl:choose> > <input type="checkbox" > name="documentid" id="documentid" value="{$printableDoc/@ino:id}"/> >  <a > href="javascript:printSingleDocument({$printableDoc/@ino:id})" title="Click > to > print just this copy of the document">Print</a> > > </xsl:when> > <xsl:otherwise>N/A</xsl:otherwise> > </xsl:choose> > </td> > </xsl:template> > > <xsl:template name="formatDate"> > <xsl:param name="date"/> > <xsl:choose> > <xsl:when test="string($date)"> > <xsl:value-of select="substring($date, 5, > 2)"/>/<xsl:value-of select="substring($date, 7, 2)"/>/<xsl:value-of > select="substring($date, 1, 4)"/> > </xsl:when> > <xsl:otherwise>N/A</xsl:otherwise> > </xsl:choose> > </xsl:template> > <xsl:template name="getProducerTitle"> > <xsl:param name="title"/> > <xsl:value-of select="//[EMAIL > PROTECTED]'brokerCompany']/listEntry > [key=$title]/description/text()"/> > </xsl:template> > </xsl:stylesheet> > ------------------------------ XSL -------------------------- -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]