Schémas d’URI

Vous pouvez utiliser plusieurs schémas d’URI (Uniform Resource Identifier) pour faire référence à des fichiers qui proviennent de votre package d’application, des dossiers de données de votre application ou du cloud. Vous pouvez également utiliser un schéma d’URI pour faire référence à des chaînes chargées à partir des fichiers de ressources (.resw) de votre application. Vous pouvez utiliser ces schémas d’URI dans votre code, dans votre balisage XAML, dans votre manifeste de package d’application, ou dans votre vignette et vos modèles de notification toast.

Fonctionnalités courantes des schémas d’URI

Tous les schémas décrits dans cette rubrique suivent les règles de schéma d’URI standard pour la normalisation et la récupération des ressources. Consultez RFC 3986 pour connaître la syntaxe générique d’un URI.

Tous les schémas d’URI définissent la partie hiérarchique par RFC 3986 en tant que composants d’autorité et de chemin d’accès de l’URI.

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

Cela signifie qu’il existe essentiellement trois composants à un URI. Immédiatement après les deux barres obliques du schéma d’URI est un composant (qui peut être vide) appelé autorité. Et immédiatement après, c’est le chemin d’accès. En prenant l’URI http://www.contoso.com/welcome.png comme exemple, le schéma est « »,http:// l’autorité est «www.contoso.com » et le chemin est «/welcome.png ». Un autre exemple est l’URI ms-appx:///logo.png, où les composants d’autorité sont vides et acceptent une valeur par défaut.

Le composant fragment est ignoré par le traitement spécifique au schéma des URI mentionnés dans cette rubrique. Pendant la récupération et la comparaison des ressources, le composant fragment n’a aucune incidence. Toutefois, les couches au-dessus d’une implémentation spécifique peuvent interpréter le fragment pour récupérer une ressource secondaire.

La comparaison se produit en octets pour octets après la normalisation de tous les composants IRI.

Insensitivité et normalisation des cas

Tous les schémas d’URI décrits dans cette rubrique suivent les règles d’URI standard (RFC 3986) pour la normalisation et la récupération des ressources pour les schémas. La forme normalisée de ces URI conserve les caractères non réservés RFC 3986 et décode la casse et le pourcentage.

Pour tous les schémas d’URI décrits dans cette rubrique, schéma, autorité et chemin d’accès ne respectent pas la casse par la norme, ou sont traités par le système de manière sensible à la casse. Notez que la seule exception à cette règle est l’autorité de ms-resource, qui respecte la casse.

ms-appx et ms-appx-web

Utilisez le schéma d’URI ou le ms-appxms-appx-web schéma d’URI pour faire référence à un fichier qui provient du package de votre application (voir Empaquetage des applications). Les fichiers de votre package d’application sont généralement des images statiques, des données, du code et des fichiers de disposition. Le ms-appx-web schéma accède aux mêmes fichiers que ms-appx, mais dans le compartiment web. Pour obtenir des exemples et plus d’informations, consultez Référencer une image ou un autre élément multimédia à partir du balisage ET du code XAML.

Nom du schéma (ms-appx et ms-appx-web)

Le nom du schéma d’URI est la chaîne « ms-appx » ou « ms-appx-web ».

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

Autorité (ms-appx et ms-appx-web)

L’autorité est le nom d’identité du package qui est défini dans le manifeste du package. Il est donc limité dans le formulaire URI et IRI (identificateur de ressource internationalisé) à l’ensemble de caractères autorisés dans un nom d’identité de package. Le nom du package doit être le nom de l’un des packages dans le graphique de dépendance de package de l’application en cours d’exécution.

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

Si un autre caractère apparaît dans l’autorité, la récupération et la comparaison échouent. La valeur par défaut de l’autorité est le package de l’application en cours d’exécution.

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

Informations et port utilisateur (ms-appx et ms-appx-web)

Contrairement ms-appx à d’autres schémas populaires, il ne définit pas de composant d’informations utilisateur ou de port. Étant donné que « @ » et « : » ne sont pas autorisés comme valeurs d’autorité valides, la recherche échoue si elles sont incluses. Chacune des défaillances suivantes échoue.

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

Chemin d’accès (ms-appx et ms-appx-web)

Le composant path correspond à la syntaxe RFC 3986 générique et prend en charge les caractères non ASCII dans les IRIs. Le composant de chemin définit le chemin d’accès logique ou physique d’un fichier. Ce fichier se trouve dans un dossier associé à l’emplacement installé du package d’application, pour l’application spécifiée par l’autorité.

