table of contents
XMLIF(1) | Manuel de l'utilisateur Linux | XMLIF(1) |
NOM¶
xmlif - Instructions de traitement conditionnel pour XML
SYNOPSIS¶
xmlif [attrib=valeur...]
DESCRIPTION¶
xmlif filtre XML conformément au balisage conditionnel. Cela peut être pratique pour formater une des différentes versions d'un document XML en fonction des conditions passées à la commande.
Les paires attribut/valeur de la ligne de commande sont comparées avec les attributs associés à certaines instructions de traitement dans le document. Ces instructions sont <?xmlif if?> et sa négation <?xmlif if not?>, <?xmlif elif?> et sa négation <?xmlif elif not?>, <?xmlif else?>, et <?xmlif fi?>.
Les paires attribut/valeur passées sur la ligne de commande sont comparées avec la valeur des attributs correspondants dans les instructions de traitement. Une concordance d'attribut (NdT : attribute match) survient si un attribut apparaît dans les arguments de la ligne de commande ainsi que dans la balise et que les valeurs correspondent. Une non concordance d'attribut (NdT : attribute mismatch) survient si un attribut apparaît dans les arguments de la ligne de commande ainsi que dans la balise mais que les valeurs ne correspondent pas.
Le contenu situé entre <?xmlif if?> ou <?xmlif elif?> et l'instruction de traitement conditionnel suivante, de même niveau d'imbrication, est passé sans altération s'il y a au moins une correspondance d'attribut (NdT : attribut match) et aucune disparité d'attribut (NdT : attribut mismatch) ; autrement, est passé le contenu situé entre <?xmlif if not?> et <?xmlif elif not?> et l'instruction de traitement conditionnel suivante. Le contenu situé entre <?xmlif else?> et la balise de traitement conditionnel suivante est passé seulement si aucun contenu précédent de même niveau d'imbrication, n'a été passé. <?xmlif if?> et <?xmlif fi?> (et leur variantes « not ») modifie le niveau d'imbrication courant ; <?xmlif else?> et <?xmlif elif?> ne le modifient pas.
Toutes ces instructions de traitement seront retirées de la sortie produite. À part dans le traitement conditionnel, toute autre entrée est passée telle quelle ; en particulier, les références d'entité ne sont pas résolues.
La correspondance de valeur se fait par égalité de chaine, excepté que « | » dans une valeur d'attribut est interprété comme un caractère d'alternance. Ainsi, indiquer foo='rouge|bleu' sur la ligne de commande activent les conditions rouge et bleu. Indiquer couleur='noir|blanc' dans une balise correspond aux conditions couleur='noir' et couleur='blanc' sur la ligne de commande.
Voici un exemple :
Toujours produire ce texte. <?xmlif if condition='html'?> Produire ce texte si 'condition=html' est présent sur la ligne de commande. <?xmlif elif condition='pdf|ps'?> Produire ce texte si 'condition=pdf' ou si 'condition=ps' est présent sur la ligne de commande. <?xmlif else?> Autrement, produire ce texte. <?xmlif fi?> Toujours produire ce texte.
AUTEUR¶
Eric S. Raymond <esr@snark.thyrsus.com>.
TRADUCTION¶
Alain Portal <aportal AT univ-montp2 DOT fr>, 10 mai 2004
AVERTISSEMENT SUR LA TRADUCTION¶
Il est possible que cette traduction soit imparfaite ou périmée. En cas de doute, veuillez vous reporter au document original en langue anglaise fourni avec le programme.
15 octobre 2003 |