Cómo funcionan los catálogos

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Instalar RaptorXML+XBRL Server > Catálogos XML >

Cómo funcionan los catálogos

Temas de este apartado:

 

Asignar identificadores públicos y de sistema a direcciones URL locales
Asignar rutas de acceso, direcciones URL web y nombres a direcciones URL locales

 

La función de los catálogos es redireccionar llamadas a recursos remotos a una URL local. Esto se consigue mediante asignaciones en el archivo de catálogo entre identificadores públicos o de sistemas, identificadores URI o partes de identificadores y la URL local correspondiente.

 

Asignaciones entre identificadores públicos y de sistema y URL locales

Durante la lectura de la declaración DOCTYPE de una DTD en un archivo XML, el identificador público o de sistema de la declaración encuentra el recurso necesario. Si el identificador selecciona un recurso remoto o si el identificador no es un localizador, entonces se puede asignar a un recurso local mediante una entrada en el catálogo.

 

Por ejemplo, este archivo SVG:

 

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

 

Su identificador público es: -//W3C//DTD SVG 1.1//EN

Su identificador de sistema es: http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd

 

En el catálogo se puede añadir una entrada para asignar el identificador público a una URL local. Por ejemplo:

 

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

 

O una entrada para asignar el identificador de sistema a una URL local. Por ejemplo:

 

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

 

Si se usa el identificador público o de sistema que aparece en el catálogo, entonces se usa la URL a la que está asignado. Las rutas relativas se resuelven con referencia a un atributo xml:base en el elemento de redirección del catálogo. La URL base de reserva es la URL del archivo de catálogo. Por el contrario, si no se usa el identificador público o de sistema que aparece en el catálogo, entonces se usará la URL del documento XML (en nuestro ejemplo sería la URL http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd).

 

Asignaciones entre rutas de archivo relativas/absolutas, direcciones URL o nombres y URL locales

El elemento uri se puede usar para asignar una ruta de archivo relativa/absoluta, una dirección URL o un nombre a una URL local. Por ejemplo:

 

<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"/>

 

Cuando se encuentra el valor de name, este se asigna al recurso especificado en el atributo uri. Con un catálogo distinto, el mismo nombre se podría asignar a un recurso diferente. Por ejemplo:
 

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

 

Por lo general, la parte URI del valor del atributo (en negrita) 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 la parte URI del valor del atributo xsi:schemaLocation (en vez de Orgchart.xsd). El esquema está ubicado dentro del catálogo gracias a la parte de espacio de nombres del valor del atributo xsi:schemaLocation. En el ejemplo anterior la parte de espacio de nombres es http://www.altova.com/schemas/orgchart.

 

En el catálogo la entrada siguiente encontraría el esquema por la parte de espacio de nombres.

 

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

 

Para más información sobre estos elementos consulte la especificación XML Catalogs.

 


© 2019 Altova GmbH