Le variabili di sostituzione vengono utilizzate per trasferire i valori dall’URL della richiesta ai modelli di composizione memorizzati nei cataloghi delle immagini. Le variabili possono essere utilizzate anche per trasmettere lo stesso valore in punti diversi di una richiesta complessa.
$ *
*= *
varvalue*
var |
Nome della variabile. |
value |
Valore a cui impostare la variabile (stringa). |
Le definizioni e i riferimenti delle variabili possono verificarsi nella parte query della richiesta, in catalog::Modifier
e in catalog::PostModifier
.
Le variabili sono definite come sopra, simili ad altri comandi IS; l'interlinea '$' identifica il comando come definizione di variabile. Le variabili devono essere definite prima di essere utilizzate come riferimento.
Il nome della variabile var
non fa distinzione tra maiuscole e minuscole e può essere costituito da una combinazione di lettere ASCII, numeri, '-', '_' e '.'.
value
devono essere codificati URL a passaggio singolo per una trasmissione HTTP sicura. La doppia codifica è necessaria se value
viene ritrasmessa via HTTP. Ciò si verifica quando value
viene sostituito in una richiesta esterna nidificata o nell'attributo href di un elemento SVG <image>
.
I riferimenti delle variabili sono costituiti dal nome della variabile delimitato da '$' iniziale e finale ($var$). I riferimenti possono verificarsi ovunque nella parte del valore di qualsiasi comando IS (ovvero tra '=' che segue il nome del comando e il successivo '&' o la fine della richiesta). Le variabili personalizzate non possono essere applicate ai comandi layer=
e effect=
. Più variabili sono consentite nello stesso valore di comando. Il server sostituisce ogni occorrenza di $ *
var*$
con value
.
I riferimenti alle variabili potrebbero non essere nidificati. Tutte le occorrenze di $ *
var*$
all'interno di value
non vengono sostituite.
Ad esempio, il frammento di richiesta:
$var2=apple&$var1=my$var2$tree&text=$var1$
risolve in:
text=my$var2$tree
'$' non è un carattere riservato; può verificarsi altrimenti nella richiesta. Ad esempio, src=my$image$file.tif
è un comando valido (supponendo che esista una voce di catalogo o un file immagine denominato my$image$file.tif
), mentre wid=$number$
non lo è, perché wid
richiede un argomento numerico.
$ *
Le *$
differenze possono verificarsi ovunque all’interno delle parentesi graffe di una richiesta nidificata di Image Server o Image Rendering, inclusa la parte sinistra dell’icona separazione del percorso dalla query. Il server sostituisce questi riferimenti con valori (dall'URL o da catalog::Modifier
del catalogo immagini principale) prima di analizzare ed elaborare ulteriormente la richiesta nidificata.
Inoltre, tutte le definizioni $ *
var*=
dell'url o catalog::Modifier
vengono inoltrate a tutte le richieste nidificate di Image Server e di Image Rendering. In questo modo tutte le definizioni delle variabili sono disponibili per tutti i modelli, indipendentemente dal livello di nidificazione.
Indipendentemente dal livello di nidificazione, ai valori variabili che devono essere sostituiti in qualsiasi punto delle richieste nidificate di rendering di immagini o Image Server o delle relative stringhe catalog::Modifier
deve essere applicata solo la codifica HTTP a passata singola.
$ *
Le *$
variabili che si trovano ovunque all'interno delle parentesi graffe di una richiesta esterna incorporata vengono sostituite con valori di definizione variabili corrispondenti. Questo consente di inserire richieste esterne incorporate in un modello in un catalogo immagini.
I valori delle variabili che devono essere sostituiti in richieste esterne in genere devono essere codificati due volte, poiché non viene applicata alcuna codifica prima che il server tenti di trasmettere l'URL esterno finale.
$ *
Nei file SVG possono verificarsi *$
differenze nei valori degli attributi e nelle <text>
stringhe. Image Serving li sostituisce con le corrispondenti definizioni $ *
var*=
note al livello di nidificazione della richiesta a cui è specificato il file SVG.
Qualsiasi valore di variabile da sostituire in un valore di attributo href
deve essere codificato in due URL; tutti gli altri devono essere codificati singolarmente.
La object
specificata nel percorso della richiesta viene assegnata alla variabile predefinita *
$object*
. ' $ *
oggetto*$
' può essere collocato ovunque nella richiesta, nel modello a cui fa riferimento la richiesta, o in una richiesta nidificata/incorporata in cui tale oggetto è consentito, incluso il valore di src=
e mask=
, e il percorso di una richiesta nidificata/incorporata.
Ad esempio, la seguente richiesta riutilizzerà l’immagine specificata nel percorso come origine di un livello in una richiesta nidificata:
/is/image/a/b?…&layer=3&src=is{…&src=$object$}&…
Equivale a
/is/image/a/b?…&layer=3&src=is{…&src=a/b}&…
È possibile sostituire la definizione di *
$object*
specificando in modo esplicito $ *
object*=
con il valore desiderato.
La variabile di percorso predefinita viene comunemente utilizzata insieme a template=
.
Nessuno. Solo le variabili definite verranno sostituite dal server (fatta eccezione per la variabile di percorso predefinita $object, che verrà sempre sostituita). Eventuali occorrenze di $ *
var*$
rimangono letterali se *
var*
non è possibile trovare una corrispondenza con una definizione di variabile esistente.
Vedere "Esempio A" in Templates.