Résolution de feuilles de style XSLT externes et de documents
Lors d'une transformation, il peut s'avérer nécessaire de résoudre des ressources externes à plusieurs moments.
Remarque |
---|
La classe XslTransform est obsolète dans le .NET Framework version 2.0.Vous pouvez effectuer des transformations XSLT (Extensible Stylesheet Language Transformation) à l'aide de la classe XslCompiledTransform.Pour plus d'informations, voir Utilisation de la classe XslCompiledTransform et Migration depuis la classe XslTransform. |
Lors d'une transformation, il peut s'avérer nécessaire de résoudre des ressources externes à plusieurs moments :
pendant la méthode Load pour localiser une feuille de style externe ;
pendant la méthode Load pour résoudre tout élément <xsl:include> ou <xsl:import> trouvé dans la feuille de style ;
pendant la méthode Transform pour résoudre toute fonction document().
Utilisation de la classe XmlResolver
Si l'authentification est nécessaire pour accéder à une ressource réseau, utilisez les méthodes Load qui ont un paramètre XmlResolver à passer à l'objet XmlResolver qui possède le jeu de propriétés d'informations d'identification nécessaire.
Si vous souhaitez utiliser un objet XmlResolver personnalisé ou si vous devez spécifier des informations d'identification différentes, le tableau suivant répertorie la tâche requise en fonction du moment où la ressource externe doit être résolue.
Processus devant être résolu |
Tâche requise |
---|---|
Pendant la méthode Load pour localiser la feuille de style. |
Spécifiez la méthode Load surchargée qui prend comme paramètre un objet XmlResolver si la feuille de style est sur une ressource qui nécessite des informations d'identification. |
Pendant la méthode Load pour résoudre <xsl:include> ou <xsl:import>. |
Spécifiez la méthode Load surchargée qui prend comme paramètre XmlResolver. L'objet XmlResolver est utilisé pour charger les feuilles de style référencées par les instructions import ou include. Si vous passez null, les ressources externes ne sont pas résolues. |
Lors d'une transformation pour résoudre toute fonction document(). |
Spécifiez l'objet XmlResolver durant la transformation en utilisant la méthode Transform qui prend un argument XmlResolver. |
La fonction document() extrait d'autres ressources XML d'une feuille de style, en plus des données XML initiales fournies par le flux d'entrée. Comme cette fonction permet l'inclusion de données XML qui peuvent se localiser ailleurs, un objet XmlResolver avec une valeur null fournie à la méthode Transform empêche la fonction document() de s'exécuter. Si vous voulez utiliser la fonction document(), utilisez la méthode Transform qui prend un XmlResolver comme paramètre, en plus d'avoir le jeu d'autorisations approprié.
Pour plus d'informations sur la méthode Load et son utilisation de l'objet XmlResolver, voir XslTransform.Load(String, XmlResolver). Pour plus d'informations sur la classe XmlResolver, voir Résolution de ressources à l'aide de XmlResolver et XmlResolver Class.
Lorsque la méthode Transform est appelée, les autorisations sont calculées par rapport aux preuves fournies au moment du chargement, et ce jeu d'autorisations est attribué à l'ensemble du processus de transformation. Si la fonction document() tente d'initier une action qui nécessite des autorisations qui ne se trouvent pas dans le jeu, une exception est levée.
Voir aussi
Concepts
Transformations XSLT avec la classe XslTransform
Implémentation du processeur XSLT par la classe XslTransform
Sorties à partir de XslTransform
Transformations XSLT sur différents magasins
XsltArgumentList pour les paramètres de feuille de style et les objets d'extension
Écriture de scripts de feuille de style XSLT à l'aide de <msxsl:script>
Prise en charge de la fonction msxsl:node-set()
XPathNavigator dans les transformations
XPathNodeIterator dans les transformations
Entrée XPathDocument dans XslTransform