aboutsummaryrefslogtreecommitdiffhomepage
path: root/DOCS/xml/README
blob: 04fd9f55767ff7e80cf1e6232dabd0c66da5a577 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Tools required for building the documentation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* DocBook 4.1.2 or later
* The DocBook XML DTD (also known as DocBk XML)
* DocBook XSL stylesheets -- version 1.50.0 or later is recommended.

I am not quite sure which tools work, but I used the following
ones successfully, so they are required:

* xmllint (part of libxml2) is used for validation.
* xsltproc (part of libxslt1) is used for transforming XML files into HTML
  files.  Version 1.0.18 or later is recommended.

Also it's possible to use the Saxon XSLT Processor. Russian translator
used it (version 6.4.4) for a while. To enable it change USE_SAXON to 1 in
the Makefile.


Building the documentation
~~~~~~~~~~~~~~~~~~~~~~~~~~

1) Before trying to build the documentation, run

	make test

   to see if everything is set up properly.  If something goes wrong,
   check the Configuration section of the toplevel Makefile and adjust
   the variables.


2) Now simply run

	make all

   to build the documentation.


A few words about SGML catalog files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

As far as I know, the document type declaration in XML files requires
both a public and a system identifier.  For example:

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
	"/usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd">

where

	"-//OASIS//DTD DocBook XML V4.1.2//EN"

is the public, and

	"/usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd"

is the system identifier.

The problem is that the system identifier is most probably system-dependent.
To avoid the need to manually fix the system identifiers before building the
documentation, I've decided to use SGML catalogs.  If you have your catalogs
set up correctly, xmllint and xsltproc will use them to find the DTDs
based on the public identifiers.

Note that this works only if public identifiers override system identifiers
(i.e. the catalog file must contain 'OVERRIDE YES').  (I had no problem with
these on my system, since the Debian people took care of everything. ;-))


--
Andras Mohari