Skema URI

Ada beberapa skema URI (Pengidentifikasi Sumber Daya Seragam) yang dapat Anda gunakan untuk merujuk ke file yang berasal dari paket aplikasi, folder data aplikasi Anda, atau cloud. Anda juga dapat menggunakan skema URI untuk merujuk ke string yang dimuat dari File Sumber Daya aplikasi Anda (.resw). Anda dapat menggunakan skema URI ini dalam kode Anda, di markup XAML, dalam manifes paket aplikasi Anda, atau di templat pemberitahuan petak peta dan toast Anda.

Fitur umum skema URI

Semua skema yang dijelaskan dalam topik ini mengikuti aturan skema URI umum untuk normalisasi dan pengambilan sumber daya. Lihat RFC 3986 untuk sintaks generik URI.

Semua skema URI mendefinisikan bagian hierarkis per RFC 3986 sebagai otoritas dan komponen jalur URI.

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

Apa artinya ini adalah bahwa pada dasarnya ada tiga komponen untuk URI. Segera setelah dua garis miring dari skema URI adalah komponen (yang dapat kosong) yang disebut otoritas. Dan segera setelah itu adalah jalannya. Mengambil URI http://www.contoso.com/welcome.png sebagai contoh, skemanya adalah "http://", otoritasnya adalah "www.contoso.com", dan jalurnya adalah "/welcome.png". Contoh lain adalah URI ms-appx:///logo.png, di mana komponen otoritas kosong dan mengambil nilai default.

Komponen fragmen diabaikan oleh pemrosesan khusus skema URI yang disebutkan dalam topik ini. Selama pengambilan dan perbandingan sumber daya, komponen fragmen tidak memiliki bearing. Namun, lapisan di atas implementasi tertentu dapat menginterpretasikan fragmen untuk mengambil sumber daya sekunder.

Perbandingan terjadi byte untuk byte setelah normalisasi semua komponen IRI.

Ketidakpekaan huruf besar/kecil dan normalisasi

Semua skema URI yang dijelaskan dalam topik ini mengikuti aturan URI umum (RFC 3986) untuk normalisasi dan pengambilan sumber daya untuk skema. Bentuk yang dinormalisasi dari URI ini mempertahankan karakter RFC 3986 yang tidak dikodekan kasus dan persen.

Untuk semua skema URI yang dijelaskan dalam topik ini, skema, otoritas, dan jalur tidak peka huruf besar/kecil menurut standar, atau diproses oleh sistem dengan cara yang tidak peka huruf besar/kecil. Perhatikan Satu-satunya pengecualian untuk aturan tersebut adalah otoritasms-resource, yang peka huruf besar/kecil.

ms-appx dan ms-appx-web

ms-appx Gunakan atau ms-appx-web skema URI untuk merujuk ke file yang berasal dari paket aplikasi Anda (lihat Aplikasi pengemasan). File dalam paket aplikasi Anda biasanya merupakan gambar statis, data, kode, dan file tata letak. ms-appx-web Skema mengakses file yang sama dengan ms-appx, tetapi di kompartemen web. Untuk contoh dan info selengkapnya, lihat Mereferensikan gambar atau aset lain dari markup dan kode XAML.

Nama skema (ms-appx dan ms-appx-web)

Nama skema URI adalah string "ms-appx" atau "ms-appx-web".

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

Otoritas (ms-appx dan ms-appx-web)

Otoritas adalah nama identitas paket yang ditentukan dalam manifes paket. Oleh karena itu terbatas dalam bentuk URI dan IRI (Pengidentifikasi sumber daya internasional) ke serangkaian karakter yang diizinkan dalam nama identitas paket. Nama paket harus menjadi nama salah satu paket dalam grafik dependensi paket aplikasi yang sedang berjalan saat ini.

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

Jika ada karakter lain yang muncul di otoritas, pengambilan dan perbandingan gagal. Nilai default untuk otoritas adalah paket aplikasi yang sedang berjalan.

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

Info pengguna dan port (ms-appx dan ms-appx-web)

Skema ini ms-appx , tidak seperti skema populer lainnya, tidak menentukan info pengguna atau komponen port. Karena "@" dan ":" tidak diizinkan sebagai nilai otoritas yang valid, pencarian akan gagal jika disertakan. Masing-masing dari berikut gagal.

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

Jalur (ms-appx dan ms-appx-web)

Komponen jalur cocok dengan sintaks RFC 3986 generik dan mendukung karakter non-ASCII dalam IRIs. Komponen jalur menentukan jalur file logis atau fisik file. File tersebut berada dalam folder yang terkait dengan lokasi paket aplikasi yang diinstal, untuk aplikasi yang ditentukan oleh otoritas.

