Paramètres et Nœuds
Lorsque vous utilisez des paramètres dans les fonctions XPath qui localisent les nœuds, il est important de se souvenir que la fonction n’a pas de nœud contextuel, peu importe d’où dans le design elle est appelée. Le nœud contextuel peut être fourni soit dans l’expression XPath utilisée pour définir la fonction (qui est, dans le volet Corps de fonction) ou dans l’expression XPath qui est utilisée pour appeler la fonction XPath. Dans le dernier cas, le contexte peut être fourni via les arguments dans l’appel de fonction.
Prenez en compte la fonction XPath définie par l’utilisateur Stock(), qui est définie avec les trois paramètres tels qu’affichés dans la capture d’écran ci-dessous.

La définition du corps de fonction est $ContextStock[@name=$Selection]/$StockInfo, qui utilise les trois paramètres mais ne contiennent pas d’information de nœud contextuel. L’information du nœud contextuel peut être fournie dans l’expression XPath qui appelle la fonction, par exemple de cette manière :
sps:Stock( $XML/Trades/Stock, $XML/Trades/Selection/Stock, @name )
L’appel de fonction a trois arguments, dont chaque valeur fournit soit l’information contextuelle ou du‘node-locator’. En alternative, les expressions XPath peuvent être utilisées comme appel de fonction et donner les mêmes résultats :
sps:Stock( /Trades/Stock, /Trades/Selection/Stock, @name )
sps:Stock( /Trades/Stock, //Selection/Stock, @name )
La variable $XML, qui renvoie la racine du document, peut être laissée de côté dans les appels de focntion depuis les composants de design car dans les expressions des composants du design les nœuds contextuels sont connus.
Notez que dans l’appel de fonction recensé ci-dessus, il existe trois arguments d’entrée correpsondant respectivement aux trois paramètres définis pour la fonction XPath définie par l’utilisateur:
• $ContextStock = $XML/Trades/Stock (l’élément /Trades/Stock)
• $Selection = $XML/Trades/Selection/Stock (l’élément /Trades/Selection/Stock)
• $StockInfo = @name
L’expression XPath dans la définition de fonction est :
$ContextStock[@name=$Selection]/$StockInfo
Lorsque les arguments d’entrée sont substitués, l’expression XPath dans la définition de fonction devient :
$XML/Trades/Stock[@name=$XML/Trades/Selection/Stock]/@name
Il est important de noter que ce sont les ensembles de nœud qui sont passés à la fonction, pas les strings de texte.
C’est de cette manière que le nœud contextuel et les étapes de l’emplacement sont passés à la fonction via les paramètres. La fonction peut ensuite être évaluée pour localiser et retourner les nœuds requis.