Esquemas de URI

Há vários esquemas de URI (Uniform Resource Identifier) que você pode usar para fazer referência aos arquivos que vêm no conjunto de aplicativo, nas pastas de dados do seu aplicativo ou na nuvem. Você também pode usar um esquema de URI para fazer referência a cadeias de caracteres carregadas dos arquivos de recursos (.resw) do aplicativo. Você pode usar esses esquemas de URI em seu código, em sua marcação XAML, no manifesto do pacote do aplicativo ou em seus modelos de notificação de bloco e notificação do sistema.

Características comuns dos esquemas de URI

Todos os esquemas descritos neste tópico seguem regras típicas de esquema de URI para normalização e recuperação de recursos. Consulte RFC 3986 para obter a sintaxe genérica de um URI.

Todos os esquemas de URI definem a parte hierárquica por RFC 3986 como os componentes de autoridade e caminho do URI.

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

O que isso significa é que há essencialmente três componentes para um URI. Imediatamente após as duas barras do esquema de URI há um componente (que pode estar vazio) chamado autoridade. E logo a seguir esse é o caminho. Tomando o URI http://www.contoso.com/welcome.png como exemplo, o esquema é "", a autoridade é "", e o caminho é "www.contoso.comhttp:///welcome.png". Outro exemplo é o URI ms-appx:///logo.png, onde os componentes de autoridade estão vazios e usam um valor padrão.

O componente de fragmento é ignorado pelo processamento específico do esquema dos URIs mencionados neste tópico. Durante a recuperação e comparação de recursos, o componente de fragmento não tem suporte. No entanto, as camadas acima da implementação específica podem interpretar o fragmento para recuperar um recurso secundário.

A comparação ocorre byte por byte após a normalização de todos os componentes do IRI.

Insensibilidade a maiúsculas e minúsculas e normalização

Todos os esquemas de URI descritos neste tópico seguem regras típicas de URI (RFC 3986) para normalização e recuperação de recursos para esquemas. A forma normalizada desses URIs mantém caracteres não reservados de decodificação de maiúsculas e minúsculas e decodificações de RFC 3986.

Para todos os esquemas de URI descritos neste tópico, o esquema, a autoridade e o caminho não diferenciam maiúsculas de minúsculas por padrão ou são processados pelo sistema de maneira que não diferencia maiúsculas de minúsculas. Observação A única exceção a essa regra é a autoridade do , que diferencia maiúsculas de ms-resourceminúsculas.

ms-appx e ms-appx-web

Use o ms-appx esquema de URI ou o ms-appx-web esquema para fazer referência a um arquivo proveniente do pacote do seu aplicativo (consulte Empacotando aplicativos). Os arquivos no pacote do aplicativo geralmente são imagens estáticas, dados, código e arquivos de layout. O ms-appx-web esquema acessa os mesmos arquivos que ms-appxo , mas no compartimento da Web. Para obter exemplos e mais informações, consulte Fazer referência a uma imagem ou outro ativo a partir de marcação e código XAML.

Nome do esquema (ms-appx e ms-appx-web)

O nome do esquema de URI é a cadeia de caracteres "ms-appx" ou "ms-appx-web".

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

Autoridade (ms-appx e ms-appx-web)

A autoridade é o nome de identidade do pacote definido no manifesto do pacote. Portanto, ele é limitado no formulário URI e IRI (identificador de recurso internacionalizado) ao conjunto de caracteres permitidos em um nome de identidade de pacote. O nome do pacote deve ser o nome de um dos pacotes no gráfico de dependência de pacote do aplicativo em execução atual.

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

Se qualquer outro caractere aparecer na autoridade, a recuperação e a comparação falharão. O valor padrão para a autoridade é o pacote do aplicativo em execução no momento.

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

Informações do usuário e porta (ms-appx e ms-appx-web)

O ms-appx esquema, ao contrário de outros esquemas populares, não define uma informação do usuário ou componente de porta. Como "@" e ":" não são permitidos como valores de autoridade válidos, a pesquisa falhará se eles forem incluídos. Cada um dos itens a seguir falha.

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

Caminho (ms-appx e ms-appx-web)

O componente de caminho corresponde à sintaxe genérica RFC 3986 e oferece suporte a caracteres não-ASCII em IRIs. O componente de caminho define o caminho de arquivo lógico ou físico de um arquivo. Esse arquivo está em uma pasta associada ao local instalado do pacote do aplicativo, para o aplicativo especificado pela autoridade.

