[LinuxFocus-icon]
Home  |  Mappa  |  Indice  |  Cerca

News | Archivo | Link | Cose LF
[an error occurred while processing this directive]
convert to palmConvert to GutenPalm
or to PalmDoc

[Photo of the Author]
Egon Willighagen
<egonw(at)linuxfocus.org>

L'autore:

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.



Tradotto in Italiano da:
AlessandroPellizzari <alex(at)neko.it>

Contenuto:

 

Scrivere documenti con DocBook XML

[Illustration]

Premessa:

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



 

Introduzione

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.

 

Kate

Kate è 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 KDE 3.0 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:
./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:

[Kate's plugin manager]
 

Costruire la Meta DTD

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).

 

Editing

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:

[Meta DTD parsing dialog]

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:

[Inserting an attribute]

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:

[Inserting an attribute]

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
 

KDE DocBook

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.

 

MathML e SVG

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.

 

Conclusione

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.

 

Discussioni su quest'articolo

ogni articolo possiede una sua pagina di discussione, da questa pagina puoi inviare un commento o leggere quelli degli altri lettori:
 pagina di discussione 

Webpages maintained by the LinuxFocus Editor team
© Egon Willighagen, FDL
LinuxFocus.org

Click here to report a fault or send a comment to LinuxFocus
Translation information:
en --> -- : Egon Willighagen <egonw(at)linuxfocus.org>
en --> it: AlessandroPellizzari <alex(at)neko.it>

2002-05-07, generated by lfparser version 2.25