3.18

Sezione 3: Autori

Q 3.18: Come uso elementi grafici in XML?

Fai riferimento ad esi come faresti con HTML o usando XLink. O incorpora SVG.

 

Gli elementi grafici sono sempre stati link che alla fine hanno un file immagine anziché altro testo. Possono  dunque essere implementati in qualsiasi maniera supportata dalle specifiche XLink e XPointer (vedi Come XML influenzerà i link del mio documento?), incluso l’utilizzo di sintassi simile alle immagini HTML esistenti. Si può inoltre fare riferimento ad esse usando il meccanismo di ANNOTAZIONE e ENTITÀ  incorporato di XML in modo simile al SGM standard, come entità standard non interpretate.

Tuttavia, la Grafica Vettoriale Scalabile (una specifica XML per grafica vettoriale) ti permette di usare il markup XML per disegnare oggetti in grafica vettoriale direttamente nel tuo file XML. Questo fornisce un potere immenso per l’inclusione di grafica portatile, specialmente sequenze interattive o animate, e ora sta diventando supportata nei browser, e può essere esportata da programmi di grafica standard (disegno) come GIMP.

Le specifiche di collegamento XML per immagini esterne ti da un controllo molto migliore sull’attivazione trasversale dei link, dunque un autore può specificare, per esempio, se far apparire o no un immagine quando la pagina viene caricata, o dopo un click dell’utente, o in una finestra separata, senza dover affidarsi allo scripting.

XML in se non predica o limita formati di file grafici: GIF, JPG, TIFF, PNG, CGM, EPS, e SVG al minimo avrebbero senso; tuttavia, i formati vettore (EPS, SVG) sono normalmente essenziali per immagini non fotografiche (diagrammi).

Grafica binaria incorporata

Non puoi incorporare un file grafico binario semplice (o qualsiasi altro dato binario [non testuale]) direttamente all’interno di un file XML perché qualsiasi byte simile al markup potrebbe essere confuso: devi fare riferimento a questo tramite il linking (vedi sotto). È tuttavia possibile includere una trasformazione codificata in testo di un file binario come CDATA Marked Section, usando qualcosa come UUencode con i caratteri markup ], &e > rimossi dalla mappa in modo che possano verificarsi come terminazioni CDATA erronee ed essere interpretate in modo errato. Puoi anche usare una semplice codifica esadecimale come in PostScript. Tuttavia, per la grafica vettoriale, la soluzione è  usare SVG (vedi i consigli di Peter Murray-Rust).

I file sonori sono oggetti binari allo stesso modo in cui lo sono i file grafici esterni, quindi possono si può fare riferimento ad essi solo esternamente (usando le stesse tecniche usate per la grafica). I file musicali su MusiXML o una variante XML di SMDL possono tuttavia essere incorporati nello stesso modo di SVG.

Il punto di usare entità per gestire i tuoi elementi grafici è che puoi tenere la dichiarazione della lista di entità separata dal resto del documento, quindi puoi riusare i nomi se un immagine è necessaria più di una volta, ma memorizzare le specifiche fisiche del file in un solo posto. Le entità esterne sono disponibili solo usando un DTD, non uno Schema.

Bob DuCharme scrive:

Tutti i dati in un entità di documento XML devono essere interpretabili in XML. Puoi definire un entità esterna sia come entità interpretata (XML interpretabile) o un entità non interpretata (qualsiasi altra cosa). Le entità non interpretabili possono essere usate per file immagini, file sonori, file video, o quello che vuoi. Si può fare riferimento ad essi solo all’interno del documento come il valore di un attributo (come un’immagine bitmap su una pagina Web HTML è il valore dell’attributo  srcdell’elemento img) e non parte del documento vero e proprio. In un documento, questo attributo deve essere dichiarato per essere di tipo ENTITÀ, e la dichiarazione di entità deve specificare una ANNOTAZIONE dichiarata, perché se l’entità non è XML, l’elaboratore XML avrà bisogno di sapere cos’è Per esempio, nel documento seguente, l’entità colliepic è dichiarata per avere un’annotazione JPEG, ed è usata come valore di un attributo vuoto picfile dell’elemento dog.

<?xml version="1.0"?> 
<!DOCTYPE dog [ 
<!NOTATION JPEG SYSTEM "Joint Photographic Experts Group"> 
<!ENTITY colliepic SYSTEM "lassie.jpg" NDATA JPEG>
<!ELEMENT dog EMPTY> 
<!ATTLIST dog picfile ENTITY #REQUIRED> 
]> 
<dog picfile="colliepic"/> 

Il metodo di Entità è particolarmente utile quando hai molte immagini, o molti usi ripetuti della stessa immagine, dato che li dichiari solo una volta, all’inizio del documento, rendendo la gestione dell’immagine molto più semplice.

Le specifiche di collegamento XPointer e XLink descrivono altri modi di puntare a file non XML come un grafico. Questi offrono un controllo più sofisticato sulla posizione, gestione, e aspetto dell’entità esterna all’interno del documento XML.

Peter Murray-Rust scrive:

GIF e JPEG si rivolgono alle bitmap (rappresentazioni in pixel di immagini: tutte create con puntini colorati). La grafica vettoriale (scalabile, fatta di specifiche sul disegno) sono discusse nell’attività grafica W3C come Grafica Vettoriale Scalabile (vedi http://www.w3.org/Graphics/SVG). Con le specifiche ora complete, è possibile trasmettere la rappresentazione grafica come vettori direttamente all’interno del file XML. Per molti oggetti grafici questo significherà una riduzione significativa del tempo di download e scalatura senza perdita di dettagli.

Max Dunn scrive:

SVG è cresciuto tantissimo di recente, ed è una vera storia di successo di XML […] ci sono [molte] implementazioni conformi. Abbiamo recentemente iniziato un FAQ su SVG su http://www.svgfaq.com/.

XSLT può essere usato per generare SVG da XML; maggiori dettagli su http://www.svgfaq.com/xslt.asp (fai attenzione a usare XSLT, non il WD-xsl obsoleto di Microsoft). I documenti possono anche interagire con immagini SVG (vedi http://www.xml.com/pub/a/2000/03/22/style/index.html).

Leave a Comment

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