Altova MapForce 2024 Professional Edition

Funcionamiento de los catálogos

Inicio Anterior Inicio Siguiente

Los catálogos se pueden usar para redirigir los esquemas DTD y XML. El concepto tras los mecanismos es el mismo en los dos casos, pero los detalles son distintos; los explicamos a continuación.

 

DTDs

Los catálogos se suelen usar para redirigir una llamada a un DTD o un URI local. Para ello se asignan, en el archivo de catálogo, identificadores públicos o del sistema al URI local necesario. De este modo, cuando se lee la declaración DOCTYPE en un archivo XML, el identificador de sistema o público localiza el recurso local necesario con ayuda de la asignación del archivo de catálogo.

 

Para los esquemas más utilizados el identificador PUBLIC suele estar predefinido y, por tanto, sólo hace falta que el URI del archivo de catálogo asigne el identificador PUBLIC a la copia local correcta. Cuando se analiza el documento XML, se lee el identificador PUBLIC del documento. Si se encuentra este identificador en un archivo de catálogo, se buscará la URL correspondiente del archivo de catálogo y se leerá el esquema desde esta ubicación. Por ejemplo, imaginemos que abrimos este archivo SVG en MapForce:

 

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

 

Se busca en el catálogo el identificador PUBLIC de este archivo SVG. Imaginemos que el archivo de catálogo contiene esta entrada:

 

<catalog>

 ...

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

 ...

</catalog>

 

En este caso hay una coincidencia del identificador PUBLIC. La consulta del SVG DTD se redirige al URL schemas/svg/svg11.dtd (que es relativo al archivo de catálogo). Este es un archivo local y se usa como DTD para el archivo SCG. Si en el catálogo no hay una asignación para el identificador Public, entonces se usa la URL del documento XML (en el archivo SVG del ejemplo anterior la URL de Internet es: http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd).

 

Esquemas XML

En MapForce también puede usar catálogos para redireccionar a un esquema XML. En el archivo de instancia XML, la referencia al esquema sucederá en el atributo xsi:schemaLocation del elemento de documento de nivel superior del documento XML. Por ejemplo:
 

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

 

El valor del atributo xsi:schemaLocation tiene dos partes: un espacio de nombres (verde) y un URI (resaltado). La parte del espacio de nombres se usa en el catálogo para la asignación con el recurso alternativo. Por ejemplo, esta entrada de catálogo redirige la referencia del esquema anterior a un esquema en una ubicación alternativa.

 

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

 

Por lo general, la parte URI del valor del atributo xsi:schemaLocation es una ruta a la ubicación real del esquema. Sin embargo, si se hace referencia al esquema a través de un catálogo, no es necesario que la parte URI apunte a un esquema XML real, aunque el esquema debe existir para que el atributo xsi:schemaLocation siga siendo válido desde el punto de vista léxico. Por ejemplo, el valor foo sería suficiente para que la parte URI del valor del atributo sea válida.

 

 

© 2018-2024 Altova GmbH