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.