<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Quoi
La règle de transformation XSL applique des Transformations de langage de feuille de style Extensible (XSLT) personnalisées aux messages XML, ce qui vous permet de les convertir de XML à un autre format, tel que XML, HTML ou texte brut. Elle est souvent utilisée pour intégrer des applications compatibles avec XML, mais qui nécessitent des formats XML différents pour les mêmes données.
Exemples
Les exemples suivants illustrent toutes les ressources d'un flux de transformation XSL.
Règle XSL ->
<XSL name="TransformXML"> <ResourceURL>xsl://my_transform.xsl</ResourceURL> <Source>request</Source> </XSL>
Règle XSL simple. Passez à l'exemple suivant pour voir la feuille de style XSLT référencée dans la règle (my_transform.xsl
). L'élément <Source>
est important.
Par exemple, si le XML que vous souhaitez transformer se trouve dans la réponse, la transformation ne se produira que si vous définissez la source sur response
(et que la règle est associée au flux de réponse). Cependant, dans le cas présent, le XML à transformer se trouve dans la requête.
Feuille de style XSLT ->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:template match="/"> <xsl:text><Life></xsl:text> <xsl:value-of select="$newline"/> <xsl:text>Here are the odd-numbered items from the list:</xsl:text> <xsl:value-of select="$newline"/> <xsl:for-each select="list/listitem"> <xsl:if test="(position() mod 2) = 1"> <xsl:number format="1. "/> <xsl:value-of select="."/> <xsl:value-of select="$newline"/> </xsl:if> </xsl:for-each> <xsl:text></Life></xsl:text> </xsl:template> </xsl:stylesheet>
Feuille de style my_transform.xsl
référencée dans la règle. Passez à l'exemple suivant pour voir un exemple de message XML entrant.
Message ->
<?xml version="1.0"?> <list> <title>A few of my favorite albums</title> <listitem>A Love Supreme</listitem> <listitem>Beat Crazy</listitem> <listitem>Here Come the Warm Jets</listitem> <listitem>Kind of Blue</listitem> <listitem>London Calling</listitem> <listitem>Remain in Light</listitem> <listitem>The Joshua Tree</listitem> <listitem>The Indestructible Beat of Soweto</listitem> </list>
Exemple de message dans la requête (indiqué dans l'élément <Source>request</Source>
de la règle dans le premier exemple).
Message transformé
<Life> Here are the odd-numbered items from the list: 1. A Love Supreme 3. Here Come the Warm Jets 5. London Calling 7. The Joshua Tree </Life>
Le message transformé d'après la feuille de style XSLT de ces échantillons est appliqué au message XML.
Documentation de référence des éléments
Configurez une règle de transformation XSL à l'aide des éléments suivants.
Nom du champ | Description | |||
---|---|---|---|---|
Nom (obligatoire) |
Nom de la règle. Les caractères que vous pouvez utiliser dans le nom se limitent à : A-Z0-9._\-$ % . Cependant, l'UI de gestion applique des restrictions supplémentaires,
telles que la suppression automatique
des caractères qui ne sont pas alphanumériques.
|
|||
Source (facultatif) |
Contient le message à partir duquel les informations doivent être extraites. Cette valeur est généralement définie sur request ou response , selon que le message à transformer est entrant ou sortant.
|
|||
Variable de sortie (facultatif) |
Variable qui stocke le résultat de la transformation. La variable OutputVariable ne peut pas être de type "Message" ("message", "requête" ou "réponse"). Vous devez définir cet élément en tant que variable personnalisée, puis utiliser cette variable. Pour remplacer le contenu du message par le résultat de la transformation, supprimez cet élément. Par exemple, si vous transformez un message en HTML, n'incluez pas cet élément. |
|||
ResourceURL (obligatoire) | Fichier XSLT à utiliser pour transformer le message. | |||
Paramètres (facultatif) | ignoreUnresolvedVariables (facultatif) |
Ignore toutes les erreurs de variable non résolues dans les instructions de script XSLT.
Valeurs valides : vrai/faux
Valeur par défaut : "faux"
|
||
Paramètre (facultatif) | nom (obligatoire) |
Les paramètres permettent d'utiliser le paramètre XSL dans vos feuilles de style, où le nom que vous ajoutez dans la règle est le nom du paramètre XSL. Par exemple, si vous saisissez le nom "uid", votre fichier XSL ressemblera à ceci : Le paramètre obtient sa valeur à partir d'une référence à une variable de contexte (identifiée par l'attribut Pour voir un exemple et en apprendre plus, consultez la page http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864. |
||
ref (facultatif) |
Spécifie la référence qui récupère la valeur à partir d'une variable. Par exemple, si un paramètre "uid" doit obtenir sa valeur à partir d'une variable appelée "authn.uid", l'élément Paramètre se présentera comme suit : Si vous utilisez cet attribut, n'utilisez pas l'attribut "valeur". |
|||
valeur (facultatif) |
Vous pouvez utiliser cet attribut pour coder en dur la valeur du paramètre. Si vous utilisez cet attribut, n'utilisez pas l'attribut "ref". |
Remarques sur l'utilisation
Le XSLT est mis en œuvre dans un fichier .xsl
autonome, qui est stocké dans le proxy d'API sous /resources/xsl
. La règle XSL référence simplement le fichier XSL. Consultez la section Fichiers de ressources pour en savoir plus.
La règle XSL nécessite deux entrées :
- Le nom d'une feuille de style XSLT contenant un ensemble de règles de transformation stockée dans le proxy d'API sous
/resources/xsl
- Source du XML à transformer (généralement un message de requête ou de réponse)
<xsl:include>
et <xsl:import>
ne sont pas compatibles.
Apigee Edge s'appuie sur le langage XSLT processeur et est compatible avec les normes XSLT 1.0 et 2.0.
Informations de référence sur les erreurs
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Solution |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Cette erreur se produit si le message ou la variable de chaîne spécifiée dans l'élément <Source> de la règle de transformation XSL n'est pas dans le champ d'application (non disponible dans le flux spécifique où la règle est exécutée) ou ne peut pas être résolu (non défini).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | Cette erreur se produit si la charge utile du fichier XML d'entrée est non disponible/mal formée, ou si la règle XSLTransform échoue/ne parvient pas à transformer le fichier XML d'entrée en fonction des règles de transformation fournies dans le fichier XSL. Plusieurs raisons peuvent expliquer l'échec de la règle XSLTransform. La raison de l'échec dans le message d'erreur fournira davantage d'informations sur la cause de l'échec. | build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Solution |
---|---|---|
XSLEmptyResourceUrl |
Si l'élément <ResourceURL> de la règle de Transformation XSL est vide, le déploiement du proxy d'API échoue. |
build |
XSLInvalidResourceType |
Si le type de ressource spécifié dans l'élément <ResourceURL> de la règle de Transformation XSL n'est pas du type xsl , le déploiement du proxy d'API échoue. |
build |