Lorsqu'un fichier XML est associé à une définition DTD ou à un schéma XML, il est lié aux éventuelles règles structurelles contenues dans la DTD ou dans le schéma XML. Pour être considéré comme un fichier XML valide, un document doit être accompagné d'une définition DTD ou d'un schéma XML, et il doit être conforme à toutes les déclarations de la définition DTD ou du schéma XML.
Il existe deux méthodes différentes pour associer des fichiers XML à des définitions DTD ou à des schémas XML.
<!DOCTYPE root-name PUBLIC "InvoiceId" "C:\mydtds\Invoice.dtd">
InvoiceId est l'identificateur public du fichier DTD. Ce dernier est utilisé pour associer le fichier XML à un fichier DTD (dans ce cas, le fichier DTD est Invoice.dtd). Si l'identificateur public InvoiceId correspond à la Clé de l'entrée de catalogue XML du fichier Invoice.dtd, alors l'identificateur URI de l'entrée de catalogue XML (qui contient des informations sur l'emplacement du fichier Invoice.dtd) sera utilisé pour localiser la définition DTD. Sinon, l'identificateur système du DOCTYPE ("C:\mydtds\Invoice.dtd"), qui désigne directement l'emplacement du système de fichiers de la définition DTD, est utilisé pour localiser la définition DTD.
Remarque : vous pouvez également utiliser un identificateur système comme Clé d'une entrée de catalogue XML. Dans ce cas, une balise DOCTYPE telle que la suivante est intégrée au fichier XML :
<!DOCTYPE Root-name SYSTEM "MyDTD.dtd">
où MyDTD.dtd est l'identificateur système qui correspond à la Clé d'une entrée de catalogue XML.
En cas d'association d'un fichier XML avec un schéma XML, un ou plusieurs attributs d'emplacement de schéma sont intégrés au fichier XML. Les informations de l'attribut schemaLocation sont fournies comme "astuce" au processeur XML. Les exemples suivants affichent des attributs schemaLocation.
<purchaseOrder xmlns="http://www.ibm.com" xsi:schemaLocation="http://www.ibm.com C:\myschemas\PurchaseOrder.xsd"> <shipTo country="US"> ...
<purchaseOrder xmlns="http://www.ibm.com" xsi:schemaLocation="http://www.ibm.com PO.xsd"> <shipTo country="US"> ....
Dans l'exemple 1, 'l'astuce' de l'attribut schemaLocation ('C:\myschemas\PurchaseOrder.xsd') désigne directement l'emplacement du système de fichiers ou l'identificateur URI du schéma XML. Dans ce cas, le fichier schéma sera localisé directement par le processeur XML.
Dans l'exemple 2, 'l'astuce' de l'attribut schemaLocation ('PO.xsd') désigne une entrée de catalogue XML. PO.xsd correspond à la Clé de l'entrée de catalogue XML de PurchaseOrder.xsd, et l'identificateur URI de l'entrée de catalogue XML (qui contient des informations sur l'emplacement du fichier PurchaseOrder.xsd) sera utilisé pour localiser le schéma XML.
Dans ces deux exemples, http://www.ibm.com dans la balise xsi:schemaLocation est un identificateur URI qui identifie l'espace de nom du schéma XML.
<purchaseOrder xmlns:="www.ibm.com" xsi:schemaLocation="http://www.ibm.com po/xsd/PurchaseOrder.xsd ">
L'attribut schemaLocation pointe vers la Clé et l'emplacement réel du schéma.
La définition DTD ou le schéma XML se trouve sur un serveur distant
Plusieurs fonctions de l'éditeur XML, telles que la validation et l'assistant de contenu, nécessitent la disponibilité d'une définition DTD ou d'un schéma XML. La documentation du produit fournit des informations d'utilisation concernant le cas d'une définition DTD ou d'un schéma XML se trouvant sur votre machine local. Cependant, dans de nombreux cas, la définition DTD ou le schéma XML peut se trouver sur un serveur distant, par exemple :
<!DOCTYPE Catalog PUBLIC "abc/Catalog" "http://xyz.abc.org/dtds/catalog.dtd">
Normalement, ce cas ne pose aucun problème, car la définition DTD ou le schéma XML peut être récupéré depuis le serveur distant. Cependant, si vous vous trouvez derrière un pare-feu, et que vous ne possédez pas de système SOCKSified, le plan de travail ne vous permettra pas de spécifier un serveur socks pour récupérer une définition DTD ou un schéma XML. Si vous ne pouvez pas utiliser SOCKSify sur votre système, récupérez une copie de la définition DTD ou du schéma XML (à l'aide d'un navigateur Web, par exemple) et enregistrez cette copie sur votre machine locale pour résoudre ce problème. Ensuite, vous pouvez soit placer une copie locale dans le même projet que celui de votre fichier XML, soit utiliser le catalogue XML pour associer un identificateur public avec l'emplacement (local) de la définition DTD.
Remarque : si vous possédez un fichier XML associé à un schéma XML ou une définition DTD se trouvant à un autre emplacement du réseau, et que vous travaillez sur une machine non connectée au réseau, vous pouvez suivre les étapes décrites ci-dessus si vous souhaitez utiliser l'assistant du contenu ou valider votre fichier XML.
Si vous créez un association directe entre un fichier XML et un schéma XML ou un fichier DTD, vous devrez rechercher tous les fichiers XML désignés et les mettre à jour avec le nouvel emplacement de la définition DTD ou du schéma à chaque modification de l'emplacement du schéma ou de la définition DTD. Si, en revanche, vous associez un fichier XML à un schéma XML ou une clé DTD, alors, lorsque vous modifierez l'emplacement du schéma ou de la définition DTD, vous n'aurez qu'à mettre à jour l'entrée du catalogue XML, et non pas chaque fichier XML individuellement.
Par exemple, une définition DTD appelée "Building.dtd" est associée à cinq fichiers XML : Bureau.xml, Maison.xml, Appartement.xml, Banque.xml et BureaudePoste.xml. Vous déplacez le fichier DTD Building.dtd vers un nouvel emplacement. S'il existe une association de direction entre le fichier Building.dtd et tous les fichiers XML, vous devrez mettre à jour la déclaration <DOCTTYPE> de chaque fichier XML afin qu'elle intègre le nouvel emplacement du fichier Building.dtd. Mais, s'il existe une association de catalogue XML, et que tous les fichiers XML désignent uniquement la clé du fichier Building.dtd, vous devrez alors mettre à jour uniquement l'identificateur URI, et tous les fichiers XML pointeront vers le nouvel emplacement du fichier Building.dtd.
Après avoir mis à jour une entrée dans le catalogue XML, vous devrez probablement actualiser la vue de l'éditeur XML de sorte qu'elle utilise les nouvelles informations. Pour y parvenir, cliquez sur le bouton Recharger les dépendances dans la barre d'outils et la vue sera mise à jour à l'aide des paramètres en cours du catalogue XML. Il vous suffit d'actualiser l'éditeur XML lorsqu'un fichier XML ouvert désigne une entrée de catalogue XML qui a été mise à jour.
Pour plus d'informations, voir Tâches associées.
(c) Copyright 2001, World Wide Web Consortium (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University).