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 vos modèles de notification de vignette et de Toast.

Fonctionnalités courantes des schémas d’URI

Tous les schémas décrits dans cette rubrique suivent les règles de modèle d’URI typiques pour la normalisation et la récupération des ressources. Consultez la 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. Le fait de suivre immédiatement les deux barres obliques du schéma d’URI est un composant (qui peut être vide) appelé autorité. Et immédiatement après cela est le chemin d’accès. En utilisant l’URI http://www.contoso.com/welcome.png comme exemple, le schéma est « http:// », l’autorité est « www.contoso.com » et le chemin d’accès est « /welcome.png ». Un autre exemple est l’URI ms-appx:///logo.png , où les composants d’autorité sont vides et prennent une valeur par défaut.

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

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

Non-respect de la casse et normalisation

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

Pour tous les schémas d’URI décrits dans cette rubrique, le schéma, l' autoritéet le chemin d’accès ne sont pas sensibles à la casse par standard, ou sont traités par le système sans respect de la casse. Remarque La seule exception à cette règle est l' autorité de qui respecte la casse.

MS-AppX et MS-AppX-Web

Utilisez le ms-appx modèle URI ou ms-appx-web pour faire référence à un fichier qui provient du package de votre application (consultez ms-appx). 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 des informations supplémentaires, consultez référencer une image ou une autre ressource à partir du balisage et du code XAML.

Nom du schéma (MS-AppX et MS-AppX-Web)

Le nom du modèle 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 de l’identité du package qui est défini dans le manifeste du package. Elle est donc limitée à la fois dans l’URI et dans le formulaire IRI (International Resource Identifier) à l’ensemble de caractères autorisé dans un nom d’identité de package. Le nom du package doit être le nom de l’un des packages dans le graphique des dépendances du 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 utilisateur et port (MS-AppX et MS-AppX-Web)

Contrairement à d’autres schémas populaires, le ms-appx schéma ne définit pas un composant d’informations utilisateur ou de port. Étant donné que « @ » et «  : » ne sont pas autorisés en tant que valeurs d’autorité valides, la recherche échoue si elles sont incluses. Chacun des éléments suivants é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 IRIs. Le composant Path définit le chemin logique ou physique d’un fichier. Ce fichier se trouve dans un dossier associé à l’emplacement d’installation du package d’application, pour l’application spécifiée par l’autorité.

Si le chemin d’accès 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 pendant 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 de l’application, du système d’exploitation et de l’utilisateur, tels que la langue, l’affichage du facteur d’échelle, du thème, du 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 également récupérer ce même fichier physique en y 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 de ms-appx(-web) est, comme les URI génériques, sensible à la casse. Toutefois, lorsque le système de fichiers sous-jacent sur lequel la ressource est accédée ne respecte pas la casse, par exemple pour NTFS, la récupération de la ressource est effectuée sans respect de la casse.

La forme normalisée de l’URI conserve la casse, et le pourcentage de décodage (un symbole « % » suivi de la représentation hexadécimale à deux chiffres) des caractères non réservés RFC 3986. Les caractères «  ? », « # », « / », « * » et «» (guillemet double) doivent être encodé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 pendant 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 pendant 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 locaux, itinérants et temporaires de l’application. Pour plus d’informations sur ces dossiers de données d’application, consultez stocker 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 au moment de l’exécution que ms-appdata font. Toutefois, vous pouvez répondre au contenu de ResourceContext. QualifierValues et charger les ressources appropriées à partir des 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 de l’identité du package qui est défini dans le manifeste du package. Elle est donc limitée à la fois dans l’URI et dans le formulaire IRI (International Resource Identifier) à l’ensemble de caractères autorisé 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 utilisateur et port (MS-AppData)

Contrairement à d’autres schémas populaires, le ms-appdata schéma ne définit pas un composant d’informations utilisateur ou de port. Étant donné que « @ » et «  : » ne sont pas autorisés en tant que valeurs d’autorité valides, la recherche échoue si elles sont incluses. Chacun des éléments suivants é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 IRIs. dans le Windows. Stockage. L’emplacement ApplicationData est trois dossiers réservés pour le stockage local, itinérant et d’état temporaire. Le schéma autorise l' ms-appdata accès aux fichiers et aux 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. Par conséquent, le format « chemin d’accès vide » de « hier-part » n’est pas légal.

Dossier local.

ms-appdata:///local/

Dossier temporaire.

ms-appdata:///temp/

Dossier d’itinérance.

ms-appdata:///roaming/

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

La forme normalisée de l’URI conserve la casse, et le pourcentage de décodage (un symbole « % » suivi de la représentation hexadécimale à deux chiffres) des caractères non réservés RFC 3986. Les caractères «  ? », « # », « / », « * » et «» (guillemet double) doivent être encodé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, ainsi que 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 déconnecter de l’un des dossiers réservés. Ainsi, 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 pendant 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 pendant 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 des informations supplémentaires sur les fichiers de ressources, consultez localiser des chaînes dans votre interface utilisateur et le manifeste du package 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. Consultez empaquetage d’applications). Elle est donc limitée à la fois dans l’URI et dans le formulaire IRI (International Resource Identifier) à l’ensemble de caractères autorisé dans un nom d’identité de package. Le nom du package doit être le nom de l’un des packages dans le graphique des dépendances du 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 qui respecte la casse de l’application en cours d’exécution.

ms-resource:///

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

Informations utilisateur et port (MS-Resource)

Contrairement à d’autres schémas populaires, le ms-resource schéma ne définit pas un composant d’informations utilisateur ou de port. Étant donné que « @ » et «  : » ne sont pas autorisés en tant que valeurs d’autorité valides, la recherche échoue si elles sont incluses. Chacun des éléments suivants é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 d’accès identifie l’emplacement hiérarchique de la sous-arborescence ResourceMap (consultez le système de gestion des ressources) et le NamedResource qu’il contient. En général, il correspond au nom de fichier (extension) des fichiers de ressources (. resw) et à l’identificateur d’une ressource de chaîne qu’il contient.

Pour obtenir des exemples et plus d’informations, consultez localiser des chaînes dans votre interface utilisateur et le manifeste du package d’application , ainsi que prise en charge des notifications par vignette et toast pour le langage,la mise à l’échelle et le contraste élevé.

Le composant de chemin d’accès de ms-resource est, comme les URI génériques, sensible à la casse. Toutefois, la récupération sous-jacente fait un comparestringordinal, avec ignoreCase défini sur .

La forme normalisée de l’URI conserve la casse, et le pourcentage de décodage (un symbole « % » suivi de la représentation hexadécimale à deux chiffres) des caractères non réservés RFC 3986. Les caractères «  ? », « # », « / », « * » et «» (guillemet double) doivent être encodé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 type 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 pendant 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 pendant la comparaison. Les paramètres de requête sont comparés en respectant la casse.

Les développeurs de composants particuliers superposés au-dessus de cette analyse URI peuvent choisir d’utiliser les paramètres de requête tels qu’ils s’affichent.