attribute
Permet de définir un attribut du premier élément parent
Description
Lorsqu'il est traité, cet élément ajoute ou définit un attribut sur son élément parent. La valeur de l'attribut est déterminée comme suit :
- si l'attribut value est défini, la valeur value est utilisée,
- si l'attribut value n'est pas défini, la chaîne value de son sous-contenu (qui peut être une chaîne vide) est utilisée.
Notez que s'il n'existe aucune valeur ni aucun élément enfant, une erreur est générée.
Si le parent est un élément scope, l'attribut est ajouté au premier ancêtre non scope. Pour les éléments conditional et template, l'attribut est interprété dans la portée générée.
Attributs
- async (booléen Valeur par défaut : true) - Traitement asynchrone. Pour les balises d'analyse, indique si la demande doit être ajoutée à la file d'attente (false) ou traitée avant l'élément apparenté suivant. Pour les autres éléments, cet attribut ne fait la différence que s'ils contiennent des demandes asynchrones qui doivent être traitées avant le traitement de l'élément. Dans ce cas, lorsque l'attribut est défini sur false, l'élément apparenté suivant de l'élément ne sera traité qu'après l'élément en cours ; lorsqu'il est défini sur true, Watson Explorer n'attend pas que l'élément en cours soit traité avant de traiter son élément apparenté suivant.
- elt-id (entier) - Utilisation : Interne
- max-elt-id (entier) - Utilisation : Interne
- execute-acl (Texte)
- process (Texte) - Expression XPath qui détermine les attributs et/ou les enfants à traiter. Seuls "", "*", "@*" et "*|@*" sont actuellement pris en charge.
- name (NMToken) - Nom de l'attribut Utilisation : obligatoire
- value (Texte) - Valeur de l'attribut.
- remove (remove uniquement dans certains cas) - S'il est spécifié, l'attribut indiqué est supprimé. Vous ferez erreur si vous spécifiez un attribut value ou un noeud de texte enfant en plus de cette option d'attribut.
Exemples
Exemple d'entrée :
<stopword> <scope> <attribute name="word">my</attribute> </scope> </stopword>
Exemple de sortie :
<stopword word="my"/>Les attributs peuvent ne pas être appliqués directement aux éléments qui conditionnent le traitement de leur contenu (par exemple if-var, when-var, etc). Dans ce cas, l'attribut non correspondant n'est pas ajouté à if-var avant d'être traité (le test est donc transmis). Utilisez forced-attribute si vous souhaitez forcer le traitement de l'attribut auparavant.
Exemple d'entrée :
<declare name="v1"/> <declare name="v2"/> <set-var name="v1">1</set-var> <set-var name="v2"> <if-var name="v1"> <attribute name="not-match">?*</attribute> <scope>bad</scope> </if-var> </set-var> <set-var name="v1">1</set-var> <set-var name="v2"> <if-var name="v1"> <attribute name="not-match">?*</attribute> <scope>bad</scope> </if-var> </set-var>
Exemple de sortie :
<declare name="v1" initial-value="1" modified="modified"/> <declare name="v2" initial-value="bad" modified="modified"/>L'attribut n'est pas ajouté à l'élément choose ou à l'élément when mais à l'élément sans portée qui les contient.
Exemple d'entrée :
<param name="limit-size" value="1"/> <parse url="http://mydomain.com"> <scope> <choose> <when-var name="limit-size" match="1" realm="param"> <attribute name="max-size" value="5000"/> <attribute name="parser" value="parser1"/> </when-var> <otherwise> <attribute name="parser" value="parser2"/> </otherwise> </choose> </scope> </parse>
Exemple de sortie :
<param name="limit-size" value="1"/> <parse url="http://mydomain.com/" max-size="5000" parser="parser1" ref="0"/>