Tutoriel : spécialiser un attribut

Spécialiser un attribut pour comprendre comment spécialiser la configuration du filtrage

Durée : 45 mn 
Contenus :

Une opération extrêmement simple

Spécialiser props pour ajouter une notion de "difficulté de recette"

L'objectif est de spécialiser l'attribut de filtrage @props pour pouvoir ajouter une difficulté de recette (@difficulte) qui puisse prendre les valeurs simple, modere et complexe.
Procédure :

    Organisation des répertoires et du catalogue

  1. Créez les répertoires difficultePropsDomain et dtd
  2. Créez le fichier difficultePropsDomain.ent
  3. Ajustez les catalogs
  4. Création de la spécialisation

  5. Dans le fichier difficultePropsDomain.ent :
    1. ajoutez la déclaration du nouvel attribut : <!ENTITY % difficulte-d-attribute "difficulte CDATA #IMPLIED">
      Ceci déclare l'attribut lui-même qui sera ensuite, dans le shell, ajouté comme extension des propriétés de filtrage.
    2. déclarez l'entité qui sera par la suite ajoutée aux "@domains" manipulés par un topic : <!ENTITY difficulte-d-att "a(props difficulte)">
      Le mot clé a, devant la propriété parenthésée indique que la spécialisation concerne les attributs. A nouveau, on notera que ceci est défini sous forme d'entité générale et non paramètre.
  6. Dans le fichier concept.dtd :
    1. Réalisez l'appel du fichier d'entités dans la partie "DOMAIN ATTRIBUTE DECLARATIONS" : <!ENTITY % difficulte-d-dec PUBLIC "nom déclaré dans le catalogue" "difficultePropsDomain.ent"> %difficulte-d-dec;
      Ceci rend disponible les entités paramètres précédemment déclarées.
    2. Modifiez la déclaration de props-attribute-extensions pour ajouter l'entité paramètre difficulte-d-attribute : <!ENTITY % props-attribute-extensions "%difficulte-d-attribute;" >
      Cette entité est appelée par %select-atts;, qui est associée à de nombreux éléments via %univ.atts;.
    3. Ajoutez l'entité de déclaration de domaine &difficulte-d-att; à l'entité générale included-domains.
      Une entité générale, donc pas de % mais un &.
    A ce stade, concept devrait être valide.
  7. Test

  8. Ouvrir "test.dita" et ajoutez une valeur "simple" au nouvel attribut "difficulte".
  9. Validez qu'il n'y a pas d'erreur.
Résultat :
La spécialisation fonctionne, il serait aussi possible de contraindre les valeurs de difficulte en utilisant un subjectScheme (voir les derniers transparents de la session métadonnées du module I).