Variabili di sostituzione substitution-variables
Le variabili di sostituzione vengono utilizzate per trasferire i valori dall’URL della richiesta ai modelli di composizione memorizzati nei cataloghi di immagini. Le variabili possono anche essere utilizzate per trasmettere lo stesso valore in posizioni diverse in una richiesta complessa.
$ *
var*= *
value*
Definizioni di variabili e riferimenti possono verificarsi nella parte query della richiesta, in catalog::Modifier
e in catalog::PostModifier
.
Le variabili sono definite come sopra, in modo simile ad altri comandi IS; l'iniziale '$' identifica il comando come definizione di variabile. Le variabili devono essere definite prima di essere referenziate.
Il nome della variabile var
non fa distinzione tra maiuscole e minuscole e può essere costituito da qualsiasi combinazione di lettere ASCII, numeri, "-", "_" e ".".
value
deve avere un URL con codifica single-pass per una trasmissione HTTP sicura. La doppia codifica è necessaria se value
viene ritrasmesso tramite HTTP. Ciò si verifica quando value
viene sostituito in una richiesta esterna nidificata o nell'attributo href di un elemento SVG <image>
.I riferimenti di variabile sono costituiti dal nome della variabile delimitato da '$' iniziale e finale ($var$). I riferimenti possono verificarsi in qualsiasi punto della porzione di valore di qualsiasi comando IS, ovvero tra '=' dopo il nome del comando e il successivo '&' o la fine della richiesta. Impossibile applicare variabili personalizzate 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 di variabile non possono essere nidificati. Eventuali occorrenze di $ *
var*$
in value
non vengono sostituite.
Ad esempio, il frammento di richiesta:
$var2=apple&$var1=my$var2$tree&text=$var1$
si risolve in:
text=my$var2$tree
src=my$image$file.tif
, ad esempio, è un comando valido (supponendo che esista una voce di catalogo o un file di immagine denominato my$image$file.tif
), mentre wid=$number$
non lo è, perché wid
richiede un argomento numerico.Elaborazione delle variabili nelle richieste nidificate section-26d63adc446c4fa0808e11e8082abdfa
$ *
var*$
i riferimenti possono verificarsi ovunque all'interno delle parentesi graffe di una richiesta di Image Server o Image Rendering nidificata, anche a sinistra di '?' separazione del percorso dalla query. Il server sostituisce questi riferimenti con valori (provenienti dall'URL o da catalog::Modifier
del catalogo principale delle immagini) prima di analizzare ed elaborare ulteriormente la richiesta nidificata.
Inoltre, tutte le definizioni di $ *
var*=
dall'URL o catalog::Modifier
vengono inoltrate a tutte le richieste nidificate di Image Server e Image Rendering. In questo modo tutte le definizioni di variabili sono disponibili per tutti i modelli, indipendentemente dal livello di nidificazione.
Indipendentemente dal livello di nidificazione, solo la codifica HTTP a passata singola deve essere applicata ai valori delle variabili che devono essere sostituiti in qualsiasi punto delle richieste di Image Rendering o Image Server nidificate o delle relative stringhe catalog::Modifier
associate.
Elaborazione delle variabili nelle richieste esterne incorporate section-314e39a9aefb46faa737fd137897d1b0
I riferimenti $ *
var*$
che si verificano in qualsiasi punto all'interno delle parentesi graffe di una richiesta esterna incorporata vengono sostituiti con valori di definizione della variabile corrispondenti. Questo consente di inserire richieste esterne incorporate in un modello in un catalogo immagini.
I valori delle variabili da sostituire in richieste esterne in genere devono avere una doppia codifica, poiché non viene applicata alcuna nuova codifica prima che il server tenti di trasmettere l’URL esterno finale.
Elaborazione variabile in file SVG section-a8359f9909764142b6a18ae778dca913
$ *
var*$
riferimenti possono verificarsi nei file SVG nei valori degli attributi e nelle stringhe <text>
. Image Server sostituisce questi elementi con le definizioni $ *
var*=
corrispondenti note al livello di nidificazione della richiesta in cui è specificato il file SVG.
href
deve avere una doppia codifica URL; tutti gli altri devono avere una codifica singola.Variabile di percorso predefinita section-930d0dd12e8f49499becc9fe8df24092
Il object
specificato nel percorso della richiesta è assegnato alla variabile predefinita *
$object*
. ' $ *
object*$
' può trovarsi in qualsiasi punto della richiesta, nel modello a cui fa riferimento la richiesta o in una richiesta nidificata/incorporata in cui tale oggetto è consentito, inclusi il valore di src=
e mask=
e il percorso di una richiesta nidificata/incorporata.
Ad esempio, la seguente richiesta riutilizza 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 sovrascrivere la definizione di *
$object*
specificando esplicitamente $ *
object*=
con il valore desiderato.
La variabile di percorso predefinita viene comunemente utilizzata insieme a template=
.
Predefinito section-b02483d15529444586a2e9504805b155
Nessuno. Solo le variabili definite vengono sostituite dal server, ad eccezione della variabile di percorso predefinita $object, che viene sempre sostituita. Eventuali occorrenze di $ *
var*$
rimangono letterali se *
var*
non corrispondono a una definizione di variabile esistente.
Esempi section-fba9393df6984247b7e30b3f93992e86
Vedi "Esempio A" in Modelli.