Esquemas de URI

Existen varios esquemas de URI (identificador uniforme de recursos) que puedes usar para hacer referencia a archivos que provienen del paquete de la aplicación, las carpetas de datos de la aplicación o la nube. También puedes usar un esquema de URI para hacer referencia a cadenas cargadas desde archivos de recursos (.resw) de la aplicación. Puedes usar estos esquemas de URI en tu código, en el marcado XAML, en el manifiesto del paquete de la aplicación o en las plantillas de notificación del sistema y de icono.

Características comunes de los esquemas de URI

Todos los esquemas descritos en este tema siguen las reglas típicas del esquema URI para la normalización y la recuperación de recursos. Consulte RFC 3986 para obtener la sintaxis genérica de un URI.

Todos los esquemas de URI definen la parte jerárquica por RFC 3986 como los componentes de autoridad y ruta de acceso del URI.

URI         = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
hier-part   = "//" authority path-abempty
            / path-absolute
            / path-rootless
            / path-empty

Esto significa que hay básicamente tres componentes en un URI. Inmediatamente después de las dos barras diagonales del esquema de URI es un componente (que puede estar vacío) denominado autoridad. Y inmediatamente después de eso es la ruta de acceso. Tomando el URI http://www.contoso.com/welcome.png como ejemplo, el esquema es "http://", la autoridad es "www.contoso.com" y la ruta de acceso es "/welcome.png". Otro ejemplo es el URI ms-appx:///logo.png, donde los componentes de autoridad están vacíos y toma un valor predeterminado.

El componente de fragmento se omite mediante el procesamiento específico del esquema de los URI mencionados en este tema. Durante la recuperación y comparación de recursos, el componente de fragmento no tiene ningún rodamiento. Sin embargo, las capas anteriores a una implementación específica pueden interpretar el fragmento para recuperar un recurso secundario.

La comparación se produce por bytes para byte después de la normalización de todos los componentes de IRI.

Distinción entre mayúsculas y minúsculas y normalización

Todos los esquemas de URI descritos en este tema siguen las reglas típicas de URI (RFC 3986) para la normalización y la recuperación de recursos para los esquemas. La forma normalizada de estos URI mantiene mayúsculas y minúsculas y descodifica caracteres sin servicio RFC 3986.

Para todos los esquemas de URI descritos en este tema, el esquema, la autoridad y la ruta de acceso no distinguen mayúsculas de minúsculas por estándar o, de lo contrario, el sistema procesa de forma que no distingue mayúsculas de minúsculas. Nota La única excepción a esa regla es la autoridad de , que distingue mayúsculas de ms-resourceminúsculas.

ms-appx y ms-appx-web

Usa el ms-appx esquema de URI o ms-appx-web para hacer referencia a un archivo que procede del paquete de la aplicación (consulta Empaquetado de aplicaciones). Los archivos del paquete de la aplicación suelen ser imágenes estáticas, datos, código y archivos de diseño. El ms-appx-web esquema tiene acceso a los mismos archivos que ms-appx, pero en el compartimiento web. Para obtener ejemplos y más información, consulta Hacer referencia a una imagen u otro recurso del marcado y el código XAML.

Nombre de esquema (ms-appx y ms-appx-web)

El nombre del esquema de URI es la cadena "ms-appx" o "ms-appx-web".

ms-appx://
ms-appx-web://

Autoridad (ms-appx y ms-appx-web)

La autoridad es el nombre de identidad del paquete que se define en el manifiesto del paquete. Por lo tanto, se limita en el formulario URI y IRI (identificador de recursos internacionalizado) al conjunto de caracteres permitido en un nombre de identidad de paquete. El nombre del paquete debe ser el nombre de uno de los paquetes del gráfico de dependencias de paquetes de la aplicación en ejecución actual.

ms-appx://Contoso.MyApp/
ms-appx-web://Contoso.MyApp/

