Схемы URIURI schemes

Существует несколько схем URI (универсального кода ресурсов), которые можно использовать для формирования ссылок на файлы приложения, получаемые из пакета приложения, папок данных приложения или облака.There are several URI (Uniform Resource Identifier) schemes that you can use to refer to files that come from your app's package, your app's data folders, or the cloud. Можно также использовать схему URI для обозначения строк, загружаемых из RESW-файлов ресурсов приложения.You can also use a URI scheme to refer to strings loaded from your app's Resources Files (.resw). Можно использовать эти схемы URI в коде, в разметке XAML, в манифесте пакета приложения или в шаблонах плитки и всплывающих уведомлений.You can use these URI schemes in your code, in your XAML markup, in your app package manifest, or in your tile and toast notification templates.

Общие компоненты схем URICommon features of the URI schemes

Все схемы, описанные в этом разделе, соответствуют стандартам схем URI по нормализации и извлечению ресурсов.All of the schemes described in this topic follow typical URI scheme rules for normalization and resource retrieval. В разделе RFC 3986 приводится универсальный синтаксис URI.See RFC 3986 for the generic syntax of a URI.

Все схемы URI определяют иерархическую часть в соответствии с RFC 3986 как компоненты полномочий и пути URI.All of the URI schemes define the hierarchical part per RFC 3986 as the authority and path components of the URI.

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

Это означает, что по сути есть три компонента URI.What this means is that there are essentially three components to a URI. Сразу после двух символов косой черты в схеме находится компонент (который может быть пустым) под названием центр сертификации .Immediately following the two forward slashes of the URI scheme is a component (which can be empty) called the authority . И сразу за ним находится путь .And immediately following that is the path . Используем URI http://www.contoso.com/welcome.png в качестве примера, здесь схемой является http://, центром сертификации — www.contoso.com, а путем — /welcome.png.Taking the URI http://www.contoso.com/welcome.png as an example, the scheme is "http://", the authority is "www.contoso.com", and the path is "/welcome.png". Другой пример — URI ms-appx:///logo.png, где компонент центра сертификации пуст и имеет значение по умолчанию.Another example is the URI ms-appx:///logo.png, where the authority components is empty and takes a default value.

Компонент фрагмента игнорируется при обработке URI для данной схемы, рассматриваемых в этом разделе.The fragment component is ignored by the scheme-specific processing of the URIs mentioned in this topic. Во время получения и сравнения компонент фрагмента не учитывается.During resource retrieval and comparison, the fragment component has no bearing. Однако определенные реализации, находящиеся в слое выше, могут интерпретировать фрагмент, чтобы получить вторичный ресурс.However, layers above specific implementation may interpret the fragment to retrieve a secondary resource.

Сравнение производится байт за байтом после нормализации всех компонентов IRI.Comparison occurs byte for byte after normalization of all IRI components.

Независимость от регистра и нормализацияCase-insensitivity and normalization

Все схемы URI, описанные в этом разделе, соответствуют стандартам схем URI (RFC 3986) по нормализации и извлечению ресурсов для схем.All the URI schemes described in this topic follow typical URI rules (RFC 3986) for normalization and resource retrieval for schemes. Нормализованная форма этих URI поддерживает регистр и декодирует символы, не зарезервированные RFC 3986.The normalized form of these URIs maintains case and percent-decodes RFC 3986 unreserved characters.

Во всех схемах URI, описанных в этом разделе, компоненты схема , центр сертификации и путь не учитывают регистр символов в стандартной конфигурации, либо обрабатываются системой без учета регистра.For all the URI schemes described in this topic, scheme , authority , and path are either case-insensitive by standard, or else are processed by the system in a case-insensitive way. Примечание . Единственное исключение из этого правила — центр сертификации из ms-resource, где регистр учитывается.Note The only exception to that rule is the authority of ms-resource, which is case-sensitive.

ms-appx и ms-appx-webms-appx and ms-appx-web