Si le chemin fait référence à un chemin d’accès physique et à un nom de fichier, cette ressource de fichier physique est récupérée. Toutefois, si aucun fichier physique de ce type n’est trouvé, la ressource réelle retournée lors de la récupération est déterminée à l’aide de la négociation de contenu au moment de l’exécution. Cette détermination est basée sur les paramètres d’application, de système d’exploitation et d’utilisateur tels que la langue, le facteur d’échelle d’affichage, le thème, le contraste élevé et d’autres contextes d’exécution. Par exemple, une combinaison des langues de l’application, des paramètres d’affichage du système et des paramètres de contraste élevé de l’utilisateur peut être prise en compte lors de la détermination de la valeur réelle de la ressource à récupérer.

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

L’URI ci-dessus peut en fait récupérer un fichier dans le package de l’application actuelle avec le nom de fichier physique suivant.

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

Vous pouvez bien sûr également récupérer ce même fichier physique en lui faisant référence directement par son nom complet.

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

Le composant de chemin d’accès ms-appx(-web) est, comme les URI génériques, respectant la casse. Toutefois, lorsque le système de fichiers sous-jacent par lequel la ressource est accessible ne respecte pas la casse, par exemple pour NTFS, la récupération de la ressource n’est pas sensible à la casse.

La forme normalisée de l’URI conserve la casse et les décodages pourcentage (un symbole « % » suivi de la représentation hexadécimale à deux chiffres) RFC 3986 caractères non réservés. Les caractères « ? », « # », « / », « * » et « » (le caractère guillemet double) doivent être codés en pourcentage dans un chemin d’accès pour représenter des données telles que des noms de fichiers ou de dossiers. Tous les caractères encodés en pourcentage sont décodés avant la récupération. Par conséquent, pour récupérer un fichier nommé Hello#World.html, utilisez cet URI.

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

Requête (ms-appx et ms-appx-web)

Les paramètres de requête sont ignorés lors de la récupération des ressources. La forme normalisée des paramètres de requête conserve la casse. Les paramètres de requête ne sont pas ignorés lors de la comparaison.

ms-appdata

Utilisez le ms-appdata schéma d’URI pour faire référence aux fichiers provenant des dossiers de données locales, itinérantes et temporaires de l’application. Pour plus d’informations sur ces dossiers de données d’application, consultez Store et récupérer des paramètres et d’autres données d’application.

Le ms-appdata schéma d’URI n’effectue pas la négociation de contenu runtime que ms-appx et ms-appx-web effectuent. Toutefois, vous pouvez répondre au contenu de ResourceContext.QualifierValues et charger les ressources appropriées à partir de données d’application à l’aide de leur nom de fichier physique complet dans l’URI.

Nom du schéma (ms-appdata)

Le nom du schéma d’URI est la chaîne « ms-appdata ».

ms-appdata://

Autorité (ms-appdata)

L’autorité est le nom d’identité du package qui est défini dans le manifeste du package. Il est donc limité dans le formulaire URI et IRI (identificateur de ressource internationalisé) à l’ensemble de caractères autorisés dans un nom d’identité de package. Le nom du package doit être le nom du package de l’application en cours d’exécution.

ms-appdata://Contoso.MyApp/

Si un autre caractère apparaît dans l’autorité, la récupération et la comparaison échouent. La valeur par défaut de l’autorité est le package de l’application en cours d’exécution.

ms-appdata:///

Informations et port utilisateur (ms-appdata)

Contrairement ms-appdata à d’autres schémas populaires, il ne définit pas de composant d’informations utilisateur ou de port. Étant donné que « @ » et « : » ne sont pas autorisés comme valeurs d’autorité valides, la recherche échoue si elles sont incluses. Chacune des défaillances suivantes échoue.

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

Chemin d’accès (ms-appdata)

Le composant path correspond à la syntaxe RFC 3986 générique et prend en charge les caractères non ASCII dans les IRIs. Dans l’emplacement Windows.Storage.ApplicationData, vous trouverez trois dossiers réservés pour le stockage d’état local, itinérance et temporaire. Le ms-appdata schéma autorise l’accès aux fichiers et dossiers dans ces emplacements. Le premier segment du composant de chemin d’accès doit spécifier le dossier particulier de la manière suivante. Ainsi, la forme « path-empty » de « hier-part » n’est pas légale.

Dossier local.

ms-appdata:///local/

Dossier temporaire.

ms-appdata:///temp/

Dossier itinérant.

ms-appdata:///roaming/

Le composant de chemin d’accès ms-appdata est, comme les URI génériques, respectant la casse. Toutefois, lorsque le système de fichiers sous-jacent par lequel la ressource est accessible ne respecte pas la casse, par exemple pour NTFS, la récupération de la ressource n’est pas sensible à la casse.

