Capitolo IV: Ampliare i documenti XML |
Concetti fondamentali relativi al linguaggio XPointer L'azione dell'XPointer è interna agli elementi e alle strutture che costituiscono il documento XML. Un elemento XPointer contiene una serie di termini di localizzazione che specifica una posizione nella struttura ad albero del documento. Benché molto più sofisticato degli identificatori di frammento HTML, l'XPointer può essere utilizzato in maniera analoga. I termini di localizzazione utilizzano la sintassi indicata nei seguenti esempi: HREF="uri#Xpointer" HREF="uri|Xpointer" Se come separatore si utilizza il simbolo di cancelletto (#), tale simbolo indica che il client deve elaborare la connessione. Se si utilizza invece il simbolo pipe (|), il meccanismo della connessione rimane aperto. In questo modo, la connessione del collegamento può essere gestita sul lato server, consentendo un potenziale risparmio di larghezza di banda. Un termine di localizzazione richiede un'origine di localizzazione. Si tratta di un metodo che consente di indicare a XPointer il punto in cui iniziare ad operare nella struttura del documento. Ogni termine di localizzazione utilizza una parola chiave e può contenere argomenti. La parola chiave specifica l'origine di localizzazione, ad esempio Root o Id, che indica a XPointer dove iniziare. Gli argomenti forniscono ulteriori informazioni sul percorso che XPointer dovrà compiere all'interno dell'origine. Un esempio di termine di localizzazione è il seguente: Child(2,PRODUCT) In cui viene indicato il secondo elemento Product tra gli elementi secondari correnti.. I termini di localizzazione possono essere associati a posizioni assolute, posizioni relative, posizioni con spanning, posizioni di attributi o posizioni di stringhe. TERMINI DI LOCALIZZAZIONE ASSOLUTI Un termine di localizzazione assoluto fa riferimento a un punto specifico nella struttura del documento. Non richiede alcuna origine di localizzazione e può essere utilizzato per stabilire un'origine di localizzazione o come elemento XPointer autonomo. I termini di localizzazione assoluti supportano le seguenti parole chiave:
Un esempio di termine di localizzazione assoluto è il seguente: HREF="http://www.foo.com/br.xml#Id(PRODUCT)" Identifica l'elemento PRODUCT all'interno del documento br.xml. TERMINI DI LOCALIZZAZIONE RELATIVI Le parole chiave per i termini di localizzazione relativi dipendono dalla disponibilità di un'origine di localizzazione. Se non esiste alcuna origine, XPointer fa riferimento all'elemento principale della risorsa che contiene il termine. I termini di localizzazione relativi supportano le seguenti parole chiave:
Un esempio di termine di localizzazione relativo è il seguente: Child(2,SECTION) Identifica il secondo figlio di tipo SECTION. TERMINI DI LOCALIZZAZIONE CON SPANNING Un termine di localizzazione con spanning punta a una sottorisorsa individuando i dati presenti tra i due argomenti. Nell'esempio seguente, gli argomenti sono relativi all'origine di localizzazione per il termine di localizzazione con spanning: Id(PRODUCT).Span(Child(1),Child(3)) Si seleziona dal primo al terzo figlio dell'elemento PRODUCT. TERMINI DI LOCALIZZAZIONE DI ATTRIBUTI Il termine di localizzazione di un attributo esamina il nome di un attributo, individua l'attributo e ne restituisce il valore. L'esempio seguente mostra l'utilizzo di questo termine: Id(PRODUCT).Attr(N) Si seleziona il valore dell'attributo N dell'elemento PRODUCT. TERMINI DI LOCALIZZAZIONE DI STRINGHE Il termine di localizzazione di una stringa seleziona una o più stringhe o posizioni tra stringhe nell'origine di localizzazione. I termini di localizzazione delle stringhe supportano le seguenti parole chiave:
Un esempio di termine di localizzazione di stringa è il seguente: Id(PRODUCT).String(3,"widget") Si seleziona il terzo elemento di PRODUCT contenente la stringa "widget". Infine un semplice esempio di utilizzo di un XPointer : HREF="http://www.foo.com/br.xml#id(list).child(3,item)" viene selezionato il terzo elemento item che si trova all'interno dell'elemento list del documento br.xml. |
Copyright © 2000-2005. Tutti i diritti sono riservati. Per informazioni: mgianni@infinito.it