Le fonctionnement des catalogues

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Configurer RaptorXML > Catalogues XML  >

Le fonctionnement des catalogues

Cette section :

 

Mappage d'identifiants publics et de système dans des URL locales
Mappage de chemins de fichier, URL Web et de noms dans des URL locales

 

Les catalogues servent à rediriger les appels vers des ressources à distance vers une URL locale. Cela est effectué par le biais de mappage, dans le fichier de catalogue, les identifiants publics ou de système, les URI ou des parties d'identifiants, ou des URIs de l'URL locale requise.

 

Mappage d'identifiants publics et de système dans des URL locales

Lorsque la déclaration DOCTYPE d'un DTD dans un fichier XML est lue, l'identifiant public ou système de la déclaration localise la ressource requise. Si l'identifiant sélectionne une ressource à distance ou si l'identifiant n'est pas un localisateur, il peut toujours être mappé par le biais d'une entrée de catalogue dans une ressource locale.

 

Considérons par exemple le fichier SVG suivant :

 

<?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>

  ...

</svg>

 

Son identifiant public est : -//W3C//DTD SVG 1.1//EN

Son identifiant système est : http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd

 

Une entrée de catalogue pourrait mapper l'identifiant public dans une URL locale comme l'exemple suivant :

 

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

 

Ou bien, une entrée de catalogue pourrait mapper l'identifiant de système dans une URL locale comme l'exemple suivant :

 

<system systemId="http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" uri="schemas/svg/svg11.dtd"/>

 

En cas de correspondance avec l'identifiant public ou système dans le catalogue, l'URL à laquelle il est mappé est utilisée. (Les chemins relatifs sont résolus avec une référence à un attribut xml:base dans l'élément de catalogue de redirection ; L'URL de base de fallback est l'URL du fichier de catalogue.) Si aucune correspondance ne peut être établie pour l'identifiant public ou système dans le catalogue, l'URL dans le document XML sera réutilisée (dans l'exemple ci-dessus : http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd).

 

Mappage de chemins de fichier relatifs ou absolus, URL Web ou de noms dans des URL locales

L'élément uri peut être utilisé pour mapper un chemin de fichier relatif ou absolu ou une URL Web, un bien un simple nom vers une URL local, comme suit:

 

<uri name="doc.xslt" uri="C:\Docs\doc.xslt"/>
<uri name="U:\Docs\2013\doc.xslt" uri="C:\Docs\doc.xslt"/>
<uri name="http://www.altova.com/schemas/doc.xslt" uri="C:\Docs\doc.xslt"/>
<uri name="foo" uri="C:\Docs\doc.xslt"/>

 

Lorsque la valeur name est rencontrée, elle est mappée à la ressource spécifiée dans l'attribut uri. Avec un différent catalogue, le même nom peut être mappé vers une ressource différente. Par exemple, si vous avez :
 

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

 

Normalement, la part d'URI de la valeur de l'attribut (en gras dans l'exemple ci-dessus) est un chemin vers l'emplacement de schéma. Néanmoins, si le schéma est référencé par le biais d'un catalogue, la partie d'URI ne doit pas obligatoirement pointer vers un Schéma XML réel, mais elle doit exister de manière à ce que la validité lexicale de l'attribut xsi:schemaLocation soit maintenue. Une valeur de foo, par exemple, serait suffisante pour la part URI de la valeur d'attribut de xsi:schemaLocation (au lieu de Orgchart.xsd). Le schéma est situé dans le catalogue au moyen de la partie espace de noms de la valeur d'attribut xsi:schemaLocation. Dans l'exemple ci-dessus, la partie espace de noms est http://www.altova.com/schemas/orgchart.

 

Dans le catalogue, l'entrée suivante situerait le schéma sur la base de cette partie d'espace de noms.

 

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

 

Pour plus d'informations concernant ces éléments, voir la spécification de Catalogues XML.

 


© 2019 Altova GmbH