Aracılığıyla paylaş


XSLT İşleme Sırasında Dış Kaynakları Çözümleme

XSLT dönüşümü sırasında dış kaynakları çözümlemeniz gerekebilecek birkaç kez vardır.

XmlResolver Sınıfını Kullanma

sınıfı XmlResolver dış kaynakları çözümlemek için kullanılır. Aşağıdaki tabloda, XSLT işlemi sırasında XmlResolver ne zaman dahil olur açıklanmaktadır.

XSLT görevi XmlResolver'ın ne için kullanıldığı
Stil sayfasını derleyin. Stil sayfasının URI'sini çözün.

-ve-

Herhangi bir xsl:import veya xsl:include öğesindeki URI başvurularını çözün.
Stil sayfasını uygula. Bağlam belgesinin URI'sini çözün.

-ve-

Herhangi bir XSLT document() işlevindeki URI başvurularını çözün.

Load ve Transform yöntemleri, parametrelerinden biri olarak bir XmlResolver nesnesi kabul eden çeşitli yüklemeler içerir. XmlResolver belirtilmezse, kimlik bilgisi olmayan bir varsayılan XmlUrlResolver kullanılır.

Aşağıdaki listede bir XmlResolver nesne belirtmek isteyebileceğiniz zamanlar açıklanmaktadır:

  • XSLT işleminin kimlik doğrulaması gerektiren bir ağ kaynağına erişmesi gerekiyorsa, gerekli kimlik bilgileriyle bir XmlResolver kullanabilirsiniz.

  • XSLT işleminin erişebileceği kaynakları kısıtlamak istiyorsanız, doğru izin kümesine sahip bir XmlSecureResolver kullanabilirsiniz. XmlSecureResolver Denetlemediğiniz veya güvenilmeyen bir kaynağı açmanız gerekiyorsa sınıfını kullanın.

  • Davranışı özelleştirmek istiyorsanız, kendi XmlResolver sınıfınızı uygulayabilir ve kaynakları çözümlemek için kullanabilirsiniz.

  • Dış kaynaklara erişilmediğinden emin olmak istiyorsanız, null bağımsız değişkeni için XmlResolver belirtebilirsiniz.

Örnek

Aşağıdaki örnek, bir ağ kaynağında depolanan bir stil sayfasını derlemektedir. Nesne XmlUrlResolver , stil sayfasına erişmek için gereken kimlik bilgilerini belirtir.

// 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)

Ayrıca bakınız