Share via


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 ne XmlResolver zaman dahil olduğu 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ı yürütür. 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, bir XmlResolver nesneyi bağımsız değişkenlerinden biri olarak alan aşırı yüklemeleri 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şildiğinden emin olmak istiyorsanız, bağımsız değişken için XmlResolver belirtebilirsiniznull.

Örnek

Aşağıdaki örnek, bir ağ kaynağında depolanan bir stil sayfası derler. 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 bkz.