XslTransform Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 :
Créez un objet XslTransform.
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.
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’espaceurn:schemas-microsoft-com:xslt
de noms. La feuille de style doit inclure la déclarationxmlns:msxsl=urn:schemas-microsoft-com:xslt
d’espace de noms .L’élément
msxsl:script
peut inclure unlanguage
attribut qui spécifie le langage de script à utiliser. La valeur de l’attributlanguage
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 aucunlanguage
attribut n’est spécifié, il est défini par défaut sur JScript.L’élément
msxsl:script
doit inclure unimplements-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’attributlanguage
). 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 |
Transform(IXPathNavigable, XsltArgumentList, Stream) |
Obsolète.
Transforme les données XML dans IXPathNavigable en utilisant les |
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver) |
Transforme les données XML dans IXPathNavigable en utilisant les |
Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Obsolète.
Transforme les données XML dans IXPathNavigable en utilisant les |
Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Transforme les données XML dans IXPathNavigable en utilisant les |
Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Transforme les données XML dans IXPathNavigable en utilisant les |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Obsolète.
Transforme les données XML dans IXPathNavigable en utilisant les |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Transforme les données XML dans IXPathNavigable en utilisant les |
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 |
Transform(XPathNavigator, XsltArgumentList, Stream) |
Obsolète.
Transforme les données XML dans XPathNavigator en utilisant les |
Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) |
Transforme les données XML dans XPathNavigator en utilisant les |
Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Obsolète.
Transforme les données XML dans XPathNavigator en utilisant les |
Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Transforme les données XML dans XPathNavigator en utilisant les |
Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Transforme les données XML dans XPathNavigator en utilisant les |
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.