Tutoriel : créer un plugin de modèles dans le DITA-OT
Apprendre à créer un plugin DITA-OT qui spécialise les modèles DITA.
Durée : 45 mn
Contenus :
Dans ce tutoriel, on va créer un plugin de modèle puis l'enregistrer dans le DITA-OT.
Toutes ces manipulations ne sont pas liées au standard DITA, mais bien à sa prise en
compte dans le DITA-OT.
Création d’un plugin
-
Un plugin a un nom et se situe dans le répertoire des plugins du DITA-OT
- Un plugin est déclaré dans un fichier plugin.xml
<plugin id="fr.masociete.doctypes">
<feature extension="dita.specialization.catalog.relative"
value="catalog.xml" type="file"/>
</plugin>
- Un plugin de déclaration de types de document ne fait qu’ajuster les catalogs du DITA-OT.
- Toute modification de plugin.xml ou des catalogs nécessite de faire
prendre en compte cela par le DITA-OT
Création du plugin fr.masociete.doctypes
Pré-requis :
Dans le répertoire
${ditaot.home}/plugins, le répertoire
fr.masociete.doctypes est déjà créé (voir
Supprimer le domaine programing d'un topic de type concept).
L'objectif
est alors de faire comprendre au DITA-OT que chaque fois que l'on utilisera le
nom de DTD urn:pubid:fr:masociete.doctypes:concept, cela voudra dire
que le processeur devra pointer sur notre fichier
concept.dtd.
Procédure :
Réorganisation des répertoires
-
Dans le répertoire ${ditaot.home}/plugins/fr.masociete.doctypes,
créez un répertoire nommé doctypes.
-
Dans celui-ci, créez un répertoire concept. Généralement, on
utilise ici le nom du topic.
-
Dans ce dernier, déplacez le répertoire dtd qui se trouvait à la
racine du plugin.
La structure ainsi créée isole bien tous les fichiers nécessaires à la DTD
du nouveau topic
concept. On pourra par la suite procéder de la
même façon pour spécialiser d'autres topics dans cette architecture.
Création d'un catalogue XML
-
Dans le répertoire ${ditaot.home}/plugins/fr.masociete.doctypes,
créez un fichier XML nommé catalog.xml. Ce fichier va permettre de
déclarer le catalogue de tous les fichiers identifiés dans ce plugin.
-
Plus précisément, et dans un but de modularité, ce catalog va
uniquement pointer vers un autre catalog qui déclarera ce qui est
nécessaire au topic concept.
Le contenu est le suivant :
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public">
<nextCatalog catalog="doctypes/concept/catalog.xml"/>
</catalog>
-
Dans le répertoire concept, créez un nouveau fichier
catalog.xml qui va déclarer le topic de concept
remanié.
Le contenu du fichier est le suivant
:
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public">
<public publicId="urn:pubid:fr:masociete.doctypes:concept" uri="./dtd/concept.dtd"/>
</catalog>
L'élément
public associe un
nom
logique avec un fichier, directement accessible à partir du
répertoire où se trouve le fichier catalog.
Création du plugin
-
Dans le répertoire ${ditaot.home}/plugins/fr.masociete.doctypes,
créez un fichier XML nommé plugin.xml.
Ce fichier va uniquement contenir un accès au catalogue précédemment
déclaré.
-
Dans ce fichier, créez un élément plugin avec un attribut
id dont la valeur est fr.masociete.doctypes
(<plugin id="fr.masociete.doctypes">). Le plugin est
déclaré.
-
Créez ensuite un enfant de cet élément dont le nom est feature :
<feature extension="dita.specialization.catalog.relative"
value="./catalog.xml" type="file"/>).
Le catalogue est maintenant référençable dans le
DITA-OT.
<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public">
<public publicId="urn:pubid:fr:masociete.doctypes:concept" uri="./dtd/concept.dtd"/>
</catalog>
Enregistrement du
plugin
-
Pour que le plugin soit pris en compte, il faut le faire enregistrer par le
DITA-OT. Pour se faire, ouvrez n'importe quelle map.
-
Si "Run DITA OT integrator" n'apparait pas dans la fenêtre des
scénarios
, cliquez le bouton "+" et ajouter le
scénario.
-
Sélectionnez le scénario "Run DITA OT integrator" et
démarrez-le.
-
En bas de l'écran, une fenêtre de résultats s'ouvre dans laquelle on voit
apparaître les étapes successives du processus ant d'intégration. A
la fin, il doit y avoir marqué : "BUILD SUCCESSFUL".
Tester avec le fichier test.dita
-
Déplacez le fichier test.dita dans le répertoire
concept
-
Ouvrez-le en mode text et changez sa déclaration : <!DOCTYPE concept
PUBLIC "urn:pubid:fr:masociete.doctypes:concept"
"concept.dtd">.
-
Enregistrez et vérifiez que le document est bien "valide", le plugin
fonctionne.
Résultat :
En cas d'erreur dans cette partie, si vous modifiez la structure du plugin (pas
celle de la DTD), il faut obligatoirement relancer l'intégrateur. Il en va de même
si de nouveaux types de documents sont ajoutés.