OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [docbook-apps] textobject/textdata for external program code

On Thu, Jun 12, 2003 at 04:38:23PM +0100, Rob.Exley@equifax.com wrote:
> I am currently writing a technical spec using DocBook XML 4.2 and
> publishing using Cocoon 2.0.4 with Saxon 6.5.2 and docbook-xsl-1.61.2.
> I have been experiencing problems including external DTD files (and xml
> documents) within an appendix of the document and have finally succeeded by
> using a textdata element within a textobject nested in a programlisting
> element. However I seem to have encountered two problems specifically with
> this:
> I have been forced to use the fileref attribute of the textdata object and
> hard-code the path to the external document. I would ideally have liked to
> us an entityref and then define all my external entities at the top of the
> document. This however seem to give me blank output for both html and pdf
> output. The following was my original document snippet
> <?xml version="1.0"?>
> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
> "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
> <!ENTITY generic-request.dtd SYSTEM
> "/home/r_exley/tmp/code/xml/generic-request.dtd">
> ]>
> .
> .
> .
> <section>
>   <title>generic-request.dtd</title>
>   <programlisting>
>     <textobject>
>       <textdata entityref="generic-request.dtd" />
>     </textobject>
>   </programlisting>
> </section>
> .
> .
> .
> I have since replaced the textdata element in the above with
>       <textdata fileref="/home/r_exley/tmp/code/xml/generic-request.dtd" />
> and this gives me the expected output. My assumption for using the
> entityref approach was that I could extend this to make advantage of
> catalogs.

The entity pointed to by an entityref must have an NDATA type
as declared in the DTD. DocBook declares linespecific
for this, so change your entity declaration to:

<!ENTITY generic-request.dtd SYSTEM
"/home/r_exley/tmp/code/xml/generic-request.dtd" NDATA linespecific>

Then the entityref should work.  The validation process
should have pointed out this problem.

> Also in the pdf output resulting from this, the first line for each
> included text file is indented, this is somewhat strange and throws the
> formatting out (and looks ugly). This only occurs in the pdf output, the
> html output is fine.

Inside a programlisting element, all white space is preserved,
including that before and after your textobject.  So change
it to:

        <textdata entityref="generic-request.dtd" />

The whitespace inside textobject should be ignored, though.


Bob Stayton                                 400 Encinal Street
Publications Architect                      Santa Cruz, CA  95060
Technical Publications                      voice: (831) 427-7796
The SCO Group                               fax:   (831) 429-1887
                                            email: bobs@sco.com

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]