Si aparece cualquier otro carácter en la entidad, se producirá un error en la recuperación y la comparación. El valor predeterminado de la autoridad es el paquete de la aplicación que se está ejecutando actualmente.

ms-appx:///
ms-appx-web:///

Información de usuario y puerto (ms-appx y ms-appx-web)

El ms-appx esquema, a diferencia de otros esquemas populares, no define una información de usuario ni un componente de puerto. Dado que "@" y ":" no se permiten como valores de autoridad válidos, se producirá un error en la búsqueda si se incluyen. Se produce un error en cada uno de los siguientes.

ms-appx://john@contoso.myapp/default.html
ms-appx://john:password@contoso.myapp/default.html
ms-appx://contoso.myapp:8080/default.html
ms-appx://john:password@contoso.myapp:8080/default.html

Ruta de acceso (ms-appx y ms-appx-web)

El componente de ruta de acceso coincide con la sintaxis RFC 3986 genérica y admite caracteres no ASCII en irIs. El componente de ruta de acceso define la ruta de acceso del archivo lógico o físico de un archivo. Ese archivo se encuentra en una carpeta asociada a la ubicación instalada del paquete de la aplicación, para la aplicación especificada por la autoridad.

Si la ruta de acceso hace referencia a una ruta de acceso física y un nombre de archivo, se recupera ese recurso de archivo físico. Pero si no se encuentra este archivo físico, el recurso real devuelto durante la recuperación se determina mediante la negociación de contenido en tiempo de ejecución. Esta determinación se basa en la configuración de la aplicación, el sistema operativo y el usuario, como el lenguaje, el factor de escala de visualización, el tema, el contraste alto y otros contextos en tiempo de ejecución. Por ejemplo, se puede tener en cuenta una combinación de los idiomas de la aplicación, la configuración de visualización del sistema y la configuración de contraste alto del usuario al determinar el valor real del recurso que se va a recuperar.

ms-appx:///images/logo.png

El URI anterior puede recuperar realmente un archivo dentro del paquete de la aplicación actual con el siguiente nombre de archivo físico.

\Images\fr-FR\logo.scale-100_contrast-white.png

Por supuesto, también podría recuperar ese mismo archivo físico haciendo referencia a él directamente por su nombre completo.

<Image Source="ms-appx:///images/fr-FR/logo.scale-100_contrast-white.png"/>

El componente de ruta de acceso de ms-appx(-web) es, como los URI genéricos, distingue mayúsculas de minúsculas. Sin embargo, cuando el sistema de archivos subyacente por el que se accede al recurso no distingue mayúsculas de minúsculas, como para NTFS, la recuperación del recurso se realiza sin distinción entre mayúsculas y minúsculas.

