[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] HTML links not being created in my indexes
Hey!
Thanks for your feedback. Here's what I found:
- Saxon 8.5 (the latest version) is not supported. You probably knew
that already. However, here's the error message:
Don't know how to chunk with SAXON 8.5 from Saxonica
Failed to process /Users/hendrik/IdeaProjects/performance/indextest.xml
/Users/hendrik/IdeaProjects/performance/build.xml:121:
net.sf.saxon.instruct.TerminationException: Processing terminated by
xsl:message at line 45
at org.apache.tools.ant.taskdefs.XSLTProcess.process
(XSLTProcess.java:466)
[...]
- Saxon 6.5.4
+ bundled with Aelfred, which is not able to validate XML, so I
had to turn validation off in other parts of my build process. I am
sure that there is a way to work around Aelfred, but that would have
meant to spend even more time on this
+ Aelfred seems to have a problem resolving the DTD mods. When
using an xmlcatalog for the docbook DTD, it produces the following
errormessage:
java.net.MalformedURLException: no protocol: dbnotnx.mod
at java.net.URL.<init>(URL.java:567)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at com.icl.saxon.aelfred.XmlParser.pushURL(XmlParser.java:3614)
at com.icl.saxon.aelfred.XmlParser.parsePEReference
(XmlParser.java:1841)
[...]
Without the xmlcatalog pointing to local file it works just fine.
This means that, if I want to stick with Aelfred, I cannot use
xmlcatalogs for resolving DTDs to local files, which means that I
cannot work offline, which is not what I really wanted... Maybe I
really have to look into how to make sure I am not using Aelfred...
+ The XSLT processor that comes with JDK 1.4.2 is able to write
chunks relative to the output directory specified in the out
attribute of the xslt Ant task. Saxon does not do that. After some
searching I find http://www.sagehill.net/docbookxsl/
Chunking.html#HtmlOutputDir which tells me that I have to specify a
base.dir parameter. This indeed works.
So my final Ant target looks something like this:
<target name="indextest">
<!-- xmlcatalog for offline working - does unfortunately not
work with Aelfred -->
<!-- <xmlcatalog id="commonDTDs">
<dtd
publicId="-//OASIS//DTD DocBook XML V4.4//EN"
location="${somewhere in your filesystem}/
docbookx.dtd"/>
</xmlcatalog> -->
<xslt style="${docbook.xsl}/html/chunk.xsl"
destdir="indextest" force="true">
<!-- the following is the name of the factory for Saxon
8.5, as suggested by the Ant XSLT docs. -->
<!-- <factory name="net.sf.saxon.TransformerFactoryImpl"/
> -->
<!-- the following is the name of the factory for Saxon
6.5. This works! -->
<factory name="com.icl.saxon.TransformerFactoryImpl"/>
<!-- you need this following parameter to write the
output to a different directory. trailing slash is important! -->
<param name="base.dir" expression="indextest/"/>
<!-- xmlcatalog does not work with Aelfred -->
<!-- <xmlcatalog refid="docbookDTD"/> -->
<!-- finally the XML docbook documents you want to
process -->
<include name="indextest.xml"/>
</xslt>
</target>
- JDK 1.5 (5.0): When trying to run this with JDK 1.5.0_02-56 on
MacOSX10.4, you get the following:
javax.xml.transform.TransformerConfigurationException: Could not load
the translet class 'chunk'.
at
com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl.defineTransle
tClasses(TemplatesImpl.java:315)
[...]
The stacktrace gives away the fact that there is a Xalan underneath.
Well, at least on JDK 1.4.2 it ran - even though it didn't produce
any links in the indexes. JDK 1.5 does not even give me that... This
is disappointing. <sarcasm>Aren't they supposed to make things better
when they move to a higher version...?</sarcasm> Oh, well.
Lastly with Saxon 6.5.4/JDK 1.5 and the steps described above I got a
really nice index, linked and everything.
Thanks a lot guys!
-hendrik
tagtraum industries incorporated
http://www.tagtraum.com/
On Aug 27, 2005, at 4:09, Mauritz Jeanson wrote:
>> -----Original Message-----
>> From: Hendrik Schreiber
>>
>
>
>> Unfortunately none of the index entries in the generated index are
>> actual functional links to the referenced sections. Blaine Simpson
>> seemed to have had the same problem, but it wasn't solved (http://
>> sourceware.org/ml/docbook/2004-04/msg00027.html).
>>
>> Here's an example:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://
>> www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ ]>
>> <book>
>> <chapter>
>> <title>Title</title>
>> <para>First Para
>> <indexterm>
>> <primary>IndexTerm in first para</primary>
>> </indexterm>
>> </para>
>> <sect1>
>> <title>
>> <indexterm>
>> <primary>IndexTerm in sect1 title</primary>
>> </indexterm>
>> </title>
>> <para>Sect1 para
>> <indexterm>
>> <primary>IndexTerm in sect1 para</primary>
>> <secondary>IndexTerm in sect1 para</secondary>
>> </indexterm>
>> </para>
>> </sect1>
>> </chapter>
>> <index/>
>> </book>
>>
>
>
> When I tested this document with Saxon 6.5.4, I did get one working
> index
> link (to the chapter title), but the others were missing.
>
> Missing index links is a known issue[1] with at least one version
> of Xalan
> (you say that you use Java 1.4.2, and it might actually be Xalan
> behind the
> scenes; I forget the details).
>
> There is another problem: the title element in the sect1 contains only
> whitespace + an indexterm. Although this is valid markup, the
> processing
> expectations[2] imply that indexterms are not supposed to be
> rendered in the
> primary flow of the document. An index link points to a title, but
> in this
> case the title is empty. It works better with some text in there.
>
> [1] http://lists.oasis-open.org/archives/docbook-apps/200406/
> msg00238.html.
> [2] http://docbook.org/tdg/en/html/indexterm.html
>
>
> /MJ
>
>
>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]