Detta kapitel är framför allt av orienterande karaktär.
</para>
<sectionxml:id="dbpwr_bakgrund">
<title>Bakgrund</title>
<para>Docbook utvecklades ursprungligen av HaL och O'Reilly med början 1991.
1998 blev det en del av SGML Open Consortium, vilket senare blev <acronym>OASIS</acronym> (Organization for the Advancement of Structured Information Standards). </para>
<para>
Några punkter..
</para>
<itemizedlist>
<listitem><para>xml-grammatik för dokumentation, ssk teknisk, ssk hård- och mjukvara</para></listitem>
<listitem><para>Strukturerad uppmärkning baserat på innehåll, ej formatering (som ex.vis html).
Möjligt att skapa mer sökbara databaser.</para></listitem>
<listitem><para>Kan generera utdata i många olika format från en källa: html, pdf, manpages, rtf, txt, htmlhelp,
Utdata för olika plattformar från samma källa (t ex SuSE / RedHat / Windows) - profiling.
Utdata på olika språk från samma källa (med fallback).</para></listitem>
<listitem><para>Enkelt att integrera i byggrutinen för ett projekt. Make-filer, versionshantering.</para></listitem>
<listitem><para>OASIS-standard. Används av bl a: Sun, Microsoft, HP, Novell, Red Hat, och open source projekt som
Linux kernel, KDE, Gnome, debian, Ubuntu, Fedora, Free-BSD, LDP, m fl.</para></listitem>
<listitem><para>Möjligt att skapa stora korsrefererande dokumentationssystem från fristående komponenter.</para></listitem>
<listitem><para>Aktiv open source-utveckling av hela verktygskedjan.</para></listitem>
</itemizedlist>
<para>Fördelar: Alla ovan.</para>
<para>Nackdelar: många taggar, ej entydigt vilka man ska använda, inlärningskurva, sammansatt verktygskedja,
XML (om man inte gillar XML...).</para>
</section>
<sectionxml:id="dbpwr_verktyg">
<title>Vilka verktyg behövs?</title>
<para>Detta avsnitt beskriver verktygskedjan för Docbook, och hur man editerar och processar docbook-dokument.</para>
<sectionxml:id="dbpwr_vkedja">
<title>DocBook:s verktygskedja</title>
<itemizedlist>
<listitem><para>Vokabulären specificeras i ett <acronym>RELAX NG</acronym>
<footnote><para>REgular LAnguage for XML Next Generation, är en xml-vokabulär för att specificera xml-vokabulärer.
Det går att skriva <acronym>RELAX NG</acronym>-schemat i kompakt notation, men då är schemat inte själv ett xml-dokument.
<acronym>RELAX NG</acronym> används som schemaspråk för DocBook, OpenDocument (OpenOffice.org:s dokumentformat), m fl.
Ett alternativ till <acronym>RELAX NG</acronym> är W3C XML Schema.
</para></footnote>
schema fr o m Docbook v 5.0, tidigare användes en DTD (Document Type Definition).
Den har bantats ned och stramats upp fr o m 5.0, möjligen ej helt fryst ännu.
För detta dokument används v 5.05b.
Schemat behövs egentligen bara för validering och för editorer, och om man ska skriva egna stylesheets.</para></listitem>
<listitem><para>Stylesheets definierar hur docbookvokabulär transformeras till andra taggar för olika utformat.
Mallarna är skrivna i xsl (extensible stylesheet language) som också är en xml-vokabulär.
Tidigare användes dssl.
Senaste släppta versionen är docbook-xsl-1.69.1 (för detta dokument används en snapshot-version från sourceforge).
Huvudstylesheets för html, chunk, fo (formatted output), manpages etc. anropas.
Dessa använder sig av ett flertal gemensamma stylesheets.</para></listitem>
<listitem><para>En xslt-processor används för att generera utdata (.html, .fo, etc).
Man anropar den med indata och stylesheet som argument, enklast via en make-fil.
xsltproc är standard i många linuxdistributioner, ingår i libxslt.
Andra processorer finns, ex.vis saxon, xalan.
För detta dokument används en snapshot-version av libxslt från xmlsoft.org.</para></listitem>
<listitem><para>För att skapa utdata för papper (pdf, ps, rtf, txt)
får man processa den skapade .fo-filen ett steg till, med en xsl-fo-processor.
xsl-fo är en xml-vokabulär för att beskriva formaterad text.
Den innehåller information om hur texten ska se ut på pappret med fonter, textstorlek, pappersformat, styckeindelningar etc.
Den innehåller däremot ingen information om typsättning, radbrytningar, sidbrytningar och avstavning.
För att generera sådan information och utdatafiler i ex.vis pdf-format använder man en xsl-fo-processor.
xsl-fo-processorer är typsättningsmotorer, och det finns ett flertal kommersiella och öppna.
Många av dem fungerar bra för de flesta tillämpningar,
men ingen implementerar xsl-fo-standarden fullständigt.
Detta uppges bero på tre saker:
<orderedlist>
<listitem><para>Xsl-fo-standarden är ganska ny och omfattande.</para></listitem>
<listitem><para>Den har visat sig svårimplementerad i sin helhet.</para></listitem>
<listitem><para>Typsättning är svårt, generellt.</para></listitem>
</orderedlist></para>
<para>Den mest använda open source-processorn är Apache's javabaserade FOP.
Senaste stabila releasen var 0.20.5.
En helt omarbetad version 0.90 alfa gjordes tillgänglig nyligen.
För pdf-versionen av detta dokument används 0.92 beta.
En 1.0-version uppges kunna släppas snart.</para>
<para>Andra open source fop:ar: PassiveTeX och xmlroff.
Kommersiella: E3, XEP, XPP, XSL Formatter m fl. </para>
</listitem>
</itemizedlist>
</section>
<sectionxml:id="dbpwr_editorer">
<title>Editorer för DocBook</title>
<para>I princip kan vilken texteditor som helst användas.
Eftersom taggarna ofta är långa (inga förkortningar) blir det dock lätt omständligt utan xml-medveten editor.