Emacs

Jirka Kosek jirka na kosek.cz
Úterý Listopad 19 17:25:20 CET 2002


Jiri_Navratil na orcz.cz wrote:

> Pokud externi textove entity lze nacist pouze v hlavnim dokumentu,
> a na dokumentaci pracuje nekolik lidi, kteri maji na starost dejme tomu
> psani jednotlivych
> kapitol a v nich pouziji entity, jak si mohou zvalidovat svoji cast
> dokumentace
> ( mne to rve prave na neexistenci mnou pouzitych entit ).

V zásadě jsou dvě možnosti. 

Pro zpracování kapitoly si udělat malý pomocný soubor, který bude
obsahovat !DOCTYPE načte entity a jako entitu načte i tu jednu kapitolu.

Druhá možnost je používat pro vkládání kapitol XInclude. V tomto případě
může mít každá kapitola vlastní !DOCTYPE i načítat entity.

<?xml version='1.0' encoding='windows-1250'?>
<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'
               'http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd'>
<book lang="cs" xmlns:xi="http://www.w3.org/2001/XInclude">
  <bookinfo>
    <title>Velká kniha</title>
    <subtitle>Složená z několika entit</subtitle>
  </bookinfo>
  <preface>
    <title>Úvod</title>
    <para>Následuje několik sice nesouvisejících kapitol, ale na
ukázku to stačí ne?</para>
  </preface>
  <xi:include href="inline.xml"/>
  <xi:include href="callouts.xml"/>
  <xi:include href="obrazky.xml"/>
  <xi:include href="seznamy.xml"/>
  <xi:include href="tabulky.xml"/>
  <xi:include href="trida.xml"/>
  <xi:include href="reference.xml"/>
</book>

Jednotlivé soubory s kapitolami pak vypadají takto:

<?xml version='1.0' encoding='windows-1250'?>
<!DOCTYPE chapter PUBLIC '-//OASIS//DTD DocBook XML V4.2//EN'
                 
'http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd'>
<chapter lang="cs">
<title>...</title>
...
</chapter>

Pokud chceme hlavní dokument validovat, musíme parseru říci, aby
validaci provedl až po složení celého dokumentu (volbou --postvalid
místo --valid):

xmllint --xinclude --postvalid --noout dokument.xml

Při zpracování dokumentu XSL styly musíme zapnout podporu XInclude
pomocí parametru -- xinclude. Např. pro převod do jedné HTML stránky
použijeme:

xsltproc --xinclude -o dokument.html c:/docbook/xsl/html/docbook.xsl
dokument.xml

Můžeme použít i jiné nástroje než xsltproc (třeba Saxon nebo Jade), ale
v tom případě si musíme složený dokument vygenerovat do nějakého
dočasného souboru:

xmllint --xinclude --postvalid dokument.xml > temp.xml
jade -d print.dsl -t rtf c:\jade\xml.dcl temp.xml


-- 
-----------------------------------------------------------------
  Jirka Kosek  	                     
  e-mail: jirka na kosek.cz
  http://www.kosek.cz


Další informace o konferenci Docbook