Subject: XML Docbook

From: Karel Zak <[email-masked]>
Date: Fri, 14 Nov 2003 09:26:19 +0100

Hi,

 what use pure XML Docbook (non-SGML) for 7.5 PostgreSQL docs?

 XML advantage:

 - more clean and simple conversion into printable
   formats by FO (Formatting Objects),
 - needn't huge TeX stuff (!),
 - Java based XSLT/FO processors like FOP (support PDF, PCL, PS, SVG, Print,
   AWT, MIF and TXT),
 - conversion to HTML/MAN/etc by xsltproc,
 - XML based reference docs is usable for example in clients programs as
   standard help, because integrate XML parser into program is more simple and
   usual than SGML parser.

 I think the current docs build system is usable for normal user only if he wants
 to generate HTML docs, but for example it's useless if he wants PDF output...
 
 For example you can compare our current doc/src/sgml/Makefile with following 
 code for XML conversion:
 
 pdf:
    fop -xsl /path/to/stylesheet/xsl/fo/docbook.xsl -xml book.xml -pdf book.pdf
 
 ps:
    fop -xsl /path/to/stylesheet/xsl/fo/docbook.xsl -xml book.xml -ps book.ps

 html:
    xsltproc -o htmldir/ /path/to/stylesheet/html/chunk.xsl book.xml

 man:
    xsltproc /path/to/stylesheet/manpages/docbook.xsl ref.xml

  Comments?

  	Karel
-- 
 Karel Zak  <[email-masked]>
 http://home.zf.jcu.cz/~zakkr/

---

From: Jean-Michel POURE <[email-masked]>
Date: Fri, 14 Nov 2003 09:57:16 +0100

Le Vendredi 14 Novembre 2003 09:26, Karel Zak a écrit :
> What use pure XML Docbook (non-SGML) for 7.5 PostgreSQL docs?

Dear Karel,

For information, how do you  plan to translate XML Docbook format?

Is there an easy way to parse XML Docbook and import/export the text into 
Gettext format? I was thinking using PHP, but I would prefer using a legacy 
script. Do you know any?

Best regards,
Jean-Michel Pouré

---

From: Karel Zak <[email-masked]>
Date: Fri, 14 Nov 2003 10:19:05 +0100

> For information, how do you  plan to translate XML Docbook format?

 KDE project use XML docbook and I think they have same problems and
 maybe already solutions too :-)

 http://i18n.kde.org/translation-howto/doc-translation.html

    Karel

---

From: Jean-Michel POURE <[email-masked]>
Date: Fri, 14 Nov 2003 10:30:00 +0100

Dear Karel,

Nice link with detailed information.
This is a valid reason for moving to XML docbook.

Cheers, Jean-Michel

---

From: Peter Eisentraut <[email-masked]>
Date: Fri, 14 Nov 2003 10:32:10 +0100 (CET)

>  XML advantage:

All very true.

XML disadvantage:

- no arbitrary parameter entities

If someone can solve this for me, I'm ready to switch.

Follow-up to [email-masked] please.

-- 
Peter Eisentraut   [email-masked]

---

From: Karel Zak <[email-masked]>
Date: Fri, 14 Nov 2003 10:45:48 +0100

> - no arbitrary parameter entities

 I unsure if I understand, can you show some example of this problem?

 I think there is  a lot of XML Docbook docs in a  lot of projects and I
 will wonder if in the PostgreSQL docs is something special what disable
 use XML instead SGML.

> Follow-up to [email-masked] please.

 Hmm.. I must subscribe first :-)

    Karel

---

From: Peter Eisentraut <[email-masked]>
Date: Fri, 14 Nov 2003 20:16:30 +0100 (CET)

>  I unsure if I understand, can you show some example of this problem?

SGML and XML allow you to disable certain parts of your document, by
writing

<![IGNORE[
<stuff>...</stuff>
]]>

The opposite of IGNORE is INCLUDE.  Think of this as a preprocessing
stage.  You can also make the IGNORE/INCLUDE variable, by declaring a
"parameter entity", think of it as a variable.  This is declared like
this:

<!entity % myvar "IGNORE">

Then you can write

<![%myvar;[
<stuff>...</stuff>
]]>

and toggle the myvar somewhere.  For example, OpenJade allows you to do
this on the command line.

We use this feature to generate files like INSTALL and HISTORY from the
documentation sources.  The files are almost like the corresponding
chapters, but in some cases we use this as a kind of if/then/else to
adjust the content for the different contexts.  For example, you cannot
have links in INSTALL, because the rest of the documentation is not there
to link to.

Now, the problem in XML is that it no longer allows arbitary parameter
entities; that is, you can only hardcode IGNORE or INCLUDE, but not toggle
it anywhere.  So there is no straightforward conversion path for our
requirements.

If anyone can come up with a good solution for this problem, we can
convert to DocBook XML the next day.

---

From: Karel Zak <[email-masked]>
Date: Thu, 20 Nov 2003 09:37:05 +0100

> <!entity % myvar "IGNORE">

 One  Czech XML  guru  suggest  me use  for  this "profiling". For  more
 information see:
 
    http://www.sagehill.net/docbookxsl/Profiling.html

 An example:

 <para os="windows">WinText</para>
 
 and when  you apply XSL template  you can use template  with "profile-"
 prefix  (profile-docbook.xsl,  profile-chunk.xsl)   and  define  option
 profile.os="windows".

 The other thing are INCLUDEs, I think best way is use W3C's <xinclude>.
 The  "xsltproc" support  it (--xinclude  option) and  for others  tools
 which doesn't support  it you can use common tool  "xmllint" that merge
 all to one temporary file:

 xmllint --xinclude --postvalid book.xml tmp.xml
 fop -xsl /path/file.xsl -xml tmp.xml -pdf book.pdf
 rm -f tmp.xml
 
 Comments?
 
    Karel

---

From: Peter Eisentraut <[email-masked]>
Date: Thu, 20 Nov 2003 10:33:14 +0100 (CET)

>     http://www.sagehill.net/docbookxsl/Profiling.html

Sounds like a plan.

I think as a first step we should upgrade to SGML DocBook 4.2.  Anyone
want to dig out the old patch for that?

---

From: Karel Zak <[email-masked]>
Date: Thu, 20 Nov 2003 17:54:18 +0100

> want to dig out the old patch for that?

 Is it needful upgrade to SQGML 4.2 and next to XML? Why not directly to
 XML?

 I can try  do it (on December  or soon if I will  have time). I already
 overhaul some docs from SGML to XML.
 
    Karel