Используйте схему URI ms-appx или ms-appx-web для ссылки на файл, который поступает из пакета приложения (см. раздел Создание пакетов приложений).Use the ms-appx or the ms-appx-web URI scheme to refer to a file that comes from your app's package (see Packaging apps). Файлы в пакете приложения обычно содержат статические изображения, данные, код и макеты.Files in your app package are typically static images, data, code, and layout files. Схема ms-appx-web обращается к тем же файлам, что и ms-appx, но в разделе web.The ms-appx-web scheme accesses the same files as ms-appx, but in the web compartment. Примеры и дополнительные сведения см. в разделе Ссылки на изображения и другие ресурсы из кода и разметки XAML.For examples and more info, see Reference an image or other asset from XAML markup and code.

Имя схемы (ms-appx и ms-appx-web)Scheme name (ms-appx and ms-appx-web)

Имя схемы URI представляет собой строку ms-appx или ms-appx-web.The URI scheme name is the string "ms-appx" or "ms-appx-web".

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

Центр сертификации (ms-appx и ms-appx-web)Authority (ms-appx and ms-appx-web)

Центр сертификации — имя идентификатора пакета, которое определено в манифесте пакета.The authority is the package identity name that is defined in the package manifest. Таким образом, компонент центра сертификации в URI и в IRI (международный идентификатор ресурсов) ограничен набором символов, разрешенных в имени идентификатора пакета.It is therefore limited in both the URI and IRI (Internationalized resource identifier) form to the set of characters allowed in a package identity name. Имя пакета должно соответствовать имени одного из пакетов графа зависимостей пакета выполняемого приложения.The package name must be the name of one of the packages in the current running app's package dependency graph.

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

Если в имени центра сертификации присутствуют другие символы, его получение и сравнение завершится неудачей.If any other character appears in the authority, then retrieval and comparison fail. Значение по умолчанию для центра сертификации — пакет приложения, запущенного в настоящий момент.The default value for the authority is the currently running app's package.

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

Сведения о пользователе и порт (ms-appx и ms-appx-web)User info and port (ms-appx and ms-appx-web)

Схема ms-appx, в отличие от других популярных схем, не определяет компоненты сведений о пользователе и компоненты порта.The ms-appx scheme, unlike other popular schemes, does not define a user info or port component. Так как символы "@" and ":" не являются допустимыми значениями для компонента полномочий, при их наличии поиск завершится неудачно.Since "@" and ":" are not allowed as valid authority values, lookup will fail if they are included. Поиск завершится неудачно в любом из следующих примеров.Each of the following fails.

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

Путь (ms-appx и ms-appx-web)Path (ms-appx and ms-appx-web)

Компонент пути соответствует стандартному синтаксису RFC 3986 и поддерживает наличие в IRI символов, отличных от ASCII.The path component matches the generic RFC 3986 syntax and supports non-ASCII characters in IRIs. Компонент пути определяет логический или физический путь к файлу.The path component defines the logical or physical file path of a file. Этот файл находится в папке, сопоставленной с расположением установки пакета приложения. Приложение определяется компонентом центра сертификации.That file is in a folder associated with the installed location of the app package, for the app specified by the authority.

Если путь указывает на физический путь и имя файла, извлекается актив этого физического файла.If the path refers to a physical path and file name then that physical file asset is retrieved. Однако если найти физический файл не удается, реальный получаемый ресурс определяется с помощью согласования содержимого во время выполнения.But if no such physical file is found then the actual resource returned during retrieval is determined by using content negotiation at runtime. Это определение основано на приложения, операционной системе и параметрах пользователя, таких как язык, коэффициент масштабирования, тема, высокая контрастность и другие контексты выполнения.This determination is based on app, OS, and user settings such as language, display scale factor, theme, high contrast, and other runtime contexts. Например, сочетание языков приложения, системных параметров дисплея системы и пользовательских параметров высокой контрастности может быть учтено при определении фактического значения ресурса для получения.For example, a combination of the app's languages, the system's display settings, and the user's high contrast settings may be taken into account when determining the actual resource value to be retrieved.

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

Приведенный выше URI фактически может получить файл в пакете текущего приложения с помощью следующего физического имени файла.The URI above may actually retrieve a file within the current app's package with the following physical file name.

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

Естественно, можно также получить тот же физический файл путем обращения к нему напрямую с полным именем.You could of course also retrieve that same physical file by referring to it directly by its full name.

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

