Altova XMLSpy 2024 Enterprise Edition

Comment fonctionnent les catalogues

Accueil Préc Haut Suivant

Les catalogues peuvent être utilisés pour rediriger les Schémas DTD et XML. Alors que le concept derrière les mécanismes dans les deux cas est le même, les détails sont différents et expliqués ci-dessous.

 

DTD

Les catalogues sont communément utilisés pour rediriger un appel vers un DTD ou un URI local. Pour ce faire, des identifiants publics ou système sont mappés dans le fichier catalogue vers l’URI local requis. Donc, si la déclaration DOCTYPE dans un fichier XML est lue, son identifiant public ou système localise la ressource locale requise par le biais du mappage du fichier catalogue.

 

Pour les schémas populaires, l’identifiant PUBLIC est normalement prédéfini, requérant uniquement que l’URI dans le fichier catalogue mappe l’identifiant PUBLIC à la copie locale correcte. Lorsque le document XML est parsé, l’identifiant PUBLIC qui le compose est lu. Si cet identifiant est trouvé dans un fichier catalogue, l’URL correspondant dans le catalogue fichier sera consulté et le schéma sera lu depuis cet emplacement. Donc, par exemple, si le fichier SVG est ouvert dans XMLSpy :

 

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

 

<svg width="20" height="20" xml:space="preserve">

 <g style="fill:red; stroke:#000000">

    <rect x="0" y="0" width="15" height="15"/>

    <rect x="5" y="5" width="15" height="15"/>

 </g>

</svg>

 

L’identifiant PUBLIC de ce fichier SVG file est recherché dans le catalogue. Disons que le fichier catalogue contient l’entrée suivante :

 

catalog>

 ...

   <public publicId="-//W3C//DTD SVG 1.1//EN" uri="schemas/svg/svg11.dtd"/>

 ...

</catalog>

 

Dans ce cas, il y a une correspondance pour l’identifiant PUBLIC. En conséquence, le lookup pour SVG DTD est redirigé vers l’URL schemas/svg/svg11.dtd (qui est associé au fichier catalogue). Il s’agit d’un fichier local qui sera utilisé en tant que DTD pour le fichier SVG. S’il n’y a pas de mappage pour l’ID Public dans le catalogue, l’URL dans le document XML sera utilisé (dans l’exemple du fichier SVG ci-dessus, l’URL Internet est la suivante : http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd).

 

Schémas XML

Dans XMLSpy, vous pouvez utiliser des catalogues avec des Schémas XML. Dans le fichier d’instance XML, la référence au schéma apparaîtra dans l’attribut xsi:schemaLocation de l’élément de premier niveau du document XML. Par exemple,
 

xsi:schemaLocation="http://www.xmlspy.com/schemas/orgchart OrgChart.xsd"

 

La valeur de l’attribut xsi:schemaLocation a deux parties : une partie d’espace de noms (vert ci-dessus) et une partie URI (en surbrillance). La partie d’espace de noms est utilisée dans le catalogue pour effectuer le mappage vers la ressource alternative. Par exemple, la saisie catalogue suivante redirige la référence du schéma ci-dessus vers un schéma à un emplacement alternatif.

 

<uri name="http://www.xmlspy.com/schemas/orgchart" uri="C:\MySchemas\OrgChart.xsd"/>

 

Normalement, la partie URI de la valeur de l'attribut xsi:schemaLocation est le chemin vers l’emplacement actuel du schéma. Toutefois, si le schéma est référencé par le biais du catalogue, la partie URI doit pointer vers le schéma XML actuel mais doit exister pour que la validité lexicale de l’attribut xsi:schemaLocation soit maintenu. Une valeur foo, par exemple, suffirait à la partie URI de la valeur de l’attribut pour qu’elle soit valide.

 

 

© 2018-2024 Altova GmbH