Jika jalur mengacu pada jalur fisik dan nama file, aset file fisik tersebut diambil. Tetapi jika tidak ada file fisik seperti itu yang ditemukan maka sumber daya aktual yang dikembalikan selama pengambilan ditentukan dengan menggunakan negosiasi konten pada runtime. Penentuan ini didasarkan pada pengaturan aplikasi, OS, dan pengguna seperti bahasa, faktor skala tampilan, tema, kontras tinggi, dan konteks runtime lainnya. Misalnya, kombinasi bahasa aplikasi, pengaturan tampilan sistem, dan pengaturan kontras tinggi pengguna dapat diperhitungkan saat menentukan nilai sumber daya aktual yang akan diambil.

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

URI di atas sebenarnya dapat mengambil file dalam paket aplikasi saat ini dengan nama file fisik berikut.

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

Anda tentu saja dapat mengambil file fisik yang sama dengan merujuknya langsung dengan nama lengkapnya.

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

Komponen ms-appx(-web) jalur adalah, seperti URI generik, peka huruf besar/kecil. Namun, ketika sistem file yang mendasar tempat sumber daya diakses tidak peka huruf besar/kecil, seperti untuk NTFS, pengambilan sumber daya dilakukan secara tidak peka huruf besar/kecil.

Bentuk URI yang dinormalisasi mempertahankan huruf besar/kecil, dan dekode persen (simbol "%" diikuti dengan representasi heksadesimal dua digit) karakter RFC 3986 yang belum dilayani. Karakter "?", "#", "/", "*", dan '"' (karakter tanda kutip ganda) harus dikodekan persen dalam jalur untuk mewakili data seperti nama file atau folder. Semua karakter yang dikodekan persen didekodekan sebelum pengambilan. Dengan demikian, untuk mengambil file bernama Hello#World.html, gunakan URI ini.

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

Kueri (ms-appx dan ms-appx-web)

Parameter kueri diabaikan selama pengambilan sumber daya. Bentuk parameter kueri yang dinormalisasi mempertahankan kasus. Parameter kueri tidak diabaikan selama perbandingan.

ms-appdata

ms-appdata Gunakan skema URI untuk merujuk ke file yang berasal dari folder data lokal, roaming, dan sementara aplikasi. Untuk informasi selengkapnya tentang folder data aplikasi ini, lihat Menyimpan dan mengambil pengaturan dan data aplikasi lainnya.

Skema ms-appdata URI tidak melakukan negosiasi konten runtime yang dilakukan ms-appx dan ms-appx-web . Tetapi Anda dapat menanggapi konten ResourceContext.QualifierValues dan memuat aset yang sesuai dari data aplikasi menggunakan nama file fisik lengkapnya di URI.

Nama skema (ms-appdata)

Nama skema URI adalah string "ms-appdata".

ms-appdata://

Otoritas (ms-appdata)

Otoritas adalah nama identitas paket yang ditentukan dalam manifes paket. Oleh karena itu terbatas dalam bentuk URI dan IRI (Pengidentifikasi sumber daya internasional) ke serangkaian karakter yang diizinkan dalam nama identitas paket. Nama paket harus menjadi nama paket aplikasi yang sedang berjalan saat ini.

ms-appdata://Contoso.MyApp/

Jika ada karakter lain yang muncul di otoritas, pengambilan dan perbandingan gagal. Nilai default untuk otoritas adalah paket aplikasi yang sedang berjalan.

ms-appdata:///

Info pengguna dan port (ms-appdata)

Skema ini ms-appdata , tidak seperti skema populer lainnya, tidak menentukan info pengguna atau komponen port. Karena "@" dan ":" tidak diizinkan sebagai nilai otoritas yang valid, pencarian akan gagal jika disertakan. Masing-masing dari berikut gagal.

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

Jalur (ms-appdata)

Komponen jalur cocok dengan sintaks RFC 3986 generik dan mendukung karakter non-ASCII dalam IRIs. Dalam lokasi Windows.Storage.ApplicationData ada tiga folder yang dipesan untuk penyimpanan status lokal, roaming, dan sementara. Skema ini ms-appdata memungkinkan akses ke file dan folder di lokasi tersebut. Segmen pertama komponen jalur harus menentukan folder tertentu dengan cara berikut. Dengan demikian bentuk "path-empty" dari "hier-part" tidak legal.

Folder lokal.

ms-appdata:///local/

Folder sementara.

ms-appdata:///temp/

Folder roaming.

ms-appdata:///roaming/

Komponen ms-appdata jalur adalah, seperti URI generik, peka huruf besar/kecil. Namun, ketika sistem file yang mendasar tempat sumber daya diakses tidak peka huruf besar/kecil, seperti untuk NTFS, pengambilan sumber daya dilakukan secara tidak peka huruf besar/kecil.

