Hi Ross, The problem seems to be that I am using a custom DTD. If I change the DOCTYPE in the source XML file to point to the Apache Forrest document-v20.dtd (rather than my own custom DTD) and remove "a" from the "link" template, then the <a> elements are indeed converted to <link> elements in the internal XML file.
When the DOCTYPE of the source XML file points to my own custom DTD, and I add "a" to the "link" template, the "basic-link" elements in the .fo file do contain the appropriate "internal-destination"/"external-destination" attribute. So it seems to be a spurious error message. Any ideas what to try next? Thanks for your help, Steve -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ross Gardler Sent: 01 June 2007 09:12 To: user@forrest.apache.org Subject: Re: Broken linkmap.pdf On 31/05/07, Steve Odlind <[EMAIL PROTECTED]> wrote: > > My 0.7 docs contained numerous external <a href="http://www..."> and > internal <a href="#..."> references, which were not included in site.xml. > > When I upgraded to 0.8, I noticed that these links were ignored in PDFs. > Looking at document-to-fo.xsl, it seems that there is no <template > match="a">, only a <template match="link|fork|jump">. When I change this > template to <template match="a|link|fork|jump">, the build breaks with the > following error message: > > "linkmap.pdf BROKEN: internal-destination or external-destination must be > specified in basic-link" > > The PDFs are then generated with working links, so this is not so much of a > problem, as the only thing affected is linkmap.pdf. But it would be nice to > have a successful build. > > Does anyone know what I have to do to get rid of this error message, and > still have links that work in PDF? Do I have to change all my <a href=""> > references to <link href="">? You are using the v2.0 DTD, so no, do not change your links. > The version 0.8 document-v20.mod does not contain entries for "link", "fork" > or "jump", but they are inlcuded in document-to-fo.xsl? Whereas "a" is > included in document-v20.mod, but not in document-to-fo.xsl. Is this an > oversight, or have I missed something? There is no match for "a" elements since that element is only valid in our XDoc 2.0. internally Forrest uses XDoc 1.3, which only supports "link|fork|jump". The conversion from 2.0 to 1.3 is done prior to the use of document-to-fo.xsl. This was also the case in Forrest 0.7, it has not changed in the 0.8 release. --- Given that the error you describe is not affected by any known change that I can think of it sounds like it is either a strange side effect in your site, or it is an error in your content. Here's a few debugging steps we can try: using your original source files and an unmodified document-to-fo.xsl file request http://localhost:8888/testpage.xml This will give you the internal XML that will be fed into the document-to-fo.xsl stylesheet. Inspect this file for anything strange, you should see that it is now using the 1.3 version of the DTD and that all links have been converted from "a" to "link|fork|jump" as appropriate. Now request http://localhost:8888/testpage.fo this will give you the formatting objects file used to create the PDF. Inspect this file paying particular attention to the links that you expect to see. If this doesn't highlight any specific problems then post snippets of the source, internal xml and FO files. It may trigger a thought in someones mind. Ross ______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________