Компонент пути схемы ms-appx(-web), как и стандартные URI, учитывает регистр.The path component of ms-appx(-web) is, like generic URIs, case sensitive. Однако если файловая система, с помощью которой выполняется доступ к ресурсу, не учитывает регистр (например, NTFS), извлечение ресурса выполняется без учета регистра.However, when the underlying file system by which the resource is accessed is case insensitive, such as for NTFS, the retrieval of the resource is done case-insensitively.

Нормализованная форма URI поддерживает регистр и декодирует (используя символ "%", за которым следуют двузначный шестнадцатеричный символ) незарезервированные символы RFC 3986.The normalized form of the URI maintains case, and percent-decodes (a "%" symbol followed by the two-digit hexadecimal representation) RFC 3986 unreserved characters. Символы "?", "#", "/", "*" и "" "(символ двойной кавычки) должны быть закодированы в виде процента, представляющего такие данные, как имена файлов или папок.The characters "?", "#", "/", "*", and '"' (the double-quote character) must be percent-encoded in a path to represent data such as file or folder names. Все закодированные символы перед получением декодируются.All percent-encoded characters are decoded before retrieval. Поэтому для получения файла с именем Hello#World.html используйте этот URI.Thus, to retrieve a file named Hello#World.html, use this URI.

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

Запрос (ms-appx и ms-appx-web)Query (ms-appx and ms-appx-web)

Параметры запроса игнорируются во время получения ресурсов.Query parameters are ignored during retrieval of resources. Нормализованная форма параметров запроса учитывает регистр.The normalized form of query parameters maintains case. Параметры запроса не игнорируются во время сравнения.Query parameters are not ignored during comparison.

ms-appdatams-appdata

Схема URI ms-appdata используется для формирования ссылки на файлы приложения из локальной, перемещаемой и временной папок данных приложения.Use the ms-appdata URI scheme to refer to files that come from the app's local, roaming, and temporary data folders. Подробнее об этих папках данных приложения: Хранение и извлечение параметров и прочих данных приложения.For more info about these app data folders, see Store and retrieve settings and other app data.

Схема URI ms-appdata не выполняет согласование содержимого среды выполнения, которое проводят ms-appx и ms-appx-web.The ms-appdata URI scheme does not perform the runtime content negotiation that ms-appx and ms-appx-web do. Но вы можете реагировать на содержимое ResourceContext.QualifierValues и загружать соответствующие ресурсы из данных приложения с помощью их полных имен физических файлов в URI.But you can respond to the contents of ResourceContext.QualifierValues and load the appropriate assets from app data using their full physical file name in the URI.

Имя схемы (ms-appdata)Scheme name (ms-appdata)

Имя схемы URI представляет собой строку ms-appdata.The URI scheme name is the string "ms-appdata".

ms-appdata://

Центр сертификации (ms-appdata)Authority (ms-appdata)

Центр сертификации — имя идентификатора пакета, которое определено в манифесте пакета.The authority is the package identity name that is defined in the package manifest. Таким образом, компонент центра сертификации в URI и в IRI (международный идентификатор ресурсов) ограничен набором символов, разрешенных в имени идентификатора пакета.It is therefore limited in both the URI and IRI (Internationalized resource identifier) form to the set of characters allowed in a package identity name. Имя пакета должно соответствовать имени пакета запущенного в данный момент приложения.The package name must be the name of the current running app's package.

ms-appdata://Contoso.MyApp/

Если в имени центра сертификации присутствуют другие символы, его получение и сравнение завершится неудачей.If any other character appears in the authority, then retrieval and comparison fail. Значение по умолчанию для центра сертификации — пакет приложения, запущенного в настоящий момент.The default value for the authority is the currently running app's package.

ms-appdata:///

Сведения о пользователе и порт (ms-appdata)User info and port (ms-appdata)

Схема ms-appdata, в отличие от других популярных схем, не определяет компоненты сведений о пользователе и компоненты порта.The ms-appdata scheme, unlike other popular schemes, does not define a user info or port component. Так как символы "@" and ":" не являются допустимыми значениями для компонента полномочий, при их наличии поиск завершится неудачно.Since "@" and ":" are not allowed as valid authority values, lookup will fail if they are included. Поиск завершится неудачно в любом из следующих примеров.Each of the following fails.

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

Путь (ms-appdata)Path (ms-appdata)

