Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Er zijn meerdere keren tijdens een XSLT-transformatie wanneer u mogelijk externe resources moet oplossen.
De klasse XmlResolver gebruiken
De XmlResolver klasse wordt gebruikt om externe resources op te lossen. In de volgende tabel wordt beschreven wanneer de XmlResolver betrokken worden tijdens de XSLT-verwerking.
XSLT-taak | Waarvoor xmlResolver wordt gebruikt |
---|---|
Verzamel het stijlblad. | Los de URI van het stijlblad op. en Werk URI-verwijzingen af in een xsl:import - of xsl:include -element. |
Voer het stijlblad uit. | Los de URI van het contextdocument op. en URI-verwijzingen in XSLT-functies document() oplossen. |
De Load en Transform methoden omvatten overbelastingen die een XmlResolver object als een van de argumenten gebruiken. Als er geen XmlResolver is gespecificeerd, wordt er standaard een XmlUrlResolver zonder inloggegevens gebruikt.
In de volgende lijst wordt beschreven wanneer u mogelijk een XmlResolver object wilt opgeven:
Als het XSLT-proces toegang nodig heeft tot een netwerkresource waarvoor verificatie is vereist, kunt u een XmlResolver met de benodigde referenties gebruiken.
Als u de resources wilt beperken waartoe het XSLT-proces toegang heeft, kunt u een XmlSecureResolver met de juiste machtigingenset gebruiken. Gebruik de XmlSecureResolver klasse als u een resource wilt openen waarvan u geen controle heeft of die niet betrouwbaar is.
Als u het gedrag wilt aanpassen, kunt u uw eigen XmlResolver klasse implementeren en deze gebruiken om resources op te lossen.
Als u ervoor wilt zorgen dat er geen externe bronnen worden benaderd, kunt u
null
opgeven voor het XmlResolver argument.
Voorbeeld
In het volgende voorbeeld wordt een stijlblad gecompileerd dat opgeslagen is op een netwerkbron. Een XmlUrlResolver object specificeert de inloggegevens die nodig zijn voor toegang tot het stijlblad.
// 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)