La forme normalisée de l’URI conserve la casse et les décodages pourcentage (un symbole « % » suivi de la représentation hexadécimale à deux chiffres) RFC 3986 caractères non réservés. Les caractères « ? », « # », « / », « * » et « » (le caractère guillemet double) doivent être codés en pourcentage dans un chemin d’accès pour représenter des données telles que des noms de fichiers ou de dossiers. Tous les caractères encodés en pourcentage sont décodés avant la récupération. Par conséquent, pour récupérer un fichier local nommé Hello#World.html, utilisez cet URI.

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

La récupération de la ressource et l’identification du segment de chemin d’accès de niveau supérieur sont gérées après la normalisation des points (« .. /./b/c »). Par conséquent, les URI ne peuvent pas se doter d’un des dossiers réservés. Par conséquent, l’URI suivant n’est pas autorisé.

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

Mais cet URI est autorisé (quoique redondant).

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

Requête (ms-appdata)

Les paramètres de requête sont ignorés lors de la récupération des ressources. La forme normalisée des paramètres de requête conserve la casse. Les paramètres de requête ne sont pas ignorés lors de la comparaison.

ms-resource

Utilisez le ms-resource schéma d’URI pour faire référence aux chaînes chargées à partir des fichiers de ressources de votre application (.resw). Pour obtenir des exemples et plus d’informations sur les fichiers de ressources, consultez Localiser les chaînes dans votre manifeste de package d’interface utilisateur et d’application.

Nom du schéma (ms-resource)

Le nom du schéma d’URI est la chaîne « ms-resource ».

ms-resource://

Autorité (ms-resource)

L’autorité est la carte de ressources de niveau supérieur définie dans l’index de ressource de package (PRI), qui correspond généralement au nom d’identité du package défini dans le manifeste du package. Voir Empaquetage des applications). Il est donc limité dans le formulaire URI et IRI (identificateur de ressource internationalisé) à l’ensemble de caractères autorisés dans un nom d’identité de package. Le nom du package doit être le nom de l’un des packages dans le graphique de dépendance de package de l’application en cours d’exécution.

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

Si un autre caractère apparaît dans l’autorité, la récupération et la comparaison échouent. La valeur par défaut de l’autorité est le nom du package respectant la casse de l’application en cours d’exécution.

ms-resource:///

L’autorité respecte la casse et la forme normalisée maintient son cas. Toutefois, la recherche d’une ressource ne respecte pas la casse.

Informations utilisateur et port (ms-resource)

Contrairement ms-resource à d’autres schémas populaires, il ne définit pas de composant d’informations utilisateur ou de port. Étant donné que « @ » et « : » ne sont pas autorisés comme valeurs d’autorité valides, la recherche échoue si elles sont incluses. Chacune des défaillances suivantes échoue.

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

Chemin d’accès (ms-resource)

Le chemin identifie l’emplacement hiérarchique de la sous-arborescence ResourceMap (voir Système de gestion des ressources) et NamedResource dans celle-ci. En règle générale, cela correspond au nom de fichier (à l’exclusion de l’extension) d’un fichier resources (.resw) et à l’identificateur d’une ressource de chaîne dans celle-ci.

Pour obtenir des exemples et plus d’informations, consultez Localiser les chaînes dans votre manifeste de package d’interface utilisateur et de package d’application et la prise en charge des notifications toast pour la langue, la mise à l’échelle et le contraste élevé.

Le composant de chemin d’accès ms-resource est, comme les URI génériques, respectant la casse. Toutefois, la récupération sous-jacente effectue une opération CompareStringOrdinal avec ignoreCase défini sur true.

La forme normalisée de l’URI conserve la casse et les décodages pourcentage (un symbole « % » suivi de la représentation hexadécimale à deux chiffres) RFC 3986 caractères non réservés. Les caractères « ? », « # », « / », « * » et « » (le caractère guillemet double) doivent être codés en pourcentage dans un chemin d’accès pour représenter des données telles que des noms de fichiers ou de dossiers. Tous les caractères encodés en pourcentage sont décodés avant la récupération. Par conséquent, pour récupérer une ressource de chaîne à partir d’un fichier de ressources nommé Hello#World.resw, utilisez cet URI.

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

Requête (ms-resource)

Les paramètres de requête sont ignorés lors de la récupération des ressources. La forme normalisée des paramètres de requête conserve la casse. Les paramètres de requête ne sont pas ignorés lors de la comparaison. Les paramètres de requête sont comparés de façon sensible à la casse.

Les développeurs de composants particuliers superposés au-dessus de cet analyse d’URI peuvent choisir d’utiliser les paramètres de requête comme ils le voient.