Компонент пути соответствует стандартному синтаксису RFC 3986 и поддерживает наличие в IRI символов, отличных от ASCII.The path component matches the generic RFC 3986 syntax and supports non-ASCII characters in IRIs. В Windows.Storage.ApplicationData расположение — это три зарезервированные папки для хранения локальных, перемещаемых и временных состояний.Within the Windows.Storage.ApplicationData location are three reserved folders for local, roaming, and temporary state storage. Схема ms-appdata разрешает доступ к файлам и папкам в этих расположениях.The ms-appdata scheme allows access to files and folders in those locations. Первый сегмент компонента пути должен указывать определенную папку следующим образом.The first segment of the path component must specify the particular folder in the following fashion. Таким образом, формат path-empty для hier-part недопустим.Thus the "path-empty" form of "hier-part" is not legal.

Локальная папка.Local folder.

ms-appdata:///local/

Временная папка.Temporary folder.

ms-appdata:///temp/

Перемещаемая папка.Roaming folder.

ms-appdata:///roaming/

Компонент пути схемы ms-appdata, как и стандартные URI, учитывает регистр.The path component of ms-appdata is, like generic URIs, case sensitive. Однако если файловая система, с помощью которой выполняется доступ к ресурсу, не учитывает регистр (например, NTFS), извлечение ресурса выполняется без учета регистра.However, when the underlying file system by which the resource is accessed is case insensitive, such as for NTFS, the retrieval of the resource is done case-insensitively.

Нормализованная форма URI поддерживает регистр и декодирует (используя символ "%", за которым следуют двузначный шестнадцатеричный символ) незарезервированные символы RFC 3986.The normalized form of the URI maintains case, and percent-decodes (a "%" symbol followed by the two-digit hexadecimal representation) RFC 3986 unreserved characters. Символы "?", "#", "/", "*" и "" "(символ двойной кавычки) должны быть закодированы в виде процента, представляющего такие данные, как имена файлов или папок.The characters "?", "#", "/", "*", and '"' (the double-quote character) must be percent-encoded in a path to represent data such as file or folder names. Все закодированные символы перед получением декодируются.All percent-encoded characters are decoded before retrieval. Поэтому для получения локального файла с именем Hello#World.html используйте этот URI.Thus, to retrieve a local file named Hello#World.html, use this URI.

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

Извлечение ресурса и идентификация вышестоящего сегмента пути выполняются после нормализации точек (".././b/c").Retrieval of the resource, and identification of the top level path segment, are handled after normalization of dots (".././b/c"). Поэтому URI не могут с помощью точки ссылаться на себя из одной из зарезервированных папок.Therefore, URIs cannot dot themselves out of one of the reserved folders. Поэтому следующий URI недопустим.Thus, the following URI is not allowed.

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

Однако этот URI допустим (хотя и избыточен).But this URI is allowed (albeit redundant).

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

Запрос (ms-appdata)Query (ms-appdata)

Параметры запроса игнорируются во время получения ресурсов.Query parameters are ignored during retrieval of resources. Нормализованная форма параметров запроса учитывает регистр.The normalized form of query parameters maintains case. Параметры запроса не игнорируются во время сравнения.Query parameters are not ignored during comparison.

ms-resourcems-resource

Используйте схему URI ms-resource для обозначения строк, загружаемых из файлов ресурсов (.resw) приложения.Use the ms-resource URI scheme to refer to strings loaded from your app's Resources Files (.resw). Дополнительные сведения об использовании файлов ресурсов (.resw) и примеры см. в разделе Локализация строк в манифесте пакета приложения и интерфейсе пользователя.For examples and more info about Resources Files, see Localize strings in your UI and app package manifest.

Имя схемы (ms-resource)Scheme name (ms-resource)

Имя схемы URI представляет собой строку ms-resource.The URI scheme name is the string "ms-resource".

ms-resource://

Центр сертификации (ms-resource)Authority (ms-resource)

Центр сертификации — это имя схемы ресурсов наивысшего уровня, определенной в указателе ресурсов пакета (PRI), которое обычно соответствует имени идентификатора пакета, определенному в манифесте пакета.The authority is the top-level resource map defined in the Package Resource Index (PRI), which typically corresponds to the package identity name that is defined in the package manifest. См. раздел Упаковка приложений).See Packaging apps). Таким образом, компонент центра сертификации в URI и в IRI (международный идентификатор ресурсов) ограничен набором символов, разрешенных в имени идентификатора пакета.It is therefore limited in both the URI and IRI (Internationalized resource identifier) form to the set of characters allowed in a package identity name. Имя пакета должно соответствовать имени одного из пакетов графа зависимостей пакета выполняемого приложения.The package name must be the name of one of the packages in the current running app's package dependency graph.

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

