L'aspect logique des documents n'est pas décrit seulement par leur structure hiérarchique et les références. Chaque élément d'un document peut porter un ou plusieurs attributs logiques qui ajoutent de la sémantique à l'élément. Les attributs logiques sont définis pour chaque type de document dans son schéma de structure.
Il existe des attributs globaux, qui peuvent être associés à n'importe quel élément défini dans le schéma de structure, et des attributs locaux, qui ne peuvent être associés qu'aux éléments d'un type donné.
Dans le schéma de structure Rapport, un attribut global est défini, Importance, qui peut prendre deux valeurs :
ATTR Importance = Définition, Important;
De plus, un attribut local à valeur numérique, appelé Numéro_prem_page, est défini pour l'élément Rapport :
Rapport (ATTR Numéro_prem_page = Integer)
L'éditeur permet d'associer des attributs à des éléments de la structure logique des documents, de visualiser leurs valeurs, de modifier ces valeurs ou de supprimer des attributs. Tout cela se fait en fonction du schéma de structure : seuls les attributs prévus par le schéma peuvent être associés à un élément et ils ne peuvent prendre que les valeurs prévues.
En plus des attributs explicitement définis dans chaque schéma de structure, il existe un attribut global par défaut, l'attribut Langue. Cet attribut peut être associé à n'importe quel élément ou chaîne de caractères pour indiquer la langue dans laquelle le texte de cet élément est écrit.
L'attribut Langue est pris en compte par l'éditeur lorsqu'il effectue des traitements de nature linguistique, comme la coupure des mots en fin de ligne (voir section 8.3.4) ou la correction orthographique (voir section 21). Pour que ces traitements donnent de bons résultats, il faut que l'attribut Langue ait une valeur correcte, et cela pour les différentes parties du document, si le document est multilingue.
La notion de langue recouvre les langues naturelles (Français, Anglais, Allemand, Italien, Espagnol, Grec, Portuguais, etc.) et quelques « dialectes » particuliers. Parmi ces derniers, on peut citer :
L'éditeur met systématiquement un attribut Langue sur l'élément racine (ici, l'élément Rapport) des documents qu'il crée. La valeur par défaut de cet attribut est la langue de dialogue de l'éditeur (voir section 23.1.1), mais elle peut être changée (voir section 6.3).
Tout élément de texte est considéré comme écrit dans la langue spécifiée par l'attribut Langue porté par le premier élément englobant qui possède un tel attribut. On peut ainsi définir la langue de toute une section d'un Rapport en mettant un attribut Langue sur l'élément représentant cette section. Mais, si tout le document est écrit dans une seule langue, celle du dialogue, il n'y a rien de particulier à faire.
L'attribut Langue et les attributs définis dans le schéma de structure peuvent être affectés aux éléments sélectionnés grâce au menu « Attributs ». Le contenu de ce menu dépend de la sélection courante et des schémas de structure : il donne la liste de tous les attributs qui peuvent être appliqués au premier élément sélectionné. De plus, si cet élément a déjà des attributs, ceux-ci apparaissent dans le menu précédés d'une étoile.
Pour associer un attribut aux éléments sélectionnés, il faut choisir l'attribut voulu dans le menu « Attributs », ce qui affiche un formulaire, où on peut choisir ou saisir la valeur à donner à cet attribut. On valide la commande en cliquant sur le bouton « Appliquer ». Le formulaire reste à l'écran et peut être réutilisé pour appliquer le même attribut à un autre élément, après avoir éventuellement changé de valeur. Pour faire disparaître le formulaire, il faut cliquer sur le bouton « Abandonner ».
Ainsi, si on sélectionne un simple mot dans ce paragraphe, on peut lui appliquer l'attribut défini dans le schéma Rapport : Importance . Si on sélectionne tout le rapport, on a en plus l'attribut Numéro_prem_page.
(A modifier)
Un autre exemple est donné sur le dessin de la figure 3, qui utilise un autre schéma de structure : Draw2 (voir section 18.1). Dans ce schéma de structure, de nombreux attributs sont définis pour exprimer les relations géométriques entre les éléments. Si on sélectionne le rectangle gris, en cliquant sur sa surface, et qu'on appelle le menu « Attributs », on voit non seulement les attributs du schéma Rapport, mais aussi ceux du schéma Draw2. On peut choisir l'attribut Centré_horiz, puis cliquer sur le rectangle blanc, ce qui a pour effet de centrer le rectangle gris par rapport au rectangle blanc. Ensuite, tout déplacement ou changement de hauteur (voir section 18) du rectangle blanc déplacera le rectangle gris de façon à maintenir la relation de centrage exprimée par l'attribut.
[Here is a Drawing]Figure 3 - attributs de relation de position
Un schéma de structure peut rendre un attribut obligatoire pour certains types d'éléments. Dans ce cas, lorsqu'un élément de ce type est créé, l'éditeur impose la saisie de la valeur de cet élément : il refuse toute autre commande tant que l'attribut n'a pas de valeur. Un exemple est donné par l'attribut Origine_lien qui s'applique à un élément LienSimple du type de document Dessin (voir section 8.5.1). Lorsqu'on crée un élément du type LienSimple, la saisie de l'attribut Origine_lien devient obligatoire (il faut désigner l'objet origine du lien).
Pour connaître tous les attributs associés à un élément, on sélectionne d'abord cet élément, puis on appelle le menu « Attributs ». Celui-ci donne la liste de tous les attributs qui peuvent être appliqués à l'élément. Dans cette liste, une bascule précède les attributs qui sont effectivement associés à l'élément.
Pour connaître la valeur d'un attribut porté par un élément, on sélectionne d'abord cet élément, puis on appelle le menu « Attributs » ; la bascule indique si l'attribut à consulter est effectivement porté par l'élément. En choisissant cette entrée du menu, on fait apparaître un formulaire qui affiche la valeur de l'attribut. En cliquant sur le bouton « Abandonner », le formulaire se ferme.
Pour supprimer un attribut porté par un élément, on fait de même, mais on clique sur le bouton « Supprimer » du formulaire. Ce même formulaire reste à l'écran et peut à nouveau être utilisé pour supprimer un attribut de même type porté par un autre élément : il suffit de sélectionner l'élément voulu et de cliquer à nouveau sur le bouton « Supprimer ». On clique sur le bouton « Abandonner » lorsque le formulaire n'est plus utile.
Pour modifier la valeur d'un attribut porté par un élément, on opère de la même façon, mais on clique sur le bouton « Appliquer » après avoir saisi la nouvelle valeur de l'attribut.
Le formulaire de recherche de texte et structure (voir sections 3.8 et 4.2.2) peut aussi être utilisé pour rechercher les éléments qui portent un attribut quelconque ou un attribut donné. Pour cela, il faut que les champs « Texte à chercher » et « Type à chercher » soient vides. On choisit la première entrée de la liste « Attribut à chercher » (Quelconque) ou l'entrée correspondant à l'attribut voulu, puis on clique sur le bouton « Confirmer ». L'éditeur cherche alors, dans le domaine défini par le menu « Où chercher » (voir section 3.8), le prochain attribut demandé. Il sélectionne l'élément qui porte cet attribut et il affiche, dans le formulaire, sous la zone « Attribut à chercher », la valeur de l'attribut trouvé et son type si on cherche un attribut quelconque.
La liste des attributs à chercher peut être mise à jour en sélectionnant dans la liste « Natures » les schémas de structure qui définissent ces attributs (voir section 4.2.1).
La recherche d'un attribut peut être combinée avec la recherche de texte (et dans ce cas elle peut aussi être combinée avec un remplacement) et/ou avec la recherche d'un type d'élément donné (voir section 4.2.2).