Assembly : System.Xml (dans system.xml.dll)
Public NotInheritable Class XslCompiledTransform
Dim instance As XslCompiledTransform
public sealed class XslCompiledTransform
public ref class XslCompiledTransform sealed
public final class XslCompiledTransform
public final class XslCompiledTransform
La classe XslCompiledTransform est un processeur XSLT qui prend en charge la syntaxe de XSLT 1.0. Il s'agit d'une nouvelle implémentation, qui présente des avantages en matière de performance par rapport à la classe XslTransform, obsolète. La structure de la classe XslCompiledTransform est très proche de celle de la classe XslTransform. La méthode Load charge et compile la feuille de style, alors que la méthode Transform exécute la transformation XSLT.
La prise en charge de la fonction document() XSLT et des blocs de script incorporés est désactivée par défaut. Vous pouvez activer ces fonctionnalités en créant un objet XsltSettings et en le passant à la méthode Load.
Pour plus d'informations, consultez Utilisation de la classe XslCompiledTransform et Migration depuis la classe XslTransform.
Considérations sur la sécurité
Lorsque vous créez une application qui utilise la classe XslCompiledTransform, vous devez prendre en compte les éléments suivants et leurs conséquences :
-
Le script XSLT est désactivé par défaut. Le script XSLT doit être activé uniquement si la prise en charge du script est requise et si vous travaillez dans un environnement dont le niveau de confiance est suffisant.
-
La fonction document() XSLT est désactivée par défaut. Si vous activez la fonction document(), limitez les ressources auxquelles l'utilisateur peut accéder en passant un objet XmlSecureResolver à la méthode Transform.
-
Les objets d'extension sont activés par défaut. Si un objet XsltArgumentList contenant des objets d'extension est passé à la méthode Transform, ceux-ci sont utilisés.
-
Les feuilles de style XSLT peuvent inclure des références à d'autres fichiers et des blocs de script incorporés. Un utilisateur malveillant peut exploiter cette situation en vous fournissant des données ou des feuilles de style qui, lors de leur exécution, peuvent être traitées par le système jusqu'à ce que l'ordinateur manque de ressources.
-
Avec des applications XSLT qui s'exécutent dans un environnement d'approbation mixte, une feuille de style peut être usurpée. Par exemple, un utilisateur malveillant peut charger un objet avec une feuille de style nuisible et le remettre à un autre utilisateur qui appelle par la suite la méthode Transform et exécute la transformation.
Vous pouvez atténuer ces problèmes de sécurité en n'activant pas les scripts ou la fonction document() si la feuille de style ne provient pas d'une source fiable, et en n'acceptant pas d'objets XslCompiledTransform, de feuilles de style XSLT ou de données XML source provenant d'une source non fiable.
L'exemple suivant effectue une transformation et envoie la sortie vers un fichier.
' Load the style sheet. Dim xslt As New XslCompiledTransform() xslt.Load("output.xsl") ' Execute the transform and output the results to a file. xslt.Transform("books.xml", "books.html")
// Load the style sheet. XslCompiledTransform xslt = new XslCompiledTransform(); xslt.Load("output.xsl"); // Execute the transform and output the results to a file. xslt.Transform("books.xml", "books.html");
System.Xml.Xsl.XslCompiledTransform
L'objet XslCompiledTransform est thread-safe une fois qu'il a été chargé. En d'autres termes, à la fin de la méthode Load, la méthode Transform peut être appelée de plusieurs threads simultanément.
Si la méthode Load est appelée de nouveau dans un thread alors que la méthode Transform est en cours d'appel dans un autre thread, l'objet XslCompiledTransform termine d'exécuter l'appel Transform en continuant à utiliser l'ancien état. Le nouvel état est utilisé lorsque la méthode Load prend fin.
Remarque |
|---|
| La méthode Load n'est pas thread-safe lorsqu'elle est appelée de plusieurs threads simultanément. |
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Remarque