XslTransform Classe

Définition

Attention

This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202

Transforme les données XML à l’aide d’une feuille de style XSLT (Extensible Stylesheet Language for Transformations).

public ref class XslTransform sealed
public sealed class XslTransform
[System.Obsolete("This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public sealed class XslTransform
type XslTransform = class
[<System.Obsolete("This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
type XslTransform = class
Public NotInheritable Class XslTransform
Héritage
XslTransform
Attributs

Remarques

Note

La classe XslTransform est obsolète dans Microsoft .NET Framework version 2.0. La XslCompiledTransform classe est le nouveau processeur XSLT. Pour plus d’informations, consultez Utilisation de la classe XslCompiledTransform et migration à partir de la classe XslTransform.

XslTransform prend en charge la syntaxe XSLT 1.0. La feuille de style XSLT doit utiliser l’espace de noms http://www.w3.org/1999/XSL/Transform.

Des arguments supplémentaires peuvent également être ajoutés à la feuille de style à l’aide de la XsltArgumentList classe. Cette classe contient des paramètres d’entrée pour les objets de feuille de style et d’extension qui peuvent être appelés à partir de la feuille de style.

Pour transformer des données XML :

  1. Créez un objet XslTransform.

  2. Utilisez la méthode pour charger la Load feuille de style pour la transformation. Cette méthode a plusieurs surcharges et peut charger une feuille de style à l’aide d’une URL ou XPathNavigatorIXPathNavigabled’une XmlReaderURL avec l’emplacement du fichier.

  3. Utilisez la Transform méthode pour transformer les données XML. Cette méthode a plusieurs surcharges et peut gérer différents types d’entrée et de sortie. Vous pouvez également spécifier un XsltArgumentList argument contenant des arguments supplémentaires à utiliser comme entrée pendant la transformation.

Considérations de sécurité

Lors de la création d’une application qui utilise la XslTransform classe, vous devez connaître les éléments suivants et leurs implications :

  • Les objets d’extension sont activés par défaut. Si un objet contenant des XsltArgumentList objets d’extension est passé à la Transform méthode, ils sont utilisés.

  • Les feuilles de style XSLT peuvent inclure des références à d’autres fichiers et blocs de script incorporés. Un utilisateur malveillant peut l’exploiter en vous fournissant des données ou des feuilles de style qui, lorsqu’elles sont exécutées, entraînent le traitement de votre système jusqu’à ce que l’ordinateur s’exécute faiblement sur les ressources.

  • Les applications XSLT qui s’exécutent dans un contexte de confiance mixte peuvent mener à une attaque par contrefaçon de feuille de style. Par exemple, un utilisateur malveillant peut charger un objet avec une feuille de style dangereuse et le remettre à un autre utilisateur qui appelle ensuite la Transform méthode et exécute la transformation.

Ces problèmes de sécurité peuvent être atténués en n’acceptant pas d’objets XslTransform , de feuilles de style XSLT ou de données sources XML provenant de sources non approuvées.

Prise en charge des scripts

Cette classe prend en charge le script incorporé à l’aide de l’élément msxsl:script .

Dans la version 1.1 de l’infrastructure .NET, la preuve de la feuille de style détermine les autorisations accordées aux scripts incorporés.

  • Si la feuille de style a été chargée à partir d’un URI (Uniform Resource Identifier), l’URI est utilisé pour créer la preuve. Cette preuve inclut l’URI ainsi que son site et sa zone.

  • Si la feuille de style a été chargée à l’aide d’une autre source, vous pouvez fournir des preuves en transmettant un System.Security.Policy.Evidence objet à la Load méthode. Sinon, l’assembly de script a une confiance totale.

Appelants semi-approuvés : UnmanagedCode l’autorisation est requise pour compiler le script incorporé. ControlEvidence l’autorisation est requise pour fournir Evidence la Load méthode. A SecurityException est levée si l’appelant n’a pas les autorisations nécessaires. Pour plus d'informations, consultez System.Security.Permissions.SecurityPermission et System.Security.Permissions.SecurityPermissionFlag.

L’élément msxsl:script a les exigences suivantes :

  • L’élément msxsl:script appartient à l’espace urn:schemas-microsoft-com:xslt de noms. La feuille de style doit inclure la déclaration xmlns:msxsl=urn:schemas-microsoft-com:xsltd’espace de noms .

  • L’élément msxsl:script peut inclure un language attribut qui spécifie le langage de script à utiliser. La valeur de l’attribut language doit être l’une des suivantes : C#, CSharp, VB, VisualBasic, JScript ou JavaScript. Étant donné que le nom du langage n’est pas sensible à la casse, JavaScript et javascript sont tous les deux valides. Si aucun language attribut n’est spécifié, il est défini par défaut sur JScript.

  • L’élément msxsl:script doit inclure un implements-prefix attribut qui contient le préfixe représentant l’espace de noms associé au bloc de script. Cet espace de noms doit être défini dans la feuille de style. Une feuille de style peut inclure plusieurs blocs de script regroupés par espace de noms. Vous ne pouvez pas avoir de blocs de script avec plusieurs langues dans le même espace de noms. Les blocs de script peuvent appeler une fonction définie dans un autre bloc de script, à condition que les blocs de script résident dans le même espace de noms. Le contenu d’un bloc de script est analysé en fonction des règles et de la syntaxe du langage de script (fourni par l’attribut language ). Par exemple, si vous aviez un bloc de script C#, les commentaires seraient préfixés par les // caractères. Les commentaires doivent être du contenu XML valide.

Note

Il est recommandé d’encapsuler des blocs de script dans une section CDATA.

<msxsl:script implements-prefix='xy' language='C#'>  
 <![CDATA[  
 // Add code here.  
 ]]>
</msxsl:script>  

Les fonctions peuvent être déclarées dans l’élément msxsl:script . Le tableau suivant présente les espaces de noms pris en charge par défaut.

Espaces de noms pris en charge Description
System Classes système.
System.Collection Classes de collection.
System.Text Classes de gestion de texte.
System.Xml Classes XML principales.
System.Xml.Xsl Classes XSLT.
System.Xml.XPath Classes XPath (XML Path Language).

Les arguments fournis et les valeurs de retour définies par les fonctions de script doivent être l’un des types W3C (World Wide Web Consortium) répertoriés ci-dessous. Le tableau suivant détaille le mappage entre les types W3C, XPath ou XSLT, et les classes .NET Framework correspondantes.

W3C Type Classe .NET équivalente
String (XPath) System.String
Boolean (XPath) System.Boolean
Nombre (XPath) System.Double
Fragment d’arborescence de résultats (XSLT) System.Xml.XPath.XPathNavigator
Jeu de nœuds (XPath) System.Xml.XPath.XPathNodeIterator

Si la fonction de script utilise l’un des types numériques suivants : Int16, UInt16, Int32, UInt32, Int64, UInt64, Single ou Decimal, ces types sont codés sur Double, qui correspond au numéro de type XPath W3C.

Une exception est levée lorsqu’une fonction est appelée qui ne peut pas convertir le résultat de l’argument en un des types requis.

Note

msxsl:script et msxsl:node-list sont les seules fonctions de l’espace urn:schemas-microsoft-com:xslt de noms pris en charge par la XslTransform classe.

XslTransform a la possibilité d’utiliser du code CLR (Common Language Runtime) comme mécanisme d’extension. Pour ce faire, transmettez une instance d’une classe à la XslTransform classe et appelez ses méthodes publiques dans une feuille de style XSLT. Les méthodes définies avec le params mot clé, qui permettent de transmettre un nombre non spécifié de paramètres, ne fonctionnent pas correctement dans ce scénario. Pour plus d’informations, consultez les paramètres .

Pour plus d’informations, consultez transformations XSLT avec la classe XslTransform.

Constructeurs

Nom Description
XslTransform()
Obsolète.

Initialise une nouvelle instance de la classe XslTransform.

Propriétés

Nom Description
XmlResolver
Obsolète.

Définit l’outil XmlResolver utilisé pour résoudre les ressources externes lorsque la Transform méthode est appelée.

Méthodes

Nom Description
Equals(Object)
Obsolète.

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetHashCode()
Obsolète.

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()
Obsolète.

Obtient la Type de l’instance actuelle.

(Hérité de Object)
Load(IXPathNavigable, XmlResolver, Evidence)
Obsolète.

Charge la feuille de style XSLT contenue dans le IXPathNavigable. Cette méthode vous permet de limiter les autorisations de la feuille de style en spécifiant des preuves.

Load(IXPathNavigable, XmlResolver)
Obsolète.

Charge la feuille de style XSLT contenue dans le IXPathNavigable.

Load(IXPathNavigable)
Obsolète.

Charge la feuille de style XSLT contenue dans le IXPathNavigable.

Load(String, XmlResolver)
Obsolète.

Charge la feuille de style XSLT spécifiée par une URL.

Load(String)
Obsolète.

Charge la feuille de style XSLT spécifiée par une URL.

Load(XmlReader, XmlResolver, Evidence)
Obsolète.

Charge la feuille de style XSLT contenue dans le XmlReader. Cette méthode vous permet de limiter les autorisations de la feuille de style en spécifiant des preuves.

Load(XmlReader, XmlResolver)
Obsolète.

Charge la feuille de style XSLT contenue dans le XmlReader.

Load(XmlReader)
Obsolète.

Charge la feuille de style XSLT contenue dans le XmlReader.

Load(XPathNavigator, XmlResolver, Evidence)
Obsolète.

Charge la feuille de style XSLT contenue dans le XPathNavigator. Cette méthode vous permet de limiter les autorisations de la feuille de style en spécifiant des preuves.

Load(XPathNavigator, XmlResolver)
Obsolète.

Charge la feuille de style XSLT contenue dans le XPathNavigator.

Load(XPathNavigator)
Obsolète.

Charge la feuille de style XSLT contenue dans le XPathNavigator.

MemberwiseClone()
Obsolète.

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()
Obsolète.

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
Obsolète.

Transforme les données XML dans l’utilisation IXPathNavigable du résultat spécifié args et génère le résultat en .Stream

Transform(IXPathNavigable, XsltArgumentList, Stream)
Obsolète.

Transforme les données XML dans l’utilisation IXPathNavigable du résultat spécifié args et génère le résultat en .Stream

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
Obsolète.

Transforme les données XML dans l’utilisation IXPathNavigable du résultat spécifié args et génère le résultat en .TextWriter

Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Obsolète.

Transforme les données XML dans l’utilisation IXPathNavigable du résultat spécifié args et génère le résultat en .TextWriter

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
Obsolète.

Transforme les données XML dans l’utilisation IXPathNavigable du résultat spécifié args et génère le résultat en un XmlReader.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
Obsolète.

Transforme les données XML dans l’utilisation IXPathNavigable du résultat spécifié args et génère le résultat en un XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Obsolète.

Transforme les données XML dans l’utilisation IXPathNavigable du résultat spécifié args et génère le résultat en un XmlWriter.

Transform(IXPathNavigable, XsltArgumentList)
Obsolète.

Transforme les données XML dans l’utilisation IXPathNavigable du résultat spécifié args et génère le résultat en un XmlReader.

Transform(String, String, XmlResolver)
Obsolète.

Transforme les données XML dans le fichier d’entrée et génère le résultat en fichier de sortie.

Transform(String, String)
Obsolète.

Transforme les données XML dans le fichier d’entrée et génère le résultat en fichier de sortie.

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
Obsolète.

Transforme les données XML dans l’utilisation XPathNavigator du résultat spécifié args et génère le résultat en .Stream

Transform(XPathNavigator, XsltArgumentList, Stream)
Obsolète.

Transforme les données XML dans l’utilisation XPathNavigator du résultat spécifié args et génère le résultat en .Stream

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
Obsolète.

Transforme les données XML dans l’utilisation XPathNavigator du résultat spécifié args et génère le résultat en .TextWriter

Transform(XPathNavigator, XsltArgumentList, TextWriter)
Obsolète.

Transforme les données XML dans l’utilisation XPathNavigator du résultat spécifié args et génère le résultat en .TextWriter

Transform(XPathNavigator, XsltArgumentList, XmlResolver)
Obsolète.

Transforme les données XML dans l’utilisation XPathNavigator du résultat spécifié args et génère le résultat en un XmlReader.

Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
Obsolète.

Transforme les données XML dans l’utilisation XPathNavigator des arguments spécifiés et génère le résultat en un XmlWriter.

Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Obsolète.

Transforme les données XML dans l’utilisation XPathNavigator des arguments spécifiés et génère le résultat en un XmlWriter.

Transform(XPathNavigator, XsltArgumentList)
Obsolète.

Transforme les données XML dans l’utilisation XPathNavigator du résultat spécifié args et génère le résultat en un XmlReader.

S’applique à

Cohérence de thread

XslTransform les objets sont uniquement thread-safe pour les opérations de transformation. D’autres opérations ne sont pas garanties pour être thread-safe. Vous devez vous assurer qu’aucune autre méthode n’est appelée sur l’objet pendant les opérations de chargement.