Tutoriel : supprimer des domaines

Comment supprimer un domaine d'un modèle de topic existant.

Durée : 45 mn 
Contenus :

Dans ce tutoriel, on va supprimer le domaine "programing" (contenant les éléments apiname, msg, etc.) des contenus accessibles quand on manipule un topic de type concept. Comme tout ceci n'est qu'un exemple, on conservera la structure du topic concept, y compris le nom de l'élément racine.

Supprimer un domaine

Supprimer le domaine programing d'un topic de type concept

Création d'une adaptation de concept accessible dans le DITA OT

Pré-requis :
  • Localisez l'endroit où est installé le DITA-OT, dans les "framework" d'Oxygen. Ce répertoire sera nommé ${ditaot.home} par la suite.
Procédure :

    Création des répertoires

  1. Dans le répertoire ${ditaot.home}/plugins du DITA-OT, créer un répertoire nommé fr.masociete.doctypes
  2. On va maintenant créer un topic de test, utile pour le tutoriel
    1. Dans le répertoire du plugin, créez un topic de type concept nommé test.dita.
    2. Ouvrez-le et ajoutez un élément apiname dans le premier paragraphe du contenu.
    3. Le topic est valide, sauvegardez.
  3. Toujours dans le nouveau répertoire du plugin, crééz un répertoire nommé dtd, c'est ici que seront toutes les modifications nécessaires à notre modèle.
  4. Copiez le fichier exercices-dita/squeletteIntegration/concept.dtd dans votre propre répertoire dtd. C'est ce fichier que l'on va adapter pour supprimer tout ce qui concerne le domaine programing.
  5. Ouvrez ce fichier dans Oxygen. Vous remarquerez que ce fichier est valide, ce qui est normal car Oxygen utilise des "XML Catalog" et sait donc où retrouver les fichiers appelés dans cette DTD.
  6. Suppression du domaine

  7. Localisez la ligne où est déclaré le domaine programing et mettez l'ensemble en commentaires XML :
    1. Sur la ligne précédant la déclaration de l'entité (<!ENTITY % pr-d-dec ) ajoutez un début de commentaire XML (<!-- 10/6/2015 pierre : suppression du domaine programmation )
    2. Et sur la ligne après l'appel de l'entité (>%pr-d-dec;) ajoutez la fin de commentaire (-->). Tout le texte apparait en vert.
    Oxygen déclare alors que la DTD n'est plus valide (indicateurs rouges le long des ascenseurs à droite). C'est normal, la suite de la DTD fait référence à des entités paramètres du domaine programing qui ne sont plus accessibles. Il faut donc corriger pour supprimer ces erreurs.
  8. Déplacez-vous à la première erreur (clic sur le premier trait rouge dans la barre ascenseur).
    La partie dans laquelle se trouve cette première erreur redéfinit les objets de base pour y ajouter ceux issus des domaines de spécialisation.
  9. Supprimez tout ce qui fait référence au domaine %pre-d-xxx;.
    On notera que le caractère "|" représente un "ou logique" entre deux entités paramètres. Il ne peut donc pas y avoir deux "|" qui se suivent dans l'écriture d'une DTD ; il ne peut pas non plus y avoir un "ou" entre quelque chose et "rien". Chaque fois que vous supprimez un %pre-d-xxx; validez donc bien la cohérence des "|".
  10. Remarque : A ce stade, il ne reste plus qu'une seule erreur liée à une entité paramètre non déclarée : &pr-d-att;. Effectivement, il faut supprimer &pr-d-att; qui était déclaré dans les entités du domaine.
    Déplacez-vous dans la partie "DOMAINS ATTRIBUTE OVERRIDE" et enlevez &pr-d-att; de l'entité générale included-domains.
    Plus d'erreurs, la DTD est valide.
  11. Validation de la DTD

  12. Rouvrir le topic test.dita.
  13. En mode texte, remplacez la déclaration de la DTD pour pointer vers votre propre nouvelle DTD.
    1. Trouvez la déclaration <!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> et effacez-la.
    2. Ajoutez à la place <!DOCTYPE concept SYSTEM "./dtd/concept.dtd">. Le fichier qui était valide devient maintenant invalide car apiname n'est plus reconnu par la nouvelle DTD.
  14. Supprimez l'élément apiname qui ne fait maintenant plus partie des vocabulaires de cette configuration du topic concept.
Résultat :
Quand on fait des spécialisations, il est toujours pratique d'avoir un document de test qui n'utilise pas toute la complexité de DITA pour sa validation. Contrairement à ce qui a été proposé dans ce tutoriel, on devrait donc mettre en place les catalogues spécifiques qu'une fois la spécialisation testée.

Le "DOCTYPE" serait alors dans un premier temps déclaré SYSTEM (Oxygen fait confiance aux chemins définis dans la DTD), puis dans un second temps déclaré PUBLIC.