2.5

Sezione 2: Utenti esistenti

Q 2.5: Come controllo la formattazione di XML?

Usa CSS o un foglio di stile XSLT2.

 

Su HTML, lo stile di default è stato incorporato nei browser in quanto il tagset di HTML era predefinito e collegato direttamente al browser. Questo è vero in parte anche per XHTML e HTML5. In altri XML, dove puoi definire il tuo tagset, non ci si può assolutamente aspettare dai browser di indovinare o sapere in anticipo che nomi userai e cosa significheranno, quindi hai bisogno di un foglio di stile se vuoi mostrare il testo formattato.

I browser che leggono XML accetteranno e useranno al minimo un foglio di stile CSS, ma puoi anche usare un linguaggio di foglio di stile XSLT più potente per trasformare il tuo XML in HTML – che i browser, ovviamente, già conoscono e sanno come mostrare (e che HTML può ancora usare un foglio di stile CSS). In questo modo puoi ottenere tutti i benefici della gestione dei documenti usando XML, ma non devi preoccuparti del fatto che i tuoi lettori abbiano bisogno di strumenti per XML nel loro browser.

Questa trasformazione viene fatta solitamente dal proprietario dal documento, sui propri server, quindi tu devi solo avere l’HTML, possibilmente senza sapere che era originariamente in XML. Ma è anche possibile usare il (piuttosto limitato) trasformatore XSLT 1.0 incorporato in alcuni browser, e gli operatori del server possono ora usare anche Saxon CE, che si è una versione in-browser scaricabile di XSLT2.

Mike Brown scrive:

XSLT è un linguaggio di elaborazione di documenti XML che usa codice sorgente che risulta essere scritto in XML. Un documento XSLT dichiara un insieme di regole che un processore XSLT deve usare quando interpreta il contenuto di un documento XML. Queste regole dicono al processore di XSLT come generare una nuova struttura di dati in stile XML e come questi dati dovrebbero essere emessi – come un documento XML, come un documento HTML, come semplice testo, o magari in qualche altro formato.

Questa trasformazione può avvenire sia all’interno del browser, o nel server prima che il file venga inviato. La trasformazione su browser libera il server dall’elaborazione, ma potrebbe introdurre dipendenze nel browser, portando all’esclusione di alcuni dei tuoi lettori. La trasformazione su server rende il processo indipendente dal browser, ma pone un carico elaborativo maggiore sul server.

Come qualsiasi sistema dove i file vengono visualizzati in modo casuale da utenti arbitrari, l’autore non può sapere quali risorse (come ad esempio il font) sono sul sistema dell’utente, quindi la stessa attenzione è necessaria come con i font che usano HTML. Per chiamare un foglio di stile da un file XML per l’elaborazione autonoma su browser, includi una delle dichiarazioni di foglio di stile:

<?xml-stylesheet href="foo.xsl" type="text/xsl"?> 
<?xml-stylesheet href="foo.css" type="text/css"?>

(Sostituendo l’URI del tuo foglio di stile, ovviamente). Vedi http://www.w3.org/TR/xml-stylesheet/ per tutti i dettagli. Il Cascading Stylesheet Specification (CSS) fornisce una sintassi semplice per assegnare stili agli elementi, ed è stato implementato nella maggior parte dei browser.

Dave Pawson gestisce un FAQ su XSL comprensivo su http://www.dpawson.co.uk/xsl/, e il suo libro (Pawson, 2002) [the Fox book] è disponibile da O’Reilly. XSL usa una sintassi XML (un foglio di stile XSL è semplicemente un file XML) ed ha un supporto molto vasto da vari fornitori dei browser più importanti(vedi la domanda sui browser e altri software). XSL è disponibile in due modi:

  • XSL in sé, che è un linguaggio di programmazione puro, che salva un file Formatted Object (FO), che ha bisogno di un formattatore di testo come FOPXEP, o altri per creare un output stampabile (PDF) (ma vedi Alternative a XSL:FO). Attualmente non sono a conoscenza di alcun browser Web che supporta direttamente il rendering da XSL a PDF;
  • XSLT (T sta per Trasformazione), che è un linguaggio per specificare la trasformazione di XML in HTML sia all’interno del browser o nel server prima della trasformazione. Può anche specificare le trasformazioni da un vocabolario di XML a un altro, e da XML a semplice testo (che può essere qualsiasi formato, fra cui RTF e LATEX).

Tutte le versioni attuali di Microsoft Internet Explorer, Firefox, Chrome, Mozilla, Safari, e Opera gestiscono XSLT 1.0 all’interno del browser. Fai attenzione al fatto che i browser obsoleti come MSIE5.5 hanno bisogno di alcune riparazioni post-installazione per rimuovere il WD-xsl estremamente obsoleto e sostituirlo con il processore attuale di Trasformazione XSL.

WYSIWYG per XSL

Ci sono stati molti tentativi di produrre pseudo-editori WYSIWYG per creare fogli di stile XSL[T], ma sono stati per la maggior parte limitati alla semplice mappatura fra elementi di input e output(ad es. un DocBook para in un HTML p). Qualsiasi cosa oltre a questo sembra sempre fallire data l’infinita complessità di quello che le persone vogliono fare con le proprie informazioni. Se puoi accedere al database ACM, vedi gli articoli di Pietriga, Vion-Dury, e Quint su VXT, dai Procedimenti DocEng’01 ACM (Atlanta)

Generare HTML sul server

C’è un uso in aumento di elaboratori su server come Cocoon e altri, che ti permettono di creare, memorizzare, e gestire le tue informazioni in XML ma le servono in HTML auto-convertito o altri formati, dunque permettendo all’output di essere usato da qualsiasi browser. XSLT è inoltre largamente usato per trasformare XML in formati non-SGML per l’input su altri sistemi (per esempio trasformare XML in LATEX per composizione).

Alternative a XSL:FO

Anziché generare PDF attraverso un elaboratore FO, è possibile usare XSLT2 per trasformare XML in LATEX per composizione di PDF (come si fa per stampare versioni di questo FAQ, da DocBook a  LATEX). Questo ha il vantaggio di riuscire a usare l’ampia libreria di moduli di formattazione già pronti di LATEX  (‘pacchetti’), che evita la maggior parte della reinvenzione attualmente richiesta con XSL:FO.

In alternativa, il xmltex di David Carlisle legge direttamente XML, offrendo un altra soluzione pratica, seppur sperimentale, per la composizione di XML. Un uso di un sistema TEX che può comporre file XML è quello di un elaboratore di interfaccia per XSL:FO, serializzato come XML. Il TEX Passivo di Sebastian Rahtz usa xmltex per fare questo.

Il FAQ su TEX  si trova suhttp://www.tex.ac.uk/faq. Silmaril gestisce la versione online del libro di Peter Flynn su LATEX, Formattare Informazioni, che ha alcuni esempi di conversione XSLT2 (Flynn 2014).

I sistemi SGML hanno usato un meccanismo di foglio di stile simile: alcuni fra i più comuni sono stai i FOSI (Formatted Output Specification Instance), che è era lo standard nelle applicazioni di ingegneria industriale e difesa, specialmente usando l’editor Arbortext (Adept, poi Epic, probabilmente qualcos’altro la settimana prossima); il fogli di stile DynaText/DynaWeb usato nella pubblicazione su web di SGM; e il foglio di stile Synex (ad es. Panorama, la quale interfaccia di stile è stata in parte adottata da XMetaL, la competenza sul quale i designer persistono sul browser DocZilla.

Leave a Comment

Your email address will not be published. Required fields are marked *