Bentuk URI yang dinormalisasi mempertahankan huruf besar/kecil, dan dekode persen (simbol "%" diikuti dengan representasi heksadesimal dua digit) karakter RFC 3986 yang belum dilayani. Karakter "?", "#", "/", "*", dan '"' (karakter tanda kutip ganda) harus dikodekan persen dalam jalur untuk mewakili data seperti nama file atau folder. Semua karakter yang dikodekan persen didekodekan sebelum pengambilan. Dengan demikian, untuk mengambil file lokal bernama Hello#World.html, gunakan URI ini.

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

Pengambilan sumber daya, dan identifikasi segmen jalur tingkat atas, ditangani setelah normalisasi titik (".. /./b/c"). Oleh karena itu, URI tidak dapat melakukan sendiri dari salah satu folder yang dipesan. Dengan demikian, URI berikut tidak diizinkan.

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

Tetapi URI ini diperbolehkan (meskipun berlebihan).

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

Kueri (ms-appdata)

Parameter kueri diabaikan selama pengambilan sumber daya. Bentuk parameter kueri yang dinormalisasi mempertahankan kasus. Parameter kueri tidak diabaikan selama perbandingan.

ms-resource

ms-resource Gunakan skema URI untuk merujuk ke string yang dimuat dari File Sumber Daya aplikasi Anda (.resw). Untuk contoh dan info selengkapnya tentang File Sumber Daya, lihat Melokalisasi string di manifes UI dan paket aplikasi Anda.

Nama skema (ms-resource)

Nama skema URI adalah string "ms-resource".

ms-resource://

Otoritas (ms-resource)

Otoritas adalah peta sumber daya tingkat atas yang ditentukan dalam Indeks Sumber Daya Paket (PRI), yang biasanya sesuai dengan nama identitas paket yang ditentukan dalam manifes paket. Lihat Mengemas aplikasi). Oleh karena itu terbatas dalam bentuk URI dan IRI (Pengidentifikasi sumber daya internasional) ke serangkaian karakter yang diizinkan dalam nama identitas paket. Nama paket harus menjadi nama salah satu paket dalam grafik dependensi paket aplikasi yang sedang berjalan saat ini.

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

Jika ada karakter lain yang muncul di otoritas, pengambilan dan perbandingan gagal. Nilai default untuk otoritas adalah nama paket peka huruf besar/kecil dari aplikasi yang sedang berjalan.

ms-resource:///

Otoritas peka huruf besar/kecil, dan bentuk yang dinormalisasi mempertahankan kasusnya. Namun, pencarian sumber daya terjadi secara tidak peka huruf besar/kecil.

Info pengguna dan port (ms-resource)

Skema ini ms-resource , tidak seperti skema populer lainnya, tidak menentukan info pengguna atau komponen port. Karena "@" dan ":" tidak diizinkan sebagai nilai otoritas yang valid, pencarian akan gagal jika disertakan. Masing-masing dari berikut gagal.

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

Jalur (ms-resource)

Jalur mengidentifikasi lokasi hierarkis subtree ResourceMap (lihat Sistem Manajemen Sumber Daya) dan NamedResource di dalamnya. Biasanya, ini sesuai dengan nama file (tidak termasuk ekstensi) dari File Sumber Daya (.resw) dan pengidentifikasi sumber daya string di dalamnya.

Untuk contoh dan info selengkapnya, lihat Melokalisasi string di manifes paket UI dan aplikasi Anda serta dukungan pemberitahuan Petak dan toast untuk bahasa, skala, dan kontras tinggi.

Komponen ms-resource jalur adalah, seperti URI generik, peka huruf besar/kecil. Namun, pengambilan yang mendasarinya melakukan CompareStringOrdinal dengan ignoreCase diatur ke true.

Bentuk URI yang dinormalisasi mempertahankan huruf besar/kecil, dan dekode persen (simbol "%" diikuti dengan representasi heksadesimal dua digit) karakter RFC 3986 yang belum dilayani. Karakter "?", "#", "/", "*", dan '"' (karakter tanda kutip ganda) harus dikodekan persen dalam jalur untuk mewakili data seperti nama file atau folder. Semua karakter yang dikodekan persen didekodekan sebelum pengambilan. Dengan demikian, untuk mengambil sumber daya string dari File Sumber Daya bernama Hello#World.resw, gunakan URI ini.

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

Kueri (ms-resource)

Parameter kueri diabaikan selama pengambilan sumber daya. Bentuk parameter kueri yang dinormalisasi mempertahankan kasus. Parameter kueri tidak diabaikan selama perbandingan. Parameter kueri dibandingkan dengan huruf besar/kecil.

Pengembang komponen tertentu yang berlapis di atas penguraian URI ini dapat memilih untuk menggunakan parameter kueri sesuai keinginan.