original in en Egon Willighagen
en to it AlessandroPellizzari
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.
Questo articolo descrive l'uso di Kate e del suo plugin XML come tool per la scrittura di documenti DocBook XML.
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.
Naturalmente c'� Emacs con la sua modalit� DocBook che funziona bene (vedi il precedente articolo su DocBook). 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.
Ma in questo articolo non discuter� di questo, ma piuttosto vi introdurr� Kate come editor DocBoox XML.
./configure --prefix=/path/dove/avete/installato/kde3 make sudo make install
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:
Le Meta DTD vengono generate con il dtdparser di Normal Walsh, i cui pacchetti possono essere scaricati da SourceForge.net.
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:
> ./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.
Notate il grande numero di entit� che vengono caricate. Questa � la parziale causa delle dimensioni delle Meta DTD generate, 1.63 Mibibytes. Ma con un processore XSLT come xsltproc possono essere ridotti fino a 0.96 MiB con il foglio di stile simplify_dtd.xsl presente nel pacchetto kde-addon:
> xsltproc simplify_dtd.xsl docbookx.dtd.xml > docbook-xml-4.1.2.dtd.xml
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).
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:
Nel nuovo documento vuoto scriveremo "<book>". 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".
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:
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.
Dopo aver inserito gli attributi avremo questo codice DocBook XML:
<book id="QualcheID"> </book>
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:
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.
Un riassunto delle funzionalit� del plugin viene dato nella tabella sottostante:
Funzione | Comando |
Inserire XML (elementi e attributi) | Ctrl+Return |
Inserire Entit� | F10 |
Chiudere i Tag | F11 |
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.
DocBook al giorno d'oggi supporta MathML per l'inclusione di equazioni matematiche nei documenti. Una DTD mista per validare documenti DocBook con MathML pu� essere trovato in questo messaggio e-mail.
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.
L'uso nel plugin XML di Kate richiede che un Meta DTD venga generato con dtdparse sui DTD combinati.
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.