Referencia local de XSL dentro de XML-File

Primero una breve descripción de la tarea:

Hay un archivo XML que hace referencia a una hoja de estilo xsl que está dentro de un * .dll. El comienzo de este XML se ve de la siguiente manera:

Este archivo xml se puede abrir y mostrar como HTML dentro de Internet Explorer y solo como IE. (El xsl transforma el xml en html)

Como puede ver, hace referencia a la carpeta del sistema win32 , en la que se guarda el archivo dll. Hacer referencia con “res: //” funciona.

Pero ahora no quiero almacenar mi dll dentro de la carpeta del sistema, pero bajo una carpeta diferente digamos% ALLUSERSPROFILE% (variable de entorno) que, por ejemplo, en Windows XP es C: \ Documents and Settings \ All Users o en Win7 C: \ Users \ Public (No estoy seguro de eso).

¿Cómo hago referencia al dll que se encuentra en esa carpeta? ¿Es posible hacer esto usando variables de entorno, de modo que sea independiente del sistema? ¿Qué solución recomendarías? (Todos los datos html, xsl se guardan localmente dentro de la dll en la computadora local).

Hasta ahora he tratado de cambiar la línea de referencia a lo siguiente:

También he intentado lo mismo con la carpeta raíz c: e incluso sin la ruta absoluta que tiene todos los archivos (xml y dll) en la misma carpeta. Todos los bashs sin res: // dieron como resultado el siguiente mensaje de error :

El sistema no puede ubicar el recurso especificado. Error al procesar el recurso ‘file: /// C: / Documents and Settings / All Users / name_xsl.dll / … o’ file: /// C: /name_xsl.dll/frameset.xsl ‘

¿Podrías ayudarme? ¿Por qué no encuentra el archivo? (los nombres de los archivos son ficticios)

Esta es la solución:

  

Notas:

  1. DEBE usar el protocolo res: // para acceder a un recurso dentro de un archivo.
  2. Las barras diagonales del sistema de archivos se pueden codificar como% 5C. Posiblemente las barras diagonales también funcionarán.

Ejemplo: Probé este ejemplo para el protocolo file: //, pero debería funcionar de la misma manera que el protocolo res :. En mi sistema, tengo un archivo de texto ubicado en:

 C:\Program Files\CodeGear\Delphi for PHP\2.0\privacy.txt 

Puedo acceder a este archivo, ingresando en la barra de navegación del Windows File Explorer:

 file:///%ProgramFiles%/CodeGear/Delphi for PHP/2.0/privacy.txt 

Observe las barras invertidas convertidas en barras diagonales, y no necesita escapes de espacios. Esto ha sido probado y funciona. El equivalente en el protocolo de res no se ha probado, pero debería funcionar de la misma manera, excepto, por supuesto, que el protocolo de res es ligeramente diferente, ya que también incluye un número de índice de recursos.

Consulte http://msdn.microsoft.com/en-us/library/ie/aa767740(v=vs.85).aspx para obtener la syntax.