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

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook message

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


Subject: Re: DOCBOOK:


/ ekkehard.goerlach@pharma.Novartis.com was heard to say:
| The tricky bit comes in, when I want to have each book separately *and*
| want to freely crossreference. For the separate books I have for each of
| them a 'shell' xml file containing the DT and entity declarations. Thus I
| can have a PDF just for that book but I can't reference a chapter in Book2
| from whithin Book1 (I could do that in the big set document but then I
| could no longer use the same xml content files in the separate books).

If you're content to have them in one great big (logical) file, just
processing the right chunk is fairly easy. In XSL, you can just specify
the ID of the element that you want to start processing with. For DSSSL,
I think you'd have to craft a driver, along these lines:

(define ROOTID #f)
;(define ROOTID "dbre.pent.x.mix")

(root
    (if html-help
	(make sequence
	  (if ROOTID
	      (process-element-with-id ROOTID)
	      (process-children))
	  (with-mode filelist
	    (process-children))
	  (with-mode manifest
	    (process-children)))
	(if ROOTID
	    (process-element-with-id ROOTID)
	    (process-children))))

With OpenJade, I think you could even pass in the ROOTID on the
command line.

| Here comes the OLink. To use it, as far as I can see, I have to switch from
| xml to sgml as the xml DTD does not allow subdocuments (no big difference,

Oh, I see. You want to be able to process the entire set sometimes and
the individual books sometimes. Yes, that's harder.

| I am using Emacs/psgml). But the crucial thing is, that I have to use 'late
| binding' for the OLinks because they are used in both cases, when the HTML
| version of everything is generated and in the case only one of the books is
| rendered in PDF. For the HTML version I don't know in advance the filenames
| generated (a section might end up in x1911.html). Thus the necessity to
| maintain a cgi-bin script to resolve the links in the HTML case.

The OLink machinery I pointed you to before contains a solution to this
problem. But it does require a couple of steps. Basically, you run a special
"olink stylesheet" that produces a mini-toc:

<!DOCTYPE div PUBLIC "-//Norman Walsh//DTD DocBook OLink Summary V1.1//EN">
<div
type="article"
name="Article"
href="olinktarget.html"
id="A1"
><ttl
>OLink Test Document</ttl
><div
type="sect1"
name="Section"
href="olinktarget.html#A1S1"
id="A1S1"
label="1"
...
></div

The stylesheets can then consult this file to determine the right file
names.

                                        Be seeing you,
                                          norm

-- 
Norman Walsh <ndw@nwalsh.com>      | Nothing is more depressing than
http://www.oasis-open.org/docbook/ | consolations based on the
Chair, DocBook Technical Committee | necessity of evil, the uselessness
                                   | of remedies, the inevitability of
                                   | fate, the order of Providence, or
                                   | the misery of the human condition.
                                   | It is ridiculous to try to
                                   | alleviate misfortune by observing
                                   | that we are born to be
                                   | miserable.--Montesquieu


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


Powered by eList eXpress LLC