XslCompiledTransform 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.
Transforme les données XML à l’aide d’une feuille de style XSLT.
public ref class XslCompiledTransform sealed
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XslCompiledTransform requires dynamic code because it generates IL at runtime.")]
public sealed class XslCompiledTransform
public sealed class XslCompiledTransform
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XslCompiledTransform requires dynamic code because it generates IL at runtime.")>]
type XslCompiledTransform = class
type XslCompiledTransform = class
Public NotInheritable Class XslCompiledTransform
- Héritage
-
XslCompiledTransform
- Attributs
Exemples
L’exemple suivant exécute une transformation et des sorties dans un fichier.
// 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");
' 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")
L’exemple utilise les deux fichiers d’entrée suivants :
<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>ISBN</TD>
<TD>Title</TD>
<TD>Price</TD>
</TR>
<xsl:apply-templates select="book"/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="book">
<TR>
<TD><xsl:value-of select="@ISBN"/></TD>
<TD><xsl:value-of select="title"/></TD>
<TD><xsl:value-of select="price"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
Remarques
La XslCompiledTransform classe est un processeur XSLT qui prend en charge la syntaxe XSLT 1.0. Il s’agit d’une nouvelle implémentation et inclut des gains de performances par rapport à la classe obsolète XslTransform . La structure de la XslCompiledTransform classe est très similaire à la XslTransform classe. La Load méthode charge et compile la feuille de style, tandis que la Transform méthode exécute la transformation XSLT.
La prise en charge de la fonction XSLT document() et des blocs de script incorporés est désactivée par défaut. Ces fonctionnalités peuvent être activées en créant un XsltSettings objet et en le transmettant à la Load méthode.
Pour plus d’informations, consultez Utilisation de la classe XslCompiledTransform et migration à partir de la classe XslTransform.
Considérations relatives à la sécurité
Lors de la création d’une application qui utilise la XslCompiledTransform classe, vous devez connaître les éléments suivants et leurs implications :
Le script XSLT est désactivé par défaut. Le script XSLT ne doit être activé que si vous avez besoin d’une prise en charge de script et que vous travaillez dans un environnement entièrement approuvé.
La fonction XSLT
document()est désactivée par défaut. Si vous activez ladocument()fonction, limitez les ressources accessibles en passant ThrowingResolver à la Transform méthode.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, une fois exécutées, peuvent amener votre système à traiter jusqu'à épuisement des ressources de l'ordinateur.
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’activant pas le script ou la document() fonction, sauf si la feuille de style provient d’une source approuvée et en n’acceptant XslCompiledTransform pas d’objets, de feuilles de style XSLT ou de données sources XML provenant d’une source non approuvée.
Constructeurs
| Nom | Description |
|---|---|
| XslCompiledTransform() |
Initialise une nouvelle instance de la classe XslCompiledTransform. |
| XslCompiledTransform(Boolean) |
Initialise une nouvelle instance de la XslCompiledTransform classe avec le paramètre de débogage spécifié. |
Propriétés
| Nom | Description |
|---|---|
| OutputSettings |
Obtient un XmlWriterSettings objet qui contient les informations de sortie dérivées de l’élément |
| TemporaryFiles |
Obtient les TempFileCollection fichiers temporaires générés sur le disque après un appel réussi à la Load méthode. |
Méthodes
| Nom | Description |
|---|---|
| CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) |
Compile une feuille de style XSLT en un type spécifié. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| Load(IXPathNavigable, XsltSettings, XmlResolver) |
Compile la feuille de style XSLT contenue dans le IXPathNavigable. Les XmlResolver paramètres XSLT |
| Load(IXPathNavigable) |
Compile la feuille de style contenue dans l’objet IXPathNavigable . |
| Load(MethodInfo, Byte[], Type[]) |
Charge une méthode à partir d’une feuille de style compilée à l’aide de l’utilitaire |
| Load(String, XsltSettings, XmlResolver) |
Charge et compile la feuille de style XSLT spécifiée par l’URI. Les XmlResolver paramètres XSLT |
| Load(String) |
Charge et compile la feuille de style située à l’URI spécifié. |
| Load(Type) |
Charge la feuille de style compilée créée à l’aide du compilateur XSLT (xsltc.exe). |
| Load(XmlReader, XsltSettings, XmlResolver) |
Compile la feuille de style XSLT contenue dans le XmlReader. Les XmlResolver paramètres XSLT |
| Load(XmlReader) |
Compile la feuille de style contenue dans le XmlReader. |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
| Transform(IXPathNavigable, XmlWriter) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’objet IXPathNavigable et génère les résultats dans un XmlWriter. |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’objet IXPathNavigable et génère les résultats dans un flux. Fournit XsltArgumentList des arguments d’exécution supplémentaires. |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’objet IXPathNavigable et génère les résultats dans un TextWriter. Fournit XsltArgumentList des arguments d’exécution supplémentaires. |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’objet IXPathNavigable et génère les résultats dans un XmlWriter. Fournit XsltArgumentList des arguments d’exécution supplémentaires et résout XmlResolver la fonction XSLT |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’objet IXPathNavigable et génère les résultats dans un XmlWriter. Fournit XsltArgumentList des arguments d’exécution supplémentaires. |
| Transform(String, String) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’URI et génère les résultats dans un fichier. |
| Transform(String, XmlWriter) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’URI et génère les résultats dans un XmlWriter. |
| Transform(String, XsltArgumentList, Stream) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’URI et génère les résultats à diffuser en continu. Fournit XsltArgumentList des arguments d’exécution supplémentaires. |
| Transform(String, XsltArgumentList, TextWriter) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’URI et génère les résultats dans un TextWriter. |
| Transform(String, XsltArgumentList, XmlWriter) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’URI et génère les résultats dans un XmlWriter. Fournit XsltArgumentList des arguments d’exécution supplémentaires. |
| Transform(XmlReader, XmlWriter) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’objet XmlReader et génère les résultats dans un XmlWriter. |
| Transform(XmlReader, XsltArgumentList, Stream) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’objet XmlReader et génère les résultats dans un flux. Fournit XsltArgumentList des arguments d’exécution supplémentaires. |
| Transform(XmlReader, XsltArgumentList, TextWriter) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’objet XmlReader et génère les résultats dans un TextWriter. Fournit XsltArgumentList des arguments d’exécution supplémentaires. |
| Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’objet XmlReader et génère les résultats dans un XmlWriter. Les XsltArgumentList arguments d’exécution supplémentaires et XmlResolver résolvent la fonction XSLT |
| Transform(XmlReader, XsltArgumentList, XmlWriter) |
Exécute la transformation à l’aide du document d’entrée spécifié par l’objet XmlReader et génère les résultats dans un XmlWriter. Fournit XsltArgumentList des arguments d’exécution supplémentaires. |
S’applique à
Cohérence de thread
L’objet XslCompiledTransform est thread safe une fois qu’il a été chargé. En d’autres termes, une fois la Load méthode terminée, la Transform méthode peut être appelée simultanément à partir de plusieurs threads.
Si la Load méthode est appelée à nouveau dans un thread alors que la Transform méthode est appelée dans un autre thread, l’objet XslCompiledTransform termine l’exécution de l’appel Transform en continuant à utiliser l’ancien état. Le nouvel état est utilisé lorsque la Load méthode se termine correctement.
La Load méthode n’est pas thread-safe lorsqu’elle est appelée simultanément à partir de plusieurs threads.