Author: Bob Jacobsen
Keywords: JMRI technical code xml usage

# JMRI: Utilisation de DTD XML

Cette page décrit l'utilisation des DTD XML dans JMRI avant la version 2.9.4. Ces DTD ont été remplacés par un schéma XML dans JMRI 2.9.4.

Dans les distributions JMRI, les DTD sont stockés dans le répertoire xml/DTD . Notez qu'ils ne sont pas stockés dans chaque répertoire à côté des fichiers XML. Il y a tout simplement de trop nombreux emplacements pour garder un tel ensemble de dossiers DTD à jour. JMRI lui-même, via la classe jmri.jmrit.XmlFile, fournit un support pour localiser ces fichiers lorsque l'analyseur XML a besoin d'eux.

Chaque fichier contient une ligne DOCTYPE qui spécifie un nom de DTD. Il existe trois méthodes différentes utilisées pour localiser le fichier DTD réel:

- Le navigateurs Web regarde exactement où est la ligne DOCTYPE précise, et doit trouver le DTD qui fonctionne.
- JMRI 1,8 et antérieur suppose que le nom est relatif au répertoire xml/DTD du programme, et cherche à l'utiliser. En pratique, cela permet deux formes de la ligne DOCTYPE:
  - name.dtd
  - .. / DTD / name.dtd
  Au début des fichiers XML utilisés à la fois, le programme lui-même pourrait générer l'un ou l'autre en fonction des circonstances.
- JMRI 1.9.2 et les versions ultérieures offrent une procédure de recherche plus puissante en utilisant les classe DTD jmri.util.JmriLocalEntityResolver Il analyse les références dans le DOCTYPE et les manipule de plusieurs façons:
  - Si c'est une URL HTTP, les premières tentatives JMRI de trouver le fichier correspondant dans la distribution locale. Si c'est le cas, il utilise la copie locale, sinon, il tente de charger une copie de l'Internet en utilisant l'URL.
  - Si c'est un chemin de fichier qui commence par "../DTD/", JMRI regarde dans son xml local/DTD pour le fichier DTD.
  - Si le chemin est juste un nom de fichier, JMRI regarde dans son xml local/DTD pour le fichier DTD.
  - Dans les autres cas, par exemple, un chemin d'accès local ou absolu, JMRI regarde là pour le fichier DTD. Les chemins d'accès relatifs sont interprétés comme à partir du répertoire d'installation JMRI.
  Si le fichier ne peut pas être trouvé, le fichier XML n'est pas ouvert. Ces versions JMRI écrivent uniquement le nom du fichier DTD dans la ligne DOCTYPE lors de l'écriture de fichiers XML. Cette offre est en complète compatibilité avec les fichiers et les anciennes versions de JMRI retour à 1.7.1. Dans le même temps, car il peut gérer les URL HTTP, même sans une connexion Internet, il nous permet, à terme, d'aller de l'avant.

En commençant avec JMRI 2.9.4, JMRI utilise un schéma XML au lieu des DTDs et ce processus est différent.