<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//NL">
<HTML>
<HEAD>
 <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <META NAME="GENERATOR" CONTENT="lfparser_2.28">
 <META NAME="LFCATEGORY" CONTENT="Applications">
 <TITLE>lf201, Applications: DocBook XML documenten bewerken</TITLE>
<style type="text/css">
<!--
 td.top {font-family: Arial,Geneva,Verdana,Helvetica,sans-serif; font-size:12 }
 pre { font-family:monospace,Courier }
 p.cl { color:#EE9500 }
 a.nodec { text-decoration:none }
 p.trans { font-size:8pt; text-align:right }
 p.clbox { width:50%; alignment:center; background-color:#FFD700; 
           border-style:none; border-width:medium; border-color:#FFD700; 
           padding:0.5cm;  text-align:center }
 p.code { width:80%; alignment:center; background-color:#aedbe8; 
          border-style:none; border-width:medium; border-color:#aedbe8; 
          padding:0.1cm;  text-align:left }
 p.foot { background-color:#AAAAAA; color:#FFFFFF; border-style:none; 
          border-width:medium; border-color:#AAAAAA; padding:0.5cm ; 
          margin-top:0.1cm; margin-right:1cm; margin-left:1cm; 
          text-align:center }
 .mark  { background-color:#e6e6ff }
-->
</style>
 
</HEAD>
<BODY bgcolor="#ffffff" text="#000000">
 <!-- this is generated html code. NEVER use this file for your
 translation work. Instead get the file with the same article number
 and .meta.shtml in its name. Translate this meta file and then
 use lfparser program to generate the final article -->
 <!-- lfparser can be obtained from http://www.linuxfocus.org/~guido/dev/lfparser.html -->

<!-- this is used by a number of tools:
 =LF=AUTHOR: Egon Willighagen
 =LF=CAT___: Applications
 =LF=TITLE_: DocBook XML documenten bewerken
 =LF=NUMBER: 201
 =LF=ANAME_: article201.shtml
 -->

<!-- 2pdaIgnoreStart -->

<!-- start navegation bar -->
 <!-- top navegation bar -->
 <TABLE summary="topbar_1" cellspacing="0" cellpadding="0" border="0" align="center" width="90%">
   <TR bgcolor="#2e2292">
     <TD class="top"><TABLE summary="topbar_1_logo" cellspacing="0" cellpadding="0" border="0" width=
       "100%">
         <TR><TD width="319"><IMG src="../../common/images/logolftop_319x45.gif"
           alt="[LinuxFocus-icon]" width="319" height="45" align="left" 
           border="0"></TD>

           <TD class="top">
             <TABLE summary="topbar_1_links" width="100%">
               <TR align="right">
                 <TD class="top"><A class="nodec" href="../index.shtml"><FONT color=
                 "#DDDDDD" size="2">Home</FONT></A> &nbsp;|&nbsp; <A class=
                 "nodec" href="../map.html"><FONT color=
                 "#DDDDDD" size="2">Map</FONT></A> &nbsp;|&nbsp; <A class=
                 "nodec" href="../indice.html"><FONT color=
                 "#DDDDDD" size="2">Index</FONT></A> &nbsp;|&nbsp; <A class="nodec" href="../Search/index.html"><FONT color=
                 "#DDDDDD" size="2">Zoek</FONT></A> </TD>
               </TR>

               <TR align="right">
                 <TD class="top">
                   <HR width="100%" noshade size="1">
                 </TD>
               </TR>
             </TABLE>
           </TD>
         </TR>
       </TABLE>
     </TD>
   </TR>
 </TABLE>
 <!-- end top navegation bar -->
 <!-- blue bar -->
 <TABLE summary="topbar_2" cellspacing="0" cellpadding="0" border="0" align="center"
 width="90%">
   <TR bgcolor="#00ffff">
     <TD><IMG src="../../common/images/transpix.gif" width="1" height=
     "2" alt=""></TD>
   </TR>
 </TABLE>
 <!-- end blue bar -->
 <!-- bottom navegation bar -->
 <TABLE summary="topbar_3" cellspacing="0" cellpadding="0" border="0" align="center"
 width="94%">
   <TR bgcolor="#000000">
     <TD>
       <TABLE summary="topbar_3_links" cellspacing="0" cellpadding="1" border="0" width=
       "100%">
         <TR align="center">
           <TD WIDTH="20%"><A class="nodec" href="../News/index.html"><FONT color=
           "#FFFFFF">Nieuws</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../Archives/index.html"><FONT color=
           "#FFFFFF">Archieven</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../Links/index.html"><FONT color=
           "#FFFFFF">Links</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../aboutus.html"><FONT color=
           "#FFFFFF">Over LF</FONT></A> </TD>
         </TR>
       </TABLE>
     </TD>
   </TR>
 </TABLE>
 <!-- end bottom navegation bar -->
<!-- stop navegation bar -->

<!-- SSI_INFO -->

<!-- tr_staticssi include virtual -->
<!-- tr_staticssi exec cmd -->
<!-- addedByLfdynahead ver 1.1 --><TABLE ALIGN="right" border=0><TR><TD ALIGN="right"><FONT SIZE="-1" FACE="Arial,Helvetica">Dit artikel is beschikbaar in: <A href="../../English/May2002/article201.shtml">English</a> &nbsp;<A href="../../Castellano/May2002/article201.shtml">Castellano</a> &nbsp;<A href="../../ChineseGB/May2002/article201.shtml">ChineseGB</a> &nbsp;<A href="../../Deutsch/May2002/article201.shtml">Deutsch</a> &nbsp;<A href="../../Francais/May2002/article201.shtml">Francais</a> &nbsp;<A href="../../Italiano/May2002/article201.shtml">Italiano</a> &nbsp;<A href="../../Nederlands/May2002/article201.shtml">Nederlands</a> &nbsp;<A href="../../Portugues/May2002/article201.shtml">Portugues</a> &nbsp;<A href="../../Turkce/May2002/article201.shtml">Turkce</a> &nbsp;</FONT></TD></TR></TABLE><br>
 


<!-- SSI_INFO STOP -->
<!-- 2pdaIgnoreStop -->

<!-- SHORT BIO ABOUT THE AUTHOR -->
<TABLE ALIGN=LEFT BORDER=0  WIDTH="190" >
<TR>
<TD>

<!-- 2pdaIgnoreStart -->
<!-- PALM DOC -->
<TABLE BORDER=0 hspace=4 vspace=4> <TR> <TD>
<font size=1> <img src="../../common/images/2doc.gif" width=34 align=left border=0 height=22 alt="convert to palm"><a href="http://cgi.linuxfocus.org/cgi-bin/2ztxt">Convert to GutenPalm</a><br>or <a href="http://cgi.linuxfocus.org/cgi-bin/2pda">to PalmDoc</a></font>
</TD> </TR> </TABLE>
<!-- END PALM DOC -->
<!-- 2pdaIgnoreStop -->
<br>
<IMG src="../../common/images/EgonWillighagen.jpg" alt="[Egon Willighagen]" height="102" width="79">
<BR>door  Egon Willighagen <br> <small>&lt;egonw(at)linuxfocus.org&gt;</small>
<BR><BR>
<I>Over de auteur:</I><BR>
<P>Haalde zijn masters degree in de chemie aan de Universiteit van Nijmegen
 en doet daar nu ook zijn PhD onderzoek naar moleculaire representatie.
 Speelt basketbal en programmeert Java toepassingen.</P>
<!-- TRANSLATED TO nl -->
<BR><BR><I>Vertaald naar het Nederlands door:</I><BR>
Floris Lambrechts <small>&lt;floris(at)linuxfocus.org&gt;</small>
<br>
<!-- TRANSLATED TO STOP -->
<BR><i>Inhoud</i>:
<UL>
  <LI><A HREF="#201lfindex0">Introductie</A></LI>
  <LI><A HREF="#201lfindex1">Kate</A></LI>
  <LI><A HREF="#201lfindex2">Het maken van de Meta DTD</A></LI>
  <LI><A HREF="#201lfindex3">Het schrijven</A></LI>
  <LI><A HREF="#201lfindex4">KDE DocBook</A></LI>
  <LI><A HREF="#201lfindex5">MathML en SVG</A></LI>
  <LI><A HREF="#201lfindex6">Conclusie</A></LI>
  <LI><A HREF="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=201&amp;lang=en">Talkback voor dit artikel</A></LI>
</UL>

</TD></TR></TABLE>
<!-- HEAD OF THE ARTICLE -->
<br>&nbsp;
<H2>DocBook XML documenten bewerken</H2>
 <IMG src="../../common/images/article201/logo.png" width="42" height="44" alt="[Illustratie]" hspace="10">
<!-- ABSTRACT OF THE ARTICLE -->
<P><i>Kort</i>:
<P>
<P>Dit artikel beschrijft het gebruik van Kate en z'n XML plugin voor het schrijven
 van DocBook XML documenten.</P>
<br><br><!-- HR divider --><table width="300" align="center" border="0">
<tr>
  <td bgcolor="#8282e0"><IMG src="../../common/images/transpix.gif" width="1" height="2" alt=""></td>
</tr>
</table>
<!-- BODY OF THE ARTICLE -->


    <A NAME="201lfindex0">&nbsp;</A>
<H2>Introductie</H2>


    <P>XML bewerken met OpenSource was lange tijd geen sinecure. Je hebt een
 editor nodig die geldige XML produceert, en zo mogelijk het resultaat ook
 meteen weergeeft. Er zijn editors die dit alles kunnen, maar ze zijn meestal niet 'open'.
 De editors uit de open hoek geven geen grafisch resultaat weer, maar ze helpen
 wel om geldige XML te schrijven en ze adviseren je over de elementen die
 je mag gebruiken op een bepaalde plaats in het document.</P>

    <P>Er is uiteraard Emacs met z'n DocBook minor mode, die best goed werkt
 (zie het vorige <A href="../May2000/article152.shtml">DocBook artikel</A>).
 Deze speciale mode maakt het mogelijk om elementen te kiezen uit een lijst
 die afhankelijk is van de elementen die al aanwezig zijn. En ook
 tab-completion, gebaseerd op dezelfde info, is mogelijk.</P>

    <P>Dit artikel echter, gaat over Kate als een editor voor DocBook / XML.</P>

    <A NAME="201lfindex1">&nbsp;</A>
<H2>Kate</H2>

    <A href="http://www.kde.org/kate">Kate</A> is &eacute;&eacute;n van de editors
 van de KDE desktopomgeving. Het is vrij licht, heeft ondersteuning voor meerdere
 open documenten en heeft syntax kleuring (<em>highlighting</em>), ook voor XML.
 Nog interssanter is de XML plugin die Daniel Naber vorig jaar schreef.
 Die kan je helpen om geldige XML te schrijven. In
 <A href="http://www.kde.org/announcements/announce-3.0.html">KDE 3.0</A>
 zit deze Kate-plugin in het kde-addon pakket. Als je dat nog moet installeren,
 kan je dat doen door een binaire versie te installeren, ofwel
 door het te compileren uit de broncode:
<PRE>
./configure --prefix=/pad/waar/je/kde3/staat
make
sudo make install
</PRE>

    <P>Wanneer de plugin ge&iuml;nstalleerd is, moet je Kate hiervan op
 de hoogte stellen. Ga naar "Kate instellen" in het "Instellingen" menu.
 In de "Plugins" beheerder zet je de XML in de lijst met geladen plugins :</P>

    <CENTER>
      <IMG src="../../common/images/article201/pluginmanager.png" width="586" height="540" alt="[Kate's plugin manager]">
    </CENTER>
 Noot van de vertaler: Kate kent ook Nederlands!

    <A NAME="201lfindex2">&nbsp;</A>
<H2>Het maken van de Meta DTD</H2>


    <P>Meta DTDs worden gemaakt met
 <A href="http://www.nwalsh.com/perl/dtdparse/index.html">dtdparser</A> van Norman Walsh,
 waarvan de pakketten op <A href="http://sf.net/project/showfiles.php?group_id=30351">SourceForge.net</A>
 staan.</P>

    <P>Ik gebruikte een licht aangepaste versie 2.0beta6. Bijvoorbeeld het eerste
 lijntje van het dtdparse programma moest ik aanpassen om naar de juiste plaats
 van mijn Perl installatie te verwijzen. Het programma draaien geeft iets als:</P>
<PRE>
&gt; ./dtdparse /pad/naar/docbookx.dtd
Public ID: unknown
System ID: /usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd
SGML declaration: unknown, using defaults for xml and namecase
Loading dbnotnx.mod
Loading dbcentx.mod
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsa.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsb.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsc.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsn.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamso.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsr.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISObox.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr1.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr2.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOdia.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk1.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk2.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk3.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk4.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat1.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat2.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOnum.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOpub.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOtech.ent
Loading dbpoolx.mod
Loading calstblx.dtd
Loading dbhierx.mod
Loading dbgenent.mod
Parse complete.
Writing docbookx.dtd.xml...
Done.
</PRE>

    <P>Merk op dat er veel 'entities' geladen worden. Mede hierdoor is de resulterende
 Meta DTD 1.63 <A href="http://slashdot.org/comments.pl?sid=26830&amp;cid=2896481">Mibibytes</A>
 groot. Maar met een XSLT processor zoals <A href="http://xmlsoft.org/XSLT/xsltproc2.html">xsltproc</A>
 kan dit verkleind worden tot 0.96 MiB met de simplify_dtd.xsl stylesheet van het
 kde-addon pakket:</P>
<PRE>
&gt; xsltproc simplify_dtd.xsl docbookx.dtd.xml &gt; docbook-xml-4.1.2.dtd.xml
</PRE>

    <P>Het aangemaakte docbook-xml-4.1.2.dtd.xml kun je dan kopi&euml;ren
 naar /pad/naar/kde3/share/apps/katexmltools/, waar /pad/naar uiteraard
 het pad is naar de map waar je KDE3 ge&iuml;nstalleerd staat.
 In je homedir is ook een mogelijkheid, want de XML plugin zal je naar een
 bestandsnaam vragen wanneer je een nieuwe Meta DTD toewijst (zie verder).</P>

    <A NAME="201lfindex3">&nbsp;</A>
<H2>Het schrijven</H2>


    <P>Bij het starten van een nieuwe DocBook XML document moet je een Meta DTD
 toewijzen. Dit doe je door "Assign Meta DTD" te kiezen in het "XML
 Plugin" menu. Een venster verschijnt waarin je de DTD van je keuze kunt selecteren.
 In dit geval is dat de DocBook XML 4.1.2 Meta DTD die we net gemaakt hebben.
 Er verschijnt nu een nieuw dialoog venster dat je informeert over de voortgang:</P>

    <CENTER>
      <IMG src="../../common/images/article201/dtdparsing.png" width="208" height="126" alt="[Meta DTD parsing dialoogvenster]">
    </CENTER>

    <P>In het nieuwe, lege document typen we "&lt;book&gt;". Om de tag te sluiten
 typen we F11. Als de syntax kleuring nog niet aanstaat, kun je dat aanzetten
 door "Syntaxaccentuatiemodus" te kiezen in het "Document" menu.
 XML syntax highlighting staat in het "Markup" submenu.</P>

    <P>Omdat we vergeten zijn wat de atrributen zijn van het book element,
 plaatsen we de cursor op het eind van het woord 'book' in de openingstag
 en doen we Ctrl+Enter. Een pop-up toont je nu een lijst van alle mogelijke
 attributen voor dit element:</P>

    <CENTER>
      <IMG src="../../common/images/article201/attribinsert.png"  width="675" height="522" alt="[Een attribuut toevoegen]">
    </CENTER>

    <P>Als je de cursor tussen de aanhalingstekens (="") van een attribuut zet,
 kan Ctrl+Enter je zelfs vertellen wat hier de mogelijke waarden zijn -
 voor zover de DTD daar informatie over geeft. Bij het id attribuut is dat niet het geval.</P>

    <P>We typen een id en nu hebben we de volgende code:</P>
<PRE>
&lt;book id="EenID"&gt;
&lt;/book&gt;
</PRE>

    <P>Als we nu tussen beide 'book' tags gaan staan, dan geeft Ctrl+Enter een nieuwe
 pop-up lijst. Deze keer krijgen we alle mogelijke dochter-elementen van het 'book' te zien.
 We selecteren bijvoorbeeld het 'title' element:</P>

    <CENTER>
      <IMG src="../../common/images/article201/elementinsert.png"  width="676" height="523" alt="[Een dochter-element invoegen]">
    </CENTER>

    <P>Een nadeel van de plugin is dat hij wel de dochter-elementen kent,
 maar niks weet van hun toegelaten aantal of volgorde. Bijvoorbeeld wanneer
 de DTD zegt dat je maar &eacute;&eacute;n titel element mag gebruiken, zal
 de XML plugin je niet waarschuwen als je er twee schrijft.
 Omdat de plugin ook (nog) geen validatiemogelijkheid heeft maak je nog dikwijls
 ongeldige documenten.</P>

    <P>Hier is een overzicht van de mogelijkheden van de plugin:</P>

    <CENTER>
      <TABLE border="1">
        <TR>
          <TD align="left">Taak</TD>

          <TD align="left">Opdracht</TD>
        </TR>

        <TR>
          <TD align="left">XML Invoegen (elementen <I>en</I> attributen)</TD>

          <TD align="left">Ctrl+Return</TD>
        </TR>

        <TR>
          <TD align="left">Entity Invoegen</TD>

          <TD align="left">F10</TD>
        </TR>

        <TR>
          <TD align="left">Tag Sluiten</TD>

          <TD align="left">F11</TD>
        </TR>
      </TABLE>
    </CENTER>

    <A NAME="201lfindex4">&nbsp;</A>
<H2>KDE DocBook</H2>


    <P>Het KDE project zelf gebruikt ook DocBook als het formaat voor
 de documentatie. De XML plugin wordt dan ook standaard meegeleverd met de
 KDE-versie van DocBook. Het is uiteraard aangewezen om die Meta DTD voor DocBook
 te gebruiken (in plaats van de Meta DTD voor DocBook XML 4.1.2) indien je KDE
 documentatie schrijft.</P>

    <A NAME="201lfindex5">&nbsp;</A>
<H2>MathML en SVG</H2>


    <P>DocBook ondersteunt tegenwoordig <A href="http://www.w3c.org/Math/">MathML</A>
 voor het invoegen van wiskundige vergelijkingen. Een 'gemengde' DTD om DocBook
 documenten met MathML erin te valideren kun je vinden in
 <A href="http://lists.oasis-open.org/archives/docbook/200005/msg00080.html">deze email</A>.</P>

    <P>De SVG DTD is er spijtig genoeg niet op berekend om gemengd te worden met DocBook.
 Maar er wordt in ieder geval aan gewerkt.</P>

    <P>Om dit in de Kate XML plugin te doen moet je met dtdparse een nieuwe Meta DTD
 maken gebaseerd op de samengestelde DTD.</P>

    <A NAME="201lfindex6">&nbsp;</A>
<H2>Conclusie</H2>


    <P>De Kate XML plugin is echt een hulp bij het schrijven van DocBook XML.
 Perfect is het niet, maar het bestaat dan ook nog maar kort. En tesamen met KDE 3.0 is
 het beschikbaar voor enorm veel mensen.</P>
  



<!-- 2pdaIgnoreStart -->
<A NAME="talkback">&nbsp;</a>
<h2>Talkback voor dit artikel</h2>
Elk artikel heeft zijn eigen talkback pagina. Daar kan je commentaar geven of commentaar van anderen lezen:
<center>
<table border="0"  CELLSPACING="2" CELLPADDING="1">
 <tr BGCOLOR="#C2C2C2"><td align=center>
  <table border="3"  CELLSPACING="2" CELLPADDING="1">
   <tr BGCOLOR="#C2C2C2"><td align=center>
    <A href="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=201&amp;lang=en"><b>&nbsp;talkback pagina&nbsp;</b></a>
   </td></tr></table>
</td></tr></table>
</center>

<HR size="2" noshade>
<!-- ARTICLE FOOT -->
<CENTER><TABLE WIDTH="98%">
<TR><TD ALIGN=CENTER BGCOLOR="#9999AA" WIDTH="50%">
<A HREF="../../common/lfteam.html">Site onderhouden door het LinuxFocus editors team</A>
<BR><FONT COLOR="#FFFFFF">&copy; Egon Willighagen, <a href="../../common/copy.html">FDL</a> <BR><a href="http://www.linuxfocus.org">LinuxFocus.org</a></FONT>
<BR><a href="http://cgi.linuxfocus.org/cgi-bin/lfcomment?lang=nl&amp;article=article201.shtml" target="_TOP">Klik hier om een fout te melden of commentaar te geven</A><BR></TD>
<TD BGCOLOR="#9999AA">
<!-- TRANSLATION INFO -->
<font size=2>Vertaling info:</font>
<TABLE>
  <tr><td><font size="2">en --&gt; -- : Egon Willighagen <small>&lt;egonw(at)linuxfocus.org&gt;</small></font></td></tr>
  <tr><td><font size="2">en --&gt; nl: Floris Lambrechts &lt;floris(at)linuxfocus.org&gt;</font></td></tr>
</TABLE>
</TD>
</TR></TABLE></CENTER>
<p><font size=1>2002-06-08, generated by lfparser version 2.28</font></p>
<!-- 2pdaIgnoreStop -->
</BODY>
</HTML>