[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: xsl:call-template: misplaced xsl:apply-imports
Hi Sam, As you found out, the body of a xsl:call-template can only take xsl:with-param children, not any other content such as that generated by xsl:apply-imports. The basic problem is that this template: <xsl:template match="link" name="link"> was not written to accept the hot text as a parameter. Instead, you should look at the template named "simple.xlink" which is used by the "link" template. The "simple.xlink" templates takes both linkend and content parameters. Put the apply-imports into the content parameter. Bob Stayton Sagehill Enterprises DocBook Consulting bobs@sagehill.net ----- Original Message ----- From: "Sam Steingold" <sds@gnu.org> To: "DocBook Apps" <docbook-apps@lists.oasis-open.org> Cc: "Bob Stayton" <bobs@sagehill.net> Sent: Monday, October 15, 2007 11:31 AM Subject: xsl:call-template: misplaced xsl:apply-imports >I want > <filename role="module">queens</filename> > to be converted to > > <span class="module"><a href="clisp-cvs/queens/"> > [whatever docbook wants to format filenames with]queens[/] > </a></span> > > while > <filename role="module" path="rasock-mod">rawsock</filename> > to be converted to > > <span class="module"> > [whatever docbook converts the following] > <link linkend="rasock-mod"><filename>rawsock</filename></link> > or (whatever is easier) > <filename><link linkend="rasock-mod">rawsock</link></filename> > [/] > </span> > > I.e., then path= is supplied, it is used as a link into the current > document, otherwise an external link into the CVS should be generated. > > so far I came up with > > <xsl:param name="clisp.cvs.top" > select="'http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/'"/> > <xsl:template match="filename[@role='module']"> > <xsl:message>Module [<xsl:value-of select="."/>] path=[<xsl:value-of > select="@path"/>]:</xsl:message> > <span class="{@role}"> > <xsl:choose><xsl:when test="@path"><xsl:call-template name="link"> > <xsl:with-param name="linkend" select="@path"/><xsl:apply-imports/> > </xsl:call-template></xsl:when> > <xsl:otherwise><a href="{$clisp.cvs.top}modules/{.}/"> > <xsl:apply-imports/></a></xsl:otherwise></xsl:choose></span> > </xsl:template> > > so far the "cvs" ("otherwise") part appears to work, but the "link" part > ("when") is broken: I get these messages: > > Module [rawsock] path=[rawsock]: > xsl:call-template: misplaced xsl:apply-imports > Module [fastcgi] path=[fastcgi]: > xsl:call-template: misplaced xsl:apply-imports > > if I follow > http://www.sagehill.net/docbookxsl/AddNewTemplate.html#AddProcessingSteps > and take <xsl:apply-imports/> _outside_ of <xsl:call-template > name="link">, I get the text ("gdbm") appear twice in the output: first > time formatted as a link and the second time formatted as a pathname, > instead of _once_ formatted both as a filename (<code class="filename">) > _and_ a link in the document. > > please help! > thanks! > Sam. > > PS. Bob, this is my 3rd attempt to send the message to the mailing list > in the last day, I do not see the first 2 messages on the list, and no > rejection or error messages, so I am lost. If you could be so kind to > reply to this message on the list, it would be very nice of you! Thanks! > >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]