Se o caminho se referir a um caminho físico e nome de arquivo, esse ativo de arquivo físico será recuperado. Mas se nenhum arquivo físico for encontrado, o recurso real retornado durante a recuperação será determinado usando a negociação de conteúdo em tempo de execução. Essa determinação é baseada em configurações de aplicativo, sistema operacional e usuário, como idioma, fator de escala de exibição, tema, alto contraste e outros contextos de tempo de execução. Por exemplo, uma combinação dos idiomas do aplicativo, das configurações de exibição do sistema e das configurações de alto contraste do usuário pode ser levada em conta ao determinar o valor real do recurso a ser recuperado.

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

O URI acima pode realmente recuperar um arquivo dentro do pacote do aplicativo atual com o seguinte nome de arquivo físico.

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

Você também pode, é claro, recuperar esse mesmo arquivo físico, referindo-se a ele diretamente por seu nome completo.

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

O componente de caminho é, como URIs genéricos, diferencia maiúsculas de ms-appx(-web) minúsculas. No entanto, quando o sistema de arquivos subjacente pelo qual o recurso é acessado não diferencia maiúsculas de minúsculas, como para NTFS, a recuperação do recurso é feita sem diferenciação de maiúsculas e minúsculas.

A forma normalizada do URI mantém maiúsculas e minúsculas e decodifica por cento (um símbolo "%" seguido pela representação hexadecimal de dois dígitos) caracteres não reservados RFC 3986. Os caracteres "?", "#", "/", "*" e '"' (o caractere de aspas duplas) devem ser codificados por porcentagem em um caminho para representar dados como nomes de arquivos ou pastas. Todos os caracteres codificados por porcentagem são decodificados antes da recuperação. Assim, para recuperar um arquivo chamado Hello#World.html, use esse URI.

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

Consulta (ms-appx e ms-appx-web)

Os parâmetros de consulta são ignorados durante a recuperação de recursos. A forma normalizada de parâmetros de consulta mantém maiúsculas e minúsculas. Os parâmetros de consulta não são ignorados durante a comparação.

MS-AppData

Use o ms-appdata esquema de URI para fazer referência a arquivos provenientes das pastas de dados locais, móveis e temporárias do aplicativo. Para saber mais sobre essas pastas de dados do aplicativo, veja Armazenar e recuperar configurações e outros dados do aplicativo.

O ms-appdata esquema de URI não executa a negociação de conteúdo de tempo de execução que ms-appx e ms-appx-web fazem. Mas você pode responder ao conteúdo de ResourceContext.QualifierValues e carregar os ativos apropriados dos dados do aplicativo usando seu nome de arquivo físico completo no URI.

Nome do esquema (ms-appdata)

O nome do esquema de URI é a cadeia de caracteres "ms-appdata".

ms-appdata://

Autoridade (ms-appdata)

A autoridade é o nome de identidade do pacote definido no manifesto do pacote. Portanto, ele é limitado no formulário URI e IRI (identificador de recurso internacionalizado) ao conjunto de caracteres permitidos em um nome de identidade de pacote. O nome do pacote deve ser o nome do pacote do aplicativo em execução atual.

ms-appdata://Contoso.MyApp/

Se qualquer outro caractere aparecer na autoridade, a recuperação e a comparação falharão. O valor padrão para a autoridade é o pacote do aplicativo em execução no momento.

ms-appdata:///

Informações do usuário e porta (ms-appdata)

O ms-appdata esquema, ao contrário de outros esquemas populares, não define uma informação do usuário ou componente de porta. Como "@" e ":" não são permitidos como valores de autoridade válidos, a pesquisa falhará se eles forem incluídos. Cada um dos itens a seguir falha.

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

Caminho (ms-appdata)

O componente de caminho corresponde à sintaxe genérica RFC 3986 e oferece suporte a caracteres não-ASCII em IRIs. No local Windows.Storage.ApplicationData há três pastas reservadas para armazenamento de estado local, móvel e temporário. O ms-appdata esquema permite o acesso a arquivos e pastas nesses locais. O primeiro segmento do componente de caminho deve especificar a pasta específica da seguinte maneira. Assim, a forma "caminho-vazio" de "parte-hier" não é legal.

Pasta local.

ms-appdata:///local/

Pasta temporária.

ms-appdata:///temp/

Pasta de roaming.

ms-appdata:///roaming/

O componente de caminho é, como URIs genéricos, diferencia maiúsculas de ms-appdata minúsculas. No entanto, quando o sistema de arquivos subjacente pelo qual o recurso é acessado não diferencia maiúsculas de minúsculas, como para NTFS, a recuperação do recurso é feita sem diferenciação de maiúsculas e minúsculas.

