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
- 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.
En commençant avec JMRI 2.9.4, JMRI utilise un schéma XML au lieu des DTDs et ce processus est différent.