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 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
-
Dans le répertoire ${ditaot.home}/plugins du DITA-OT, créer un
répertoire nommé fr.masociete.doctypes
-
On va maintenant créer un topic de test, utile pour le tutoriel
-
Dans le répertoire du plugin, créez un topic de type
concept nommé test.dita.
-
Ouvrez-le et ajoutez un élément apiname dans le premier
paragraphe du contenu.
-
Le topic est valide, sauvegardez.
-
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.
-
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.
-
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.
Suppression du domaine
-
Localisez la ligne où est déclaré le domaine programing et mettez
l'ensemble en commentaires XML :
-
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 )
-
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.
-
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.
-
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 "|".
-
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.
Validation de la DTD
-
Rouvrir le topic test.dita.
-
En mode texte, remplacez la déclaration de la DTD pour pointer vers votre
propre nouvelle DTD.
-
Trouvez la déclaration <!DOCTYPE concept PUBLIC
"-//OASIS//DTD DITA Concept//EN" "concept.dtd"> et
effacez-la.
-
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.
-
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.