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

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

  1. Dans le répertoire ${ditaot.home}/plugins/fr.masociete.doctypes, créez un répertoire nommé doctypes.
  2. Dans celui-ci, créez un répertoire concept. Généralement, on utilise ici le nom du topic.
  3. 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.

  4. Création d'un catalogue XML

  5. 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.
  6. 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>
  7. 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.
  8. Création du plugin

  9. 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é.
  10. 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é.
  11. 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>
  12. Enregistrement du plugin

  13. 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.
  14. Si "Run DITA OT integrator" n'apparait pas dans la fenêtre des scénarios

    , cliquez le bouton "+" et ajouter le scénario.
  15. Sélectionnez le scénario "Run DITA OT integrator" et démarrez-le.
  16. 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".
  17. Tester avec le fichier test.dita

  18. Déplacez le fichier test.dita dans le répertoire concept
  19. Ouvrez-le en mode text et changez sa déclaration : <!DOCTYPE concept PUBLIC "urn:pubid:fr:masociete.doctypes:concept" "concept.dtd">.
  20. 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.