<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
  <HEAD>
    <TITLE></TITLE>
  </HEAD>

  <BODY>
    <H1>Scrivere documenti con DocBook XML</H1>

    <H4>ArticleCategory: [Artikel Kategorie]</H4>
    Applications 

    <H4>AuthorImage:[Bild des Autors]</H4>
    <IMG src="../../common/images/EgonWillighagen.jpg" alt=
    "[Photo of the Author]" height="102" width="79"> 

    <H4>TranslationInfo:[Author and translation history]</H4>

    <P>original in en <A href="mailto:egonw@linuxfocus.org">Egon
    Willighagen</A></P>
	<P>en to it <A HREF="mailto:alex@neko.it">AlessandroPellizzari</A>&nbsp;</P>

    <H4>AboutTheAuthor:[&Uuml;ber den Autor]</H4>

	<p>Ha conseguito il master in chimica all'Universit� di Nijmegen,
	e sta facendo il suo dottorato di ricerca sulla rappresentazione
	molecolare alla stessa Universit�. Gioca a basket e programma
	applicazioni in Java.</p>

    <H4>Abstract:[Zusammenfassung]</H4>

	<p>Questo articolo descrive l'uso di Kate e del suo plugin XML
	come tool per la scrittura di documenti DocBook XML.</p>

    <H4>ArticleIllustration:[Titelbild des Artikels]</H4>
    <IMG src="../../common/images/article201/logo.png" width="42" height="44" alt="[Illustration]" hspace="10"> 

    <H4>ArticleBody:[Der eigentliche Artikel]</H4>

    <H2>Introduzione</H2>

	<p>La scrittura di documenti XML con strumenti OpenSource � stato un
	problema a lungo. Le persone hanno bisogno di un editor che produca
	codeci XML valido, e preferibilmente vorrebbero vedere direttamente
	l'output. Ci sono editor che possono farlo, ma sono proprietari. Nel
	mondo OpenSource ci sono alcuni programmi che non vi danno una bella preview
	grafica, ma che possono produrre documenti XML validi e che vi possono
	avvisare riguardo elementi non consentiti in specifiche posizioni del
	documento.</p>

	<p>Naturalmente c'� Emacs con la sua modalit� DocBook che funziona
	bene (vedi il precedente <A href="../May2000/article152.shtml">articolo su DocBook</a>).
	Questa particolare modalit� rende possibile scegliere elementi figli da
	inserire nel documento dipendentemente dagli elementi gi� inseriti in
	precedenza. E questo consente il completamento col tasto Tab in base a
	questa conoscenza.</p>
	
	<p>Ma in questo articolo non discuter� di questo, ma piuttosto vi introdurr�
	Kate come editor DocBoox XML.</p>

    <H2>Kate</H2>


    <A href="http://www.kde.org/kate">Kate</A> � uno degli editor dell'ambiente
    desktop KDE. � abbastanza leggero, supporta piu` file aperti e consente
    l'evidenziazione della sintassi, anche per XML. Inoltre lo scorso anno
    � stato scritto un plugin XML, da Daniel Naber, che vi pu� aiutare a
    scrivere documenti XML validi. Nel <A href="http://www.kde.org/announcements/announce-3.0.html">KDE 3.0</A>
    questo plugin XML per Kate � stato incluso nel pacchetto kde-addon.
    Se il pacchetto di addon di KDE 3.0 non � stato ancora installato,
    installatelo da una delle varie distribuzioni binarie o compilando
    il sorgente:
    
<PRE>
./configure --prefix=/path/dove/avete/installato/kde3
make
sudo make install
</PRE>

	<p>Una volta che il plugin � installato, dovete ancora renderlo noto
	a Kate. Per farlo, selezionate "Configura Kate" nel menu "Impostazioni".
	Nel pannello dei "Plugins" potete impostare il plugin XML tra quelli da
	caricare:</p>


    <CENTER>
      <IMG src="../../common/images/article201/pluginmanager.png" width="586" height="540" alt="[Kate's plugin manager]">
    </CENTER>

    <H2>Costruire la Meta DTD</H2>

    <P>Le Meta DTD vengono generate con il <A href=
    "http://www.nwalsh.com/perl/dtdparse/index.html">dtdparser</A> di Normal Walsh,
    i cui pacchetti possono essere scaricati da <A href=
    "http://sf.net/project/showfiles.php?group_id=30351">SourceForge.net</A>.</P>

	<p>Ho usato una versione leggermente adattata della 2.0beta6. Per esempio
	ho dovuto correggere il path nel programma dtdparse nella prima linea
	per dargli la posizione esatta del mio interprete perl. Lanciando il
	programma dovreste ricevere un output come il seguente:</p>

<PRE>
&gt; ./dtdparse /path/a/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>Notate il grande numero di entit� che vengono caricate.
	Questa � la parziale causa delle dimensioni delle Meta DTD
	generate, 1.63 <A href=
    "http://slashdot.org/comments.pl?sid=26830&amp;cid=2896481">Mibibytes</A>.
    Ma con un processore XSLT come <A href=
    "http://xmlsoft.org/XSLT/xsltproc2.html">xsltproc</A> possono essere ridotti
    fino a 0.96 MiB con il foglio di stile simplify_dtd.xsl presente nel
    pacchetto kde-addon:</p>
    
<PRE>
&gt; xsltproc simplify_dtd.xsl docbookx.dtd.xml &gt; docbook-xml-4.1.2.dtd.xml
</PRE>

	<p>Il file risultante, docbook-xml-4.1.2.dtd.xml, pu� essere copiato
	in /path/a/kde3/share/apps/katexmltools/ dove /path/a deve essere cambiato
	con il path dove avete installato KDE 3. Ma anche la vostra dome andr�
	bene, visto che il plugin XML vi chieder� un nome di file quando dovr�
	assegnare una nuova Meta DTD (vedi sotto).</p>

    <H2>Editing</H2>

	<p>Quando iniziate un nuovo documento DocBook XML, dovete assegnargli
	una Meta DTD. Questo viene fatto scegliendo "Assegna Meta DTD" nel menu
	"XML Plugin". Apparir� una finestra per la richiesta del file da cui
	potrete selezionare la DTD che volete usare. In questo caso, � la Meta DTD
	DocBook XML 4.1.2 che abbiamo appena creato. Una nuova finestra vi mostrer�
	la progressione del processo:</p>

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

	<p>Nel nuovo documento vuoto scriveremo "&lt;book&gt;". Per chiudere
	l'elemento premiamo F11. Se l'evidenziazione della sintassi non � ancora
	attiva, la potremo attivare manualmente selezionando "Modo evidenziazione"
	nel menu "Documento". L'evidenziazione della sintassi XML � nel sottomenu "Markup".</p>

	<p>Abbiamo dimenticato quali attributi un elemento abbia, posizioniamo il
	cursore alla fine della parola book nel primo tag e premiamo Ctrl+Invio.
	Apparir� un popup che mostra la lista di tutti i possibili attributi
	per l'elemento corrente:</p>

    <CENTER>
      <IMG src="../../common/images/article201/attribinsert.png"  width="675" height="522" alt="[Inserting an attribute]">
    </CENTER>

	<p>Posizionando il cursore tra le " e premendo Ctrl+Invio vi dar� anche
	i possibili valori per l'attributo, se sono definiti nella DTD. Non � il
	caso dell'attributo id.</p>

	<p>Dopo aver inserito gli attributi avremo questo codice DocBook XML:</p>

<PRE>
&lt;book id="QualcheID"&gt;
&lt;/book&gt;
</PRE>

	<p>Posizionando il cursore tra il tag iniziale e quello finale dell'elemento
	book e premendo Ctrl+Invio in quella posizione avremo un'altra lista popup, ma
	ora con tutti i possibili elementi figli per l'elemento book. Possiamo scegliere,
	per esempio, l'elemento title:</p>

    <CENTER>
      <IMG src="../../common/images/article201/elementinsert.png"  width="676" height="523" alt="[Inserting an attribute]">
    </CENTER>

	<p>Un difetto di questo plugin � che conosce solo quali sono gli elementi
	figli, e non l'ordine o il numero di volte che � consentito usarli.
	Per esempio, la DTD non consente due o tre elementi title, ma il plugin
	XML non avverte di questo. Dato che il plugin inoltre non ha ancora una
	opzione di validazione (ancora), � ancora abbastanza facile avere documenti
	non validi.</p>

	<p>Un riassunto delle funzionalit� del plugin viene dato nella
	tabella sottostante:</p>

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

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

        <TR>
          <TD align="left">Inserire XML (elementi <I>e</I>
          attributi)</TD>

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

        <TR>
          <TD align="left">Inserire Entit�</TD>

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

        <TR>
          <TD align="left">Chiudere i Tag</TD>

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

    <H2>KDE DocBook</H2>

	<p>Il progetto KDE stesso usa DocBook come formato per la sua
	documentazione. Perci� il plugin XML viene fornito di default
	con una versione personalizzata per KDE di DocBook. Assegnare tale
	Meta DTD per DocBook � preferibile rispetto alla Meta DTD per
	DocBook XML 4.1.2 se si sta scrivendo documentazione per KDE.</p>


    <H2>MathML e SVG</H2>

	<p>DocBook al giorno d'oggi supporta <A href=
    "http://www.w3c.org/Math/">MathML</A> per l'inclusione di equazioni
    matematiche nei documenti. Una DTD mista per validare documenti DocBook
    con MathML pu� essere trovato in <A href=
    "http://lists.oasis-open.org/archives/docbook/200005/msg00080.html">
    questo messaggio e-mail</A>.</P>

	<p>le DTD per SVG sfortunatamente non sono state scritte in maniera tale
	da poter essere incluse nei DocBook. Ma si stanno compiendo degli sforzi
	per renderlo possibile.</p>

	<p>L'uso nel plugin XML di Kate richiede che un Meta DTD venga generato
	con dtdparse sui DTD combinati.</p>

    <H2>Conclusione</H2>

	<p>Il plugin XML per Kate vi pu� aiutare molto nell'editing di documenti
	DocBook XML. Non � perfetto, ma ripeto, � stato sviluppato di recente.
	Con KDE 3.0 � disponibile per moltissime persone.</p>

  </BODY>
</HTML>