Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ada beberapa kali selama transformasi XSLT ketika Anda mungkin perlu menyelesaikan sumber daya eksternal.
Menggunakan Kelas XmlResolver
Kelas XmlResolver ini digunakan untuk menyelesaikan sumber daya eksternal. Tabel berikut menjelaskan kapan XmlResolver terlibat selama pemrosesan XSLT.
| Tugas XSLT | Untuk apa XmlResolver digunakan |
|---|---|
| Mengkompilasi lembar gaya. | Selesaikan URI stylesheet. -dan- Selesaikan referensi URI dalam elemen xsl:import atau xsl:include apa pun. |
| Jalankan lembar gaya. | Atasi URI dokumen konteks. -dan- Atasi referensi URI dalam fungsi XSLT document() apa pun. |
Metode Load dan Transform mencakup kelebihan beban yang mengambil XmlResolver objek sebagai salah satu argumennya. Jika XmlResolver tidak ditentukan, default XmlUrlResolver tanpa kredensial akan digunakan.
Daftar berikut ini menjelaskan kapan Anda mungkin ingin menentukan XmlResolver objek:
Jika proses XSLT perlu mengakses sumber daya jaringan yang memerlukan autentikasi, Anda dapat menggunakan sebuah XmlResolver dengan kredensial yang diperlukan.
Jika Anda ingin membatasi sumber daya yang dapat diakses proses XSLT, Anda dapat menggunakan XmlSecureResolver dengan set izin yang benar. XmlSecureResolver Gunakan kelas jika Anda perlu membuka sumber daya yang tidak Anda kontrol, atau yang tidak tepercaya.
Jika ingin menyesuaikan perilaku, Anda dapat mengimplementasikan kelas Anda sendiri XmlResolver dan menggunakannya untuk menyelesaikan sumber daya.
Jika Anda ingin memastikan bahwa tidak ada sumber daya eksternal yang diakses, Anda dapat menentukan
nulluntuk argumen tersebut XmlResolver .
Contoh
Contoh berikut mengkompilasi lembar gaya yang disimpan pada sumber daya jaringan. Objek XmlUrlResolver menentukan kredensial yang diperlukan untuk mengakses lembar gaya.
// Create the credentials.
NetworkCredential myCred = new NetworkCredential(UserName,SecurelyStoredPassword,Domain);
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri("http://www.contoso.com/"), "Basic", myCred);
myCache.Add(new Uri("http://app.contoso.com/"), "Basic", myCred);
// Set the credentials on the XmlUrlResolver object.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = myCache;
// Compile the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("http://serverName/data/xsl/order.xsl",XsltSettings.Default, resolver);
' Create the credentials.
Dim myCred As NetworkCredential = New NetworkCredential(UserName, SecurelyStoredPassword, Domain)
Dim myCache As CredentialCache = New CredentialCache()
myCache.Add(new Uri("http://www.contoso.com/"), "Basic", myCred)
myCache.Add(new Uri("http://app.contoso.com/"), "Basic", myCred)
' Set the credentials on the XmlUrlResolver object.
Dim resolver As XmlUrlResolver = New XmlUrlResolver()
resolver.Credentials = myCache
' Compile the style sheet.
Dim xslt As XslCompiledTransform = New XslCompiledTransform()
xslt.Load("http://serverName/data/xsl/order.xsl", XsltSettings.Default, resolver)