Le traitement conditionnel, appelé également profilage (profiling), est le filtrage ou le marquage (flagging) de l'information fondés sur des critères au traitement.
DITA essaye de mettre en œuvre un traitement conditionnel dans un sens sémantique : plutôt que de permettre l'accumulation avec le temps de valeurs arbitraires dans un document, dans un attribut de traitement d'utilisation générale, qui fait sens seulement pour l'auteur original, nous encourageons la création de métadonnées en utilisant des attributs de métadonnée spécifiques sur le contenu. Ces valeurs de métadonnées peuvent alors être mises à profit dans un nombre quelconque de processus, dont le filtrage, le marquage, la recherche et l'indexation, au lieu de convenir seulement au filtrage.
Pour un élément <topic> ou <topicref>, les métadonnées de public, de plateforme
et de produit peuvent s'exprimer par des attributs sur l'élément <topic> ou <topicref>,
ou par des éléments au sein de l'élément <prolog> ou <topicmeta> du thème.
Bien que les éléments de métadonnée soient plus expressifs, la signification des valeurs est la même et peut être utilisée en
coordination : par exemple, les éléments <prolog> peuvent définir entièrement les publics d'un thème,
puis on pourra utiliser des attributs de métadonnée au sein du contenu pour identifier les parties qui ne s'appliquent qu'à certains publics.
audienceaudience> ont la même signification
lorsqu'elles sont utilisées dans l'attribut audience d'un élément de contenu. Par exemple,
la valeur "user" a la même signification, que celle-ci apparaisse dans l'attribut type
de l'élément <audience> d'un thème ou dans l'attribut audience d'un élément de contenu.
Le principe s'applique aux attributs de type (type), de travail (job) et de niveau d'expérience (experiencelevel)
de l'élément <audience>.
Les valeurs dans l'attribut audience peuvent également servir à référencer une description plus complète
d'un public dans un élément <audience>. Utilisez le nom du public dans l'élément <audience>
pour appeler le même public dans un attribut audience.
L'attribut audience prend une liste de valeurs, délimitées par des blancs, qui peuvent correspondre ou non
aux valeurs de nom des éléments <audience>.
platformplatform> des métadonnées du thème.productprodinfo> des métadonnées du thème.revrev pourrait contenir la valeur "1.1".otherpropsothermeta> des métadonnées du thème.propsprops
peut être spécialisé afin de créer de nouveaux attributs de traitement conditionnel.Chaque attribut prend zéro ou plusieurs valeurs de chaîne délimitées par des espaces. Par exemple, on peut utiliser
l'attribut product pour identifier le fait qu'un élément s'applique à deux produits particuliers.
<p audience="administrator">Set the configuration options: <ul> <li product="extendedprod">Set foo to bar</li> <li product="basicprod extendedprod">Set your blink rate</li> <li>Do some other stuff</li> <li platform="Linux">Do a special thing for Linux</li> </ul> </p>
Lors du traitement, on spécifie les valeurs que l'on veut exclure et celles que l'on veut marquer en utilisant un profil de traitement conditionnel (décrit dans la spécification du langage DITA). Par exemple, un éditeur produisant de l'information pour un public mélangé en utilisant le produit de base (« basicprod ») pourrait choisir de marquer les informations qui concernent les administrateurs et d'exclure les informations qui s'appliquent au produit étendu (« extendedprod »), et exprimer ces choix dans un profil de traitement conditionnel tel que celui-ci :
<prop att="audience" val="administrator" action="flag" > <startflag>ADMIN</startflag> </prop> <prop att="product" val="extendedprod" action="exclude"/>
Lors de la sortie, le paragraphe est marqué et le premier élément de la liste est exclu (puisqu'il s'applique au produit étendu), mais le deuxième élément de liste est encore inclus (bien qu'il s'applique à « extendedprod », il s'applique aussi à « basicprod » qui n'est pas exclu).
Le résultat devrait ressembler à ceci :
ADMIN Set the configuration options:
Pour la décision d'exclure ou non un élément particulier, le processus devrait évaluer chaque attribut puis évaluer l'ensemble des attributs :
exclude", l'attribut est évalué à "exclude" ;exclude", l'élément est exclus.Par exemple, si un paragraphe s'applique à trois produits et que l'éditeur a choisi de tous les exclure, le processus devrait exclure le paragraphe ; même si le paragraphe s'applique à un public ou une plateforme que l'on n'exclut pas. Mais si le paragraphe s'applique à un autre produit qui n'a pas été exclu, son contenu est encore pertinent pour la sortie attendue et devrait alors être préservé.
Pour la décision de marquer ou non un élément particulier, le processus devrait évaluer chaque valeur. À chaque fois qu'une valeur qui aura été fixée comme marquée apparaît dans son attribut (par exemple, audience="ADMIN"), le processus devrait ajouter la marque (flag). Lorsque plusieurs marques s'appliquent à un seul élément, des marques multiples devraient se trouver en sortie, typiquement dans l'ordre où celles-ci sont rencontrées.
Le marquage peut être réalisé avec le texte (par exemple, du texte en gras sur un fond coloré) ou avec des images. Lorsque le
même élément est évalué à la fois comme marqué et filtré (par exemple, marqué à cause d'une valeur d'attribut audience
et filtré à cause de ses valeurs d'attribut product), l'élément devrait être filtré.
OASIS DITA Version 1.1 Architectural Specification — OASIS Standard, 1 August 2007
Copyright © OASIS Open 2005, 2007. All Rights Reserved.