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

Exemples

L’exemple suivant transforme le document XML spécifié et génère le résultat dans la console.

//Create a new XslTransform object.
XslTransform xslt = new XslTransform();

//Load the stylesheet.
xslt.Load("http://server/favorite.xsl");

//Create a new XPathDocument and load the XML data to be transformed.
XPathDocument mydata = new XPathDocument("inputdata.xml");

//Create an XmlTextWriter which outputs to the console.
XmlWriter writer = new XmlTextWriter(Console.Out);

//Transform the data and send the output to the console.
xslt.Transform(mydata,null,writer, null);
'Create a new XslTransform object.
Dim xslt As New XslTransform()

'Load the stylesheet.
xslt.Load(CType("http://server/favorite.xsl", String))

'Create a new XPathDocument and load the XML data to be transformed.
Dim mydata As New XPathDocument("inputdata.xml")

'Create an XmlTextWriter which outputs to the console.
Dim writer As New XmlTextWriter(Console.Out)

'Transform the data and send the output to the console.
xslt.Transform(mydata, Nothing, writer, Nothing)

Remarques

Notes

La XslTransform classe 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 Load méthode pour charger la feuille de style pour la transformation. Cette méthode a plusieurs surcharges et peut charger une feuille de style à l’aide d’une XmlReaderURL , XPathNavigatorIXPathNavigableou d’une URL 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.

Security Considerations

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

  • Les objets d'extension sont activés par défaut. Si un objet XsltArgumentList contenant des objets d'extension est transmis à 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 intégrés. Un utilisateur malveillant peut l’exploiter en vous fournissant des données ou des feuilles de style qui, lors de l’exécution, entraînent le traitement de votre système jusqu’à ce que l’ordinateur s’exécute faiblement sur les ressources.

  • Les applications XSLT fonctionnant dans un environnement fiable mixte peuvent perturber la feuille de style. Un utilisateur malveillant peut, par exemple, charger un objet avec une feuille de style nuisible et le transmettre à un autre utilisateur qui appelle ensuite la méthode Transform 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 les scripts incorporés à l’aide de l’élément msxsl:script .

Dans la version 1.1 du .NET Framework, 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 avec 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. Une SecurityException exception 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 valeurs 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 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 sont précédés des // caractères. Les commentaires doivent être du contenu XML valide.

Notes

Il est recommandé d’encapsuler les 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 montre les espaces de noms qui sont 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 XML Path Language (XPath).

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.

Type W3C 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.

Notes

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 autorisent un nombre non spécifié de paramètres à passer, 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

XslTransform()

Initialise une nouvelle instance de la classe XslTransform.

Propriétés

XmlResolver
Obsolète.

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

Méthodes

Equals(Object)

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

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

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

Charge la feuille de style XSLT figurant dans IXPathNavigable.

Load(IXPathNavigable, XmlResolver)
Obsolète.

Charge la feuille de style XSLT figurant dans IXPathNavigable.

Load(IXPathNavigable, XmlResolver, Evidence)

Charge la feuille de style XSLT figurant dans IXPathNavigable. Cette méthode permet de limiter les autorisations de la feuille de style en spécifiant une preuve.

Load(String)

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

Load(String, XmlResolver)

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

Load(XmlReader)
Obsolète.

Charge la feuille de style XSLT figurant dans XmlReader.

Load(XmlReader, XmlResolver)
Obsolète.

Charge la feuille de style XSLT figurant dans XmlReader.

Load(XmlReader, XmlResolver, Evidence)

Charge la feuille de style XSLT figurant dans XmlReader. Cette méthode permet de limiter les autorisations de la feuille de style en spécifiant une preuve.

Load(XPathNavigator)
Obsolète.

Charge la feuille de style XSLT figurant dans XPathNavigator.

Load(XPathNavigator, XmlResolver)
Obsolète.

Charge la feuille de style XSLT figurant dans XPathNavigator.

Load(XPathNavigator, XmlResolver, Evidence)

Charge la feuille de style XSLT figurant dans XPathNavigator. Cette méthode permet de limiter les autorisations de la feuille de style en spécifiant une preuve.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

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

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

Transforme les données XML dans IXPathNavigable en utilisant les args spécifiés et renvoie le résultat dans XmlReader.

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

Transforme les données XML dans IXPathNavigable en utilisant les args spécifiés et renvoie le résultat dans Stream.

Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)

Transforme les données XML dans IXPathNavigable en utilisant les args spécifiés et renvoie le résultat dans Stream.

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

Transforme les données XML dans IXPathNavigable en utilisant les args spécifiés et renvoie le résultat dans TextWriter.

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)

Transforme les données XML dans IXPathNavigable en utilisant les args spécifiés et renvoie le résultat dans TextWriter.

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)

Transforme les données XML dans IXPathNavigable en utilisant les args spécifiés et renvoie le résultat dans XmlReader.

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

Transforme les données XML dans IXPathNavigable en utilisant les args spécifiés et renvoie le résultat dans XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Transforme les données XML dans IXPathNavigable en utilisant les args spécifiés et renvoie le résultat dans XmlWriter.

Transform(String, String)
Obsolète.

Convertit les données XML dans le fichier d'entrée et renvoie le résultat dans un fichier de sortie.

Transform(String, String, XmlResolver)

Convertit les données XML dans le fichier d'entrée et renvoie le résultat dans un fichier de sortie.

Transform(XPathNavigator, XsltArgumentList)
Obsolète.

Transforme les données XML dans XPathNavigator en utilisant les args spécifiés et renvoie le résultat dans XmlReader.

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

Transforme les données XML dans XPathNavigator en utilisant les args spécifiés et renvoie le résultat dans Stream.

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)

Transforme les données XML dans XPathNavigator en utilisant les args spécifiés et renvoie le résultat dans Stream.

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

Transforme les données XML dans XPathNavigator en utilisant les args spécifiés et renvoie le résultat dans TextWriter.

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)

Transforme les données XML dans XPathNavigator en utilisant les args spécifiés et renvoie le résultat dans TextWriter.

Transform(XPathNavigator, XsltArgumentList, XmlResolver)

Transforme les données XML dans XPathNavigator en utilisant les args spécifiés et renvoie le résultat dans XmlReader.

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

Convertit les données XML spécifiées dans XPathNavigator en utilisant les arguments spécifiés et renvoie le résultat dans XmlWriter.

Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)

Convertit les données XML spécifiées dans XPathNavigator en utilisant les arguments spécifiés et renvoie le résultat dans XmlWriter.

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.