URI スキームURI schemes

アプリのパッケージ、アプリのデータ フォルダー、またはクラウドからのファイルを参照するために使用できる URI (Uniform Resource Identifier) スキームはいくつかあります。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.

URI スキームの一般的な機能Common features of the URI schemes

このトピックで説明しているスキームはすべて、正規化とリソース取得について一般的な URI スキーム規則に従っています。All of the schemes described in this topic follow typical URI scheme rules for normalization and resource retrieval. URI の一般的な構文については、RFC 3986 をご覧ください。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 には原則として 3 つのコンポーネントがあります。What this means is that there are essentially three components to a URI. URI スキーム には、2 つのスラッシュの直後に "機関" コンポーネントがあります (空白にすることも可能)。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)

機関は、パッケージ マニフェストで定義されているパッケージ ID 名です。The authority is the package identity name that is defined in the package manifest. したがって、URI 形式と IRI (Internationalized Resource Identifier) 形式のどちらでも、パッケージ ID 名で許可されている文字のセットに制限されます。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. この決定は、アプリ、OS、その他のユーザー設定 (言語、表示倍率、テーマ、ハイ コントラスト、その他の実行時コンテキスト) に基づいて行われます。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 の非予約文字がパーセントデコードされます ("%" 記号の後に 2 桁の 16 進数表現)。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. ただし、URI 内で物理ファイルの完全名を使用すると、ResourceContext.QualifierValues のコンテンツに応答し、アプリ データから適切なアセットを読み込むことができます。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)

機関は、パッケージ マニフェストで定義されているパッケージ ID 名です。The authority is the package identity name that is defined in the package manifest. したがって、URI 形式と IRI (Internationalized Resource Identifier) 形式のどちらでも、パッケージ ID 名で許可されている文字のセットに制限されます。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 の場所には、ローカル ストレージ、ローミング ストレージ、一時状態ストレージの 3 つの予約済みフォルダーがあります。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. したがって、"hier-part" の "path-empty" 形式は許可されません。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 の非予約文字がパーセントデコードされます ("%" 記号の後に 2 桁の 16 進数表現)。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

最上位のパス セグメントのリソースと ID の取得は、ドットの正規化の後に処理されます (".././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

アプリのリソース ファイル (.resw) から読み込まれた文字列を参照するには、URI スキーム ms-resource を使用します。Use the ms-resource URI scheme to refer to strings loaded from your app's Resources Files (.resw). リソース ファイルの例と詳しい情報については、「UI とアプリ パッケージ マニフェスト内の文字列をローカライズする」をご覧ください。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) 内で定義された最上位のリソース マップで、通常はパッケージ マニフェストで定義されたパッケージ ID 名に対応しています。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 (Internationalized Resource Identifier) 形式のどちらでも、パッケージ ID 名で許可されている文字のセットに制限されます。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.

例と詳しい情報については、「UI とアプリ パッケージ マニフェスト内の文字列をローカライズする」と「言語、スケール、ハイ コントラストに合わせたタイルとトースト通知のサポート」をご覧ください。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. ただし、基になる検索が、 CompareStringOrdinalignoreCase設定trueします。However, the underlying retrieval does a CompareStringOrdinal with ignoreCase set to true.

正規化された URI 形式では大文字と小文字が保持され、RFC 3986 の非予約文字がパーセントデコードされます ("%" 記号の後に 2 桁の 16 進数表現)。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.