Если в имени центра сертификации присутствуют другие символы, его получение и сравнение завершится неудачей.If any other character appears in the authority, then retrieval and comparison fail. Значение по умолчанию для центра сертификации — чувствительное к регистру имя пакета приложения, запущенного в настоящий момент.The default value for the authority is the case-sensitive package name of the currently running app.

ms-resource:///

Центр сертификации учитывает регистр, и нормализованная форма сохраняет регистр.The authority is case sensitive, and the normalized form maintains its case. Однако при поиске ресурса регистр не учитывается.Lookup of a resource, however, happens case-insensitively.

Сведения о пользователе и порт (ms-resource)User info and port (ms-resource)

Схема ms-resource, в отличие от других популярных схем, не определяет компоненты сведений о пользователе и компоненты порта.The ms-resource scheme, unlike other popular schemes, does not define a user info or port component. Так как символы "@" and ":" не являются допустимыми значениями для компонента полномочий, при их наличии поиск завершится неудачно.Since "@" and ":" are not allowed as valid authority values, lookup will fail if they are included. Поиск завершится неудачно в любом из следующих примеров.Each of the following fails.

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

Путь (ms-resource)Path (ms-resource)

Путь определяет иерархическое расположение поддерева ResourceMap (см. раздел Система управления ресурсами) и подраздел NamedResource в нем.The path identifies the hierarchical location of the ResourceMap subtree (see Resource Management System) and the NamedResource within it. Обычно путь соответствует имени файлов ресурса (без расширения .resw) и идентификатору строкового ресурса в этом файле.Typically, this corresponds to the filename (excluding extension) of a Resources Files (.resw) and the identifier of a string resource within it.

Дополнительные сведения и примеры см. в разделах Локализация строк в манифесте пакета приложения и интерфейсе пользователя и Поддержка плитки и всплывающих уведомлений для языка, масштаба и высокой контрастности.For examples and more info, see Localize strings in your UI and app package manifest and Tile and toast notification support for language, scale, and high contrast.

Компонент пути схемы ms-resource, как и стандартные URI, учитывает регистр.The path component of ms-resource is, like generic URIs, case sensitive. Однако в базовом извлечении CompareStringOrdinal параметру ignoreCase присвоено значение true .However, the underlying retrieval does a CompareStringOrdinal with ignoreCase set to true.

Нормализованная форма URI поддерживает регистр и декодирует (используя символ "%", за которым следуют двузначный шестнадцатеричный символ) незарезервированные символы RFC 3986.The normalized form of the URI maintains case, and percent-decodes (a "%" symbol followed by the two-digit hexadecimal representation) RFC 3986 unreserved characters. Символы "?", "#", "/", "*" и "" "(символ двойной кавычки) должны быть закодированы в виде процента, представляющего такие данные, как имена файлов или папок.The characters "?", "#", "/", "*", and '"' (the double-quote character) must be percent-encoded in a path to represent data such as file or folder names. Все закодированные символы перед получением декодируются.All percent-encoded characters are decoded before retrieval. Таким же, чтобы получить строковый ресурс из файла ресурсов с именем Hello#World.resw , используйте этот URI.Thus, to retrieve a string resource from a Resources File named Hello#World.resw, use this URI.

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

Запрос (ms-resource)Query (ms-resource)

Параметры запроса игнорируются во время получения ресурсов.Query parameters are ignored during retrieval of resources. Нормализованная форма параметров запроса учитывает регистр.The normalized form of query parameters maintains case. Параметры запроса не игнорируются во время сравнения.Query parameters are not ignored during comparison. Параметры запроса сравниваются с учетом регистра.Query parameters are compared case-sensitively.

Разработчики определенных компонентов, находящихся в слое выше этого анализа URI, могут выбрать удобное для них использование параметров запроса.Developers of particular components layered above this URI parsing may choose to use the query parameters as they see fit.