Capitolo II: Struttura e sintassi |
Struttura fisica del linguaggio XML La struttura fisica di un documento XML è costituita da tutto il contenuto del documento stesso. Le unità di memorizzazione definite entità, possono essere parte integrante del documento o possono essere esterne. Ogni entità è identificata da un nome univoco e da un contenuto specifico che può essere costituito da un singolo carattere allinterno del documento o da un file esterno di grandi dimensioni. In termini di struttura logica di un documento XML, le entità vengono dichiarate nel prologo e viene loro fatto riferimento nellelemento Document. Dopo aver dichiarato la DTD, lentità può essere utilizzata in un punto qualsiasi del documento. Un riferimento di entità indica allelaboratore di recuperare il contenuto di unentità, come stabilito dalla dichiarazione di entità, e di utilizzarla allinterno del documento. ENTITA ANALIZZABILI E NON ANALIZZABILI Unentità può essere analizzabile o non analizzabile. Per entità analizzabile si intende unentità in grado di essere letta dallelaboratore di XML che ne consente lestrazione. Al termine dellestrazione, questo tipo di entità viene visualizzata come parte del testo del documento nella posizione di riferimento dellentità stessa. Ad esempio, una dichiarazione del tipo analizzabile potrebbe essere questa : <!ENTITY LR1 "light requirement: mostly shade"> Ogni volta che nel documento viene fatto riferimento a questa entità, questultima verrà sostituita dal contenuto. Se si desidera modificare il contenuto dellentità, è necessario effettuare questa operazione solo nella dichiarazione e la modifica si rifletterà in qualsiasi punto del documento in cui venga utilizzata lentità. RIFERIMENTI DI ENTITA Il contenuto di ogni entità viene aggiunto al documento ogni volta che viene fatto riferimento a quellentità. Il riferimento ha la funzione di segnaposto per lautore del contenuto e lelaboratore di XML colloca il contenuto effettivo nei punti di riferimento. Per includere un riferimento, bisogna inserire una e commerciale (&) e immettere il nome dellentità seguito da punto e virgole (;). Allinterno di un documento assumerebbe il seguente aspetto: <TERM>Wild Ginger has the following &LR1;</TERM> RIFERIMENTI DI ENTITA DI PARAMETRO Un altro tipo di riferimento è quello relativo allentità di parametro che utilizza un modulo (%) invece di una e commerciale anche se laspetto è simile a qualsiasi altro riferimento di entità. %CDF; è un esempio di entità di parametro. Unentità non analizzabile viene indicata talvolta come entità binaria in quanto il contenuto è spesso costituito da un file binario, ad esempio unimmagine, che non può essere interpretato direttamente dallelaboratore XML. Unentità non analizzabile richiede informazioni diverse da quelle incluse in unentità analizzabile. Viene richiesta unannotazione che identifica il formato o il tipo di risorsa per cui lentità viene dichiarata. Ad esempio : <!ENTITY MyImage SYSTEM "Image001.gif" NDATA GIF> Questa dichiarazione significa che lentità MyImage è un file binario nellannotazione GIF. Perché queste dichiarazione di entità siano valide, anche lannotazione deve essere dichiarata. La dichiarazione di annotazione consente allapplicazione di XML di gestire i file binari esterni. Nel caso dellannotazione GIF utilizzata nellesempio, può essere impiegata la dichiarazione di annotazione seguente: <!NOTATION GIF SYSTEM "/Utils/Gifview.exe"> Questa stringa di codice indica allelaboratore di XML di utilizzare Gifview.exe per elaborare lentità di tipo GIF ogni volta che viene rilevata. Dopo essere stata dichiarata, la dichiarazione di annotazione può essere utilizzata allinterno del documento. ENTITA' PREDEFINITE Nel linguaggio XML alcuni caratteri sono utilizzati per contrassegnare il documento in modo specifico. Le parentesi angolari (<>) e la barra (/) sono interpretate come markup e non come dati di un carattere effettivo: <PLANT>Blodroot</PLANT> Questi e altri caratteri sono riservati per il markup e non possono essere utilizzati come contenuto. Se si desidera che questi caratteri siano visualizzati come dati, è necessario utilizzare determinati codici: < < (parentesi angolare di apertura) > > (parentesi angolare di chiusura) & ; & (e commerciale) ' (apostrofo) " " (virgolette doppie) ENTITA INTERNE ED ESTERNE Nel primo caso si tratta di unentità in cui non esistono unità di memorizzazione fisica separate e il cui contenuto viene fornito nella dichiarazione corrispondente, ad esempio: <!ENTITY LR1 "light requirement: mostly shade"> Unentità esterna fa riferimento a ununità di memorizzazione nella dichiarazione mediante un identificatore pubblico o di sistema. Lidentificatore di sistema fornisce un collegamento alla posizione in cui si trova il contenuto dellentità, ad esempio un URI (Uniform Resource Identifier) come ad esempio: <!ENTITY MyImage SYSTEM "http://www.wildflowers.com/Image001.gif" NDATA GIF> In questo caso lelaboratore di XML deve necessariamente leggere il file Image001.gif per recuperare il contenuto di questa entità. Oltre allidentificatore di sistema, lentità può includere un identificatore pubblico che fornisce un metodo opzionale e alternativo per il recupero del contenuto di unentità da parte dellelaboratore di XML. Questo identificatore può essere ad esempio utilizzato se lapplicazione è collegata a una libreria del documento disponibile pubblicamente. Se lelaboratore non è in grado di generare una posizione appropriata per lidentificatore pubblico, è necessario che venga controllato lURI specificato dallidentificatore di sistema. Ad esempio: <!ENTITY MyImage PUBLIC "-//Wildflowers/TEXT Standard images//EN" "http://www.wildflowers.com/Image001.gif" NDATA GIF> Lelaboratore di XML verifica lidentificatore pubblico allinterno di un elenco di risorse a cui è collegato e scoprire che non è necessaria una nuova copia dellentità perché già disponibile localmente. |