A forma normalizada do URI mantém maiúsculas e minúsculas e decodifica por cento (um símbolo "%" seguido pela representação hexadecimal de dois dígitos) caracteres não reservados RFC 3986. Os caracteres "?", "#", "/", "*" e '"' (o caractere de aspas duplas) devem ser codificados por porcentagem em um caminho para representar dados como nomes de arquivos ou pastas. Todos os caracteres codificados por porcentagem são decodificados antes da recuperação. Assim, para recuperar um arquivo local chamado Hello#World.html, use esse URI.

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

A recuperação do recurso e a identificação do segmento de caminho de nível superior são tratadas após a normalização dos pontos (".. /./b/c"). Portanto, os URIs não podem se destacar de uma das pastas reservadas. Assim, o seguinte URI não é permitido.

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

Mas esse URI é permitido (embora redundante).

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

Consulta (ms-appdata)

Os parâmetros de consulta são ignorados durante a recuperação de recursos. A forma normalizada de parâmetros de consulta mantém maiúsculas e minúsculas. Os parâmetros de consulta não são ignorados durante a comparação.

MS-recurso

Use o esquema de URI para fazer referência a cadeias de caracteres carregadas dos Arquivos de ms-resource Recursos (.resw) do seu aplicativo. Para obter exemplos e mais informações sobre Arquivos de Recursos, consulte Localizar cadeias de caracteres na interface do usuário e no manifesto do pacote do aplicativo.

Nome do esquema (ms-resource)

O nome do esquema de URI é a cadeia de caracteres "ms-resource".

ms-resource://

Autoridade (ms-resource)

A autoridade é o mapa de recursos de nível superior definido no PRI (Índice de Recursos do Pacote), que normalmente corresponde ao nome da identidade do pacote definido no manifesto do pacote. Consulte Empacotando aplicativos). Portanto, ele é limitado no formulário URI e IRI (identificador de recurso internacionalizado) ao conjunto de caracteres permitidos em um nome de identidade de pacote. O nome do pacote deve ser o nome de um dos pacotes no gráfico de dependência de pacote do aplicativo em execução atual.

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

Se qualquer outro caractere aparecer na autoridade, a recuperação e a comparação falharão. O valor padrão para a autoridade é o nome do pacote que diferencia maiúsculas de minúsculas do aplicativo em execução no momento.

ms-resource:///

A autoridade diferencia maiúsculas de minúsculas e a forma normalizada mantém seu caso. A pesquisa de um recurso, no entanto, acontece sem distinção entre maiúsculas e minúsculas.

Informações do usuário e porta (ms-resource)

O ms-resource esquema, ao contrário de outros esquemas populares, não define uma informação do usuário ou componente de porta. Como "@" e ":" não são permitidos como valores de autoridade válidos, a pesquisa falhará se eles forem incluídos. Cada um dos itens a seguir falha.

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

Caminho (ms-resource)

O caminho identifica o local hierárquico da subárvore ResourceMap (consulte Sistema de Gerenciamento de Recursos) e o NamedResource dentro dela. Normalmente, isso corresponde ao nome do arquivo (excluindo a extensão) de um Resources Files (.resw) e ao identificador de um recurso de cadeia de caracteres dentro dele.

Para obter exemplos e mais informações, consulte Localizar cadeias de caracteres na interface do usuário e no manifesto do pacote do aplicativo e Suporte a notificações de bloco e do sistema para idioma, escala e alto contraste.

O componente de caminho é, como URIs genéricos, diferencia maiúsculas de ms-resource minúsculas. No entanto, a recuperação subjacente faz um CompareStringOrdinal com ignoreCase definido como true.

A forma normalizada do URI mantém maiúsculas e minúsculas e decodifica por cento (um símbolo "%" seguido pela representação hexadecimal de dois dígitos) caracteres não reservados RFC 3986. Os caracteres "?", "#", "/", "*" e '"' (o caractere de aspas duplas) devem ser codificados por porcentagem em um caminho para representar dados como nomes de arquivos ou pastas. Todos os caracteres codificados por porcentagem são decodificados antes da recuperação. Assim, para recuperar um recurso de cadeia de caracteres de um arquivo de recursos chamado Hello#World.resw, use esse URI.

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

Consulta (ms-resource)

Os parâmetros de consulta são ignorados durante a recuperação de recursos. A forma normalizada de parâmetros de consulta mantém maiúsculas e minúsculas. Os parâmetros de consulta não são ignorados durante a comparação. Os parâmetros de consulta são comparados entre maiúsculas e minúsculas.

Os desenvolvedores de componentes específicos em camadas acima dessa análise de URI podem optar por usar os parâmetros de consulta como acharem melhor.