La forma normalizada del URI mantiene mayúsculas y minúsculas y descodifica el porcentaje (un símbolo "%" seguido de los caracteres hexadecimales de dos dígitos) RFC 3986 no servidos. Los caracteres "?", "#", "/", "*" y """ (el carácter de comillas dobles) deben estar codificados en porcentaje en una ruta de acceso para representar datos como nombres de archivo o carpeta. Todos los caracteres codificados por porcentaje se descodifican antes de la recuperación. Por lo tanto, para recuperar un archivo denominado Hello#World.html, use este URI.

ms-appx:///Hello%23World.html

Consulta (ms-appx y ms-appx-web)

Los parámetros de consulta se omiten durante la recuperación de recursos. La forma normalizada de parámetros de consulta mantiene mayúsculas y minúsculas. Los parámetros de consulta no se omiten durante la comparación.

ms-appdata

Use el ms-appdata esquema de URI para hacer referencia a los archivos que proceden de las carpetas de datos locales, móviles y temporales de la aplicación. Para obtener más información sobre estas carpetas de datos de la aplicación, consulta Almacenar y recuperar la configuración y otros datos de la aplicación.

El ms-appdata esquema URI no realiza la negociación de contenido en tiempo de ejecución que ms-appx y ms-appx-web hacen. Pero puede responder al contenido de ResourceContext.QualifierValues y cargar los recursos adecuados de los datos de la aplicación mediante su nombre de archivo físico completo en el URI.

Nombre del esquema (ms-appdata)

El nombre del esquema de URI es la cadena "ms-appdata".

ms-appdata://

Autoridad (ms-appdata)

La autoridad es el nombre de identidad del paquete que se define en el manifiesto del paquete. Por lo tanto, se limita en el formulario URI y IRI (identificador de recursos internacionalizado) al conjunto de caracteres permitido en un nombre de identidad de paquete. El nombre del paquete debe ser el nombre del paquete de la aplicación en ejecución actual.

ms-appdata://Contoso.MyApp/

Si aparece cualquier otro carácter en la entidad, se producirá un error en la recuperación y la comparación. El valor predeterminado de la autoridad es el paquete de la aplicación que se está ejecutando actualmente.

ms-appdata:///

Información de usuario y puerto (ms-appdata)

El ms-appdata esquema, a diferencia de otros esquemas populares, no define una información de usuario ni un componente de puerto. Dado que "@" y ":" no se permiten como valores de autoridad válidos, se producirá un error en la búsqueda si se incluyen. Se produce un error en cada uno de los siguientes.

ms-appdata://john@contoso.myapp/local/data.xml
ms-appdata://john:password@contoso.myapp/local/data.xml
ms-appdata://contoso.myapp:8080/local/data.xml
ms-appdata://john:password@contoso.myapp:8080/local/data.xml

Ruta de acceso (ms-appdata)

El componente de ruta de acceso coincide con la sintaxis RFC 3986 genérica y admite caracteres no ASCII en irIs. Dentro de la ubicación Windows.Storage.ApplicationData hay tres carpetas reservadas para el almacenamiento de estado local, móvil y temporal. El ms-appdata esquema permite el acceso a archivos y carpetas en esas ubicaciones. El primer segmento del componente de ruta de acceso debe especificar la carpeta concreta de la siguiente manera. Por lo tanto, la forma "path-empty" de "hier-part" no es legal.

Carpeta local.

ms-appdata:///local/

Carpeta temporal.

ms-appdata:///temp/

Carpeta móvil.

ms-appdata:///roaming/

El componente de ruta de acceso de ms-appdata es, como los URI genéricos, distingue mayúsculas de minúsculas. Sin embargo, cuando el sistema de archivos subyacente por el que se accede al recurso no distingue mayúsculas de minúsculas, como para NTFS, la recuperación del recurso se realiza sin distinción entre mayúsculas y minúsculas.

La forma normalizada del URI mantiene mayúsculas y minúsculas y descodifica el porcentaje (un símbolo "%" seguido de los caracteres hexadecimales de dos dígitos) RFC 3986 no servidos. Los caracteres "?", "#", "/", "*" y """ (el carácter de comillas dobles) deben estar codificados en porcentaje en una ruta de acceso para representar datos como nombres de archivo o carpeta. Todos los caracteres codificados por porcentaje se descodifican antes de la recuperación. Por lo tanto, para recuperar un archivo local denominado Hello#World.html, use este URI.

ms-appdata://local/Hello%23World.html

La recuperación del recurso y la identificación del segmento de ruta de acceso de nivel superior se controlan después de la normalización de puntos (".. /./b/c"). Por lo tanto, los URI no pueden sacarse de una de las carpetas reservadas. Por lo tanto, no se permite el siguiente URI.

ms-appdata:///local/../hello/logo.png

Pero se permite este URI (aunque redundante).

ms-appdata:///local/../roaming/logo.png

Consulta (ms-appdata)

Los parámetros de consulta se omiten durante la recuperación de recursos. La forma normalizada de parámetros de consulta mantiene mayúsculas y minúsculas. Los parámetros de consulta no se omiten durante la comparación.

ms-resource

