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 otoritas ms-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.
Topik terkait
- Pengidentifikasi Sumber Daya Seragam (URI): Sintaksis Generik
- Aplikasi pengemasan
- Mereferensikan gambar atau aset lain dari markup dan kode XAML
- Menyimpan dan mengambil pengaturan dan data aplikasi lainnya
- Melokalisasi string di manifes paket UI dan aplikasi Anda
- Sistem Manajemen Sumber Daya
- Dukungan pemberitahuan petak peta dan toast untuk bahasa, skala, dan kontras tinggi