Allegati

In diverse situazioni, Alml consente di incorporare file con altri formati, all'interno di elementi che prevedono un contenuto letterale. Quando si tratta di codice che viene tradotto in immagini, tali elementi dispongono dell'attributo file, con il quale è possibile dichiarare il nome di un file da generare, con il contenuto dell'elemento stesso.

Per esempio, con un elemento figimg è possibile incorporare del codice XFig, contenente presumibilmente un disegno. Se si aggiunge l'attributo file, si può generare una copia di tale file. Si osservi l'esempio seguente:

<object>
<caption>
    Figura <objectref>. Esempio con <special special="name">XFig</special>.
    Una copia di questo file dovrebbe essere disponibile anche qui:
    <uri><![CDATA[allegati/a2/alml-esempio-xfig-ellissi.fig]]></uri>
</caption>
<imgblock>
<figimg alt="Esempio" width="50%" file="allegati/a2/alml-esempio-xfig-ellissi.fig">
<![CDATA[
#FIG 3.2  Produced by xfig version 3.2.5-alpha5
Portrait
Center
Metric
A4      
100.00
Single
-2
1200 2
1 3 0 1 0 1 49 -1 20 0.000 1 0.0000 1035 630 450 450 1035 630 1485 630
1 1 0 1 0 5 50 -1 20 0.000 1 0.0000 1035 900 855 180 1035 900 1890 900
4 1 0 50 0 0 12 0.0000 4 180 1500 1035 1260 Esempio con XFig\001
]]>
</figimg>
</imgblock>
</object>

Nel riquadro successivo si vede il risultato nella composizione finale:

Figura u100.3. Esempio con XFig. Una copia di questo file dovrebbe essere disponibile anche qui: allegati/a2/alml-esempio-xfig-ellissi.fig

Esempio

In pratica, con la composizione del sorgente, dovrebbe essere generato anche il file allegati/a2/alml-esempio-xfig-ellissi.fig. Il file non viene creato se esiste già qualcosa con lo stesso nome, se manca la directory di destinazione prevista o se mancano i permessi per potervi scrivere.

Nel caso particolare dell'elemento embimg, il file viene salvato dopo la traduzione dal formato Base64 in quello che era in origine.

Come si può intuire, esiste anche un elemento che consente di allegare file al sorgente SGML, senza che questi debbano produrre alcunché di visibile nella composizione. Si tratta dell'elemento enclosure, per il quale l'attributo file diventa obbligatorio (altrimenti non ci sarebbe motivo di usare tale elemento) e dove se ne aggiunge un altro, con lo stesso nome enclosure, il cui scopo è quello di specificare il formato del contenuto dell'elemento.

Attualmente, l'elemento enclosure può contenere file tali e quali, per esempio file come quelli generati da XFig, oppure file trasformati con l'algoritmo Base64. Pertanto, all'attributo enclosure può essere assegnato il valore literal, che comunque sarebbe predefinito, oppure il valore base64, con i significati che si possono intuire.

<enclosure enclosure="base64" file="allegati/a2/prova.sxc">
<![CDATA[
JSFQUy1BZG9iZS0yLjAKJSVDcmVhdG9yOiAiYmFyY29kZSIsIGxpYmJhcmNv
ZGUgc2FtcGxlIGZyb250ZW5kCiUgJSVEb2N1bWVudFBhcGVyU2l6ZXM6IGE0
...
...
b3cKMTA0LjAwIDEwLjAwIG1vdmV0byAoOSkgc2hvdwoKJSBFbmQgYmFyY29k
ZSBmb3IgIjk5MTIzNDU2Nzg5MCIKCiUlRW5kUGFnZQoKc2hvd3BhZ2UKJSVU
cmFpbGVyCiUlRU9GCgo=
]]>
</enclosure>

L'esempio mostra un allegato che incorpora, presumibilmente, un file realizzato con OpenOffice.org Calc. Questo file non risulta visibile nel documento, ma viene creato in fase di composizione generando il file allegati/a2/prova.sxc.

Figura u100.5. Sintassi per l'uso dell'elemento enclosure.

enclosure enclosure="literal|base64" file="nome_file_da_creare"
  `--contenuto_letterale_cdata

Come si può intuire, l'elemento enclosure va usato come un blocco.

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net