Usa el ms-resource esquema URI para hacer referencia a cadenas cargadas desde los archivos de recursos de la aplicación (.resw). Para obtener ejemplos y más información sobre los archivos de recursos, consulta Localizar cadenas en la interfaz de usuario y el manifiesto del paquete de la aplicación.

Nombre del esquema (ms-resource)

El nombre del esquema de URI es la cadena "ms-resource".

ms-resource://

Autoridad (ms-resource)

La autoridad es el mapa de recursos de nivel superior definido en el Índice de recursos de paquete (PRI), que normalmente corresponde al nombre de identidad del paquete que se define en el manifiesto del paquete. Consulte Empaquetado de aplicaciones). Por lo tanto, se limita en el formulario URI y IRI (identificador de recursos internacionalizado) al conjunto de caracteres permitido en un nombre de identidad de paquete. El nombre del paquete debe ser el nombre de uno de los paquetes del gráfico de dependencias de paquetes de la aplicación en ejecución actual.

ms-resource://Contoso.MyApp/
ms-resource://Microsoft.WinJS.1.0/

Si aparece cualquier otro carácter en la entidad, se producirá un error en la recuperación y la comparación. El valor predeterminado de la autoridad es el nombre del paquete que distingue mayúsculas de minúsculas de la aplicación que se está ejecutando actualmente.

ms-resource:///

La autoridad distingue mayúsculas de minúsculas y el formulario normalizado mantiene su caso. Sin embargo, la búsqueda de un recurso no distingue mayúsculas de minúsculas.

Información de usuario y puerto (ms-resource)

El ms-resource esquema, a diferencia de otros esquemas populares, no define una información de usuario ni un componente de puerto. Dado que "@" y ":" no se permiten como valores de autoridad válidos, se producirá un error en la búsqueda si se incluyen. Se produce un error en cada uno de los siguientes.

ms-resource://john@contoso.myapp/Resources/String1
ms-resource://john:password@contoso.myapp/Resources/String1
ms-resource://contoso.myapp:8080/Resources/String1
ms-resource://john:password@contoso.myapp:8080/Resources/String1

Ruta de acceso (ms-resource)

La ruta de acceso identifica la ubicación jerárquica del subárbol ResourceMap (vea Sistema de administración de recursos) y NamedResource dentro de él. Normalmente, esto corresponde al nombre de archivo (excepto la extensión) de un archivo de recursos (.resw) y el identificador de un recurso de cadena dentro de él.

Para obtener ejemplos y más información, consulta Localizar cadenas en el manifiesto del paquete de la aplicación y la interfaz de usuario y la compatibilidad con notificaciones del sistema y icono para el idioma, la escala y el contraste alto.

El componente de ruta de acceso de ms-resource es, como los URI genéricos, distingue mayúsculas de minúsculas. Sin embargo, la recuperación subyacente realiza una clase CompareStringOrdinal con ignoreCase establecida en true.

La forma normalizada del URI mantiene mayúsculas y minúsculas y descodifica el porcentaje (un símbolo "%" seguido de los caracteres hexadecimales de dos dígitos) RFC 3986 no servidos. Los caracteres "?", "#", "/", "*" y """ (el carácter de comillas dobles) deben estar codificados en porcentaje en una ruta de acceso para representar datos como nombres de archivo o carpeta. Todos los caracteres codificados por porcentaje se descodifican antes de la recuperación. Por lo tanto, para recuperar un recurso de cadena de un archivo de recursos denominado Hello#World.resw, use este URI.

ms-resource:///Hello%23World/String1

Consulta (ms-resource)

Los parámetros de consulta se omiten durante la recuperación de recursos. La forma normalizada de parámetros de consulta mantiene mayúsculas y minúsculas. Los parámetros de consulta no se omiten durante la comparación. Los parámetros de consulta se comparan entre mayúsculas y minúsculas.

Los desarrolladores de componentes concretos superados por encima de este análisis de URI pueden optar por usar los parámetros de consulta a medida que se ajusten.