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