J'utilise la capacité de MarkLogic à appeler les fonctions XQuery dans la transformation XSL. Disons que j'ai une bibliothèque XQuery avec une fonction dont la signature ressemble à ce qui suit. Ceci est à titre illustratif seulement.Coercion invalide:() en tant que xs: string en xdmp: xslt-eval
declare function my-func:ex-join($first as xs:string, $last as xs:string) as xs:string
{
fn:concat($first, '-', $last)
}
De XQuery, je peux appeler cette fonction avec la séquence vide en tant que paramètres, sans problème, à savoir
ex-join((), '1244')
La fonction juste retour une séquence vide, mais je ne reçois pas d'erreurs . Si je tente de toute cette fonction de dans mon transformation XSL, comme dans:
<xsl:value-of select="my-func:ex-join(//node/value/text(), 'something')"/>
Si le /nœud/valeur n'existe pas, et une séquence vide est transmis, je reçois l'erreur de coercition.
Est-ce que quelqu'un a des suggestions pour contourner le problème de coercition, en dehors de vérifier les valeurs dans XSL avant le select? Ce sont des modèles XSL générés automatiquement, ce qui signifie beaucoup de contrôles codés.
Merci,
-TJ
Merci @grtjn. Cela a résolu mon problème. –