XslTransform Classe

Definizione

Attenzione

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

Trasforma i dati XML usando un foglio di stile 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
Ereditarietà
XslTransform
Attributi

Commenti

Note

La classe XslTransform è obsoleta in Microsoft .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve utilizzare lo spazio dei nomi http://www.w3.org/1999/XSL/Transform.

È anche possibile aggiungere argomenti aggiuntivi al foglio di stile usando la XsltArgumentList classe . Questa classe contiene parametri di input per il foglio di stile e gli oggetti di estensione che possono essere chiamati dal foglio di stile.

Per trasformare i dati XML:

  1. Creare un oggetto XslTransform.

  2. Utilizzare il Load metodo per caricare il foglio di stile per la trasformazione. Questo metodo include diversi overload e può caricare un foglio di stile usando un XmlReaderURL , XPathNavigator, IXPathNavigableo con il percorso del file.

  3. Utilizzare il Transform metodo per trasformare i dati XML. Questo metodo ha diversi overload e può gestire diversi tipi di input e output. È anche possibile specificare un oggetto XsltArgumentList contenente argomenti aggiuntivi da usare come input durante la trasformazione.

considerazioni sulla sicurezza

Quando si crea un'applicazione che usa la XslTransform classe , è necessario tenere presenti gli elementi seguenti e le relative implicazioni:

  • Gli oggetti di estensione sono abilitati per impostazione predefinita. Se un XsltArgumentList oggetto contenente oggetti di estensione viene passato al Transform metodo , vengono utilizzati.

  • I fogli di stile XSLT possono includere riferimenti ad altri file e blocchi di script incorporati. Un utente malintenzionato può sfruttare questo problema fornendoti i dati o i fogli di stile che quando vengono eseguiti causeranno l'elaborazione del sistema fino a quando il computer non viene eseguito su risorse scarse.

  • Le applicazioni XSLT eseguite in un ambiente di attendibilità mista possono comportare la manipolazione dei fogli di stile. Ad esempio, un utente malintenzionato può caricare un oggetto con un foglio di stile dannoso e consegnarlo a un altro utente che successivamente chiama il Transform metodo ed esegue la trasformazione.

Questi problemi di sicurezza possono essere mitigati non accettando XslTransform oggetti, fogli di stile XSLT o dati di origine XML da origini non attendibili.

Supporto per gli script

Questa classe supporta lo scripting incorporato usando l'elemento msxsl:script .

Nella versione 1.1 di .NET Framework, l'evidenza del foglio di stile determina le autorizzazioni concesse agli script incorporati.

  • Se il foglio di stile è stato caricato da un URI (Uniform Resource Identifier), l'URI viene usato per creare l'evidenza. Questa evidenza include l'URI insieme al sito e alla zona.

  • Se il foglio di stile è stato caricato usando un'altra origine, è possibile fornire prove passando un System.Security.Policy.Evidence oggetto al Load metodo . In caso contrario, l'assembly di script ha attendibilità totale.

Chiamanti semi-attendibili: UnmanagedCode l'autorizzazione è necessaria per compilare lo script incorporato. ControlEvidence L'autorizzazione è necessaria per fornire Evidence al Load metodo . Viene SecurityException generata un'eccezione se il chiamante non dispone delle autorizzazioni necessarie. Per altre informazioni, vedere System.Security.Permissions.SecurityPermission e System.Security.Permissions.SecurityPermissionFlag.

L'elemento msxsl:script presenta i requisiti seguenti:

  • L'elemento msxsl:script appartiene allo spazio dei urn:schemas-microsoft-com:xslt nomi . Il foglio di stile deve includere la dichiarazione xmlns:msxsl=urn:schemas-microsoft-com:xsltdello spazio dei nomi .

  • L'elemento msxsl:script può includere un language attributo che specifica il linguaggio di scripting da usare. Il valore dell'attributo language deve essere uno dei seguenti: C#, CSharp, VB, VisualBasic, JScript o JavaScript. Poiché il nome del linguaggio non fa distinzione tra maiuscole e minuscole, JavaScript e javascript sono entrambi validi. Se non viene specificato un language attributo, per impostazione predefinita viene impostato su JScript.

  • L'elemento msxsl:script deve includere un implements-prefix attributo contenente il prefisso che rappresenta lo spazio dei nomi associato al blocco di script. Questo spazio dei nomi deve essere definito all'interno del foglio di stile. Un foglio di stile può includere più blocchi di script raggruppati per spazio dei nomi. Non è possibile avere blocchi di script con più lingue all'interno dello stesso spazio dei nomi. I blocchi di script possono chiamare una funzione definita in un altro blocco di script, purché i blocchi di script si trovino nello stesso spazio dei nomi. Il contenuto di un blocco di script viene analizzato in base alle regole e alla sintassi del linguaggio di scripting (fornito dall'attributo language ). Ad esempio, se si dispone di un blocco di script C#, i // commenti verrebbero preceduti dai caratteri . I commenti devono essere contenuti XML validi.

Note

È consigliabile eseguire il wrapping dei blocchi di script in una sezione CDATA.

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

Le funzioni possono essere dichiarate all'interno dell'elemento msxsl:script . Nella tabella seguente vengono illustrati gli spazi dei nomi supportati per impostazione predefinita.

Spazi dei nomi supportati Descrizione
System Classi di sistema.
System.Collection Classi di raccolta.
System.Text Classi di gestione del testo.
System.Xml Classi XML di base.
System.Xml.Xsl Classi XSLT.
System.Xml.XPath Classi XPath (XML Path Language).

Gli argomenti forniti e i valori restituiti definiti dalle funzioni script devono essere uno dei tipi W3C (World Wide Web Consortium) elencati di seguito. Nella tabella seguente viene illustrato il mapping tra i tipi W3C, XPath o XSLT, e le classi .NET Framework corrispondenti.

Tipo W3C Classe .NET equivalente
String (XPath) System.String
Boolean (XPath) System.Boolean
Numero (XPath) System.Double
Frammento albero dei risultati (XSLT) System.Xml.XPath.XPathNavigator
Set di nodi (XPath) System.Xml.XPath.XPathNodeIterator

Se la funzione script utilizza uno dei tipi numerici seguenti: Int16, UInt16, Int32, UInt32, Int64, UInt64, Single o Decimal, questi tipi vengono coerciti su Double, che esegue il mapping al numero di tipo XPath W3C.

Viene generata un'eccezione quando viene chiamata una funzione che non può convertire il risultato dell'argomento in uno dei tipi necessari.

Note

msxsl:script e msxsl:node-list sono le uniche funzioni dello spazio dei urn:schemas-microsoft-com:xslt nomi supportate dalla XslTransform classe .

XslTransform ha la possibilità di usare il codice CLR (Common Language Runtime) come meccanismo di estensione. A tale scopo, passare un'istanza di una classe alla XslTransform classe e chiamare i relativi metodi pubblici all'interno di un foglio di stile XSLT. I metodi definiti con la params parola chiave , che consente di passare un numero non specificato di parametri, non funzionano correttamente in questo scenario. Per altri dettagli, vedere parametri .

Per altre informazioni, vedere Trasformazioni XSLT con la classe XslTransform.

Costruttori

Nome Descrizione
XslTransform()
Obsoleti.

Inizializza una nuova istanza della classe XslTransform.

Proprietà

Nome Descrizione
XmlResolver
Obsoleti.

Imposta l'oggetto XmlResolver utilizzato per risolvere le risorse esterne quando viene chiamato il Transform metodo .

Metodi

Nome Descrizione
Equals(Object)
Obsoleti.

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()
Obsoleti.

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()
Obsoleti.

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
Load(IXPathNavigable, XmlResolver, Evidence)
Obsoleti.

Carica il foglio di stile XSLT contenuto in IXPathNavigable. Questo metodo consente di limitare le autorizzazioni del foglio di stile specificando l'evidenza.

Load(IXPathNavigable, XmlResolver)
Obsoleti.

Carica il foglio di stile XSLT contenuto in IXPathNavigable.

Load(IXPathNavigable)
Obsoleti.

Carica il foglio di stile XSLT contenuto in IXPathNavigable.

Load(String, XmlResolver)
Obsoleti.

Carica il foglio di stile XSLT specificato da un URL.

Load(String)
Obsoleti.

Carica il foglio di stile XSLT specificato da un URL.

Load(XmlReader, XmlResolver, Evidence)
Obsoleti.

Carica il foglio di stile XSLT contenuto in XmlReader. Questo metodo consente di limitare le autorizzazioni del foglio di stile specificando l'evidenza.

Load(XmlReader, XmlResolver)
Obsoleti.

Carica il foglio di stile XSLT contenuto in XmlReader.

Load(XmlReader)
Obsoleti.

Carica il foglio di stile XSLT contenuto in XmlReader.

Load(XPathNavigator, XmlResolver, Evidence)
Obsoleti.

Carica il foglio di stile XSLT contenuto in XPathNavigator. Questo metodo consente di limitare le autorizzazioni del foglio di stile specificando l'evidenza.

Load(XPathNavigator, XmlResolver)
Obsoleti.

Carica il foglio di stile XSLT contenuto in XPathNavigator.

Load(XPathNavigator)
Obsoleti.

Carica il foglio di stile XSLT contenuto in XPathNavigator.

MemberwiseClone()
Obsoleti.

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()
Obsoleti.

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato args e restituisce il risultato in un oggetto Stream.

Transform(IXPathNavigable, XsltArgumentList, Stream)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato args e restituisce il risultato in un oggetto Stream.

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato args e restituisce il risultato in un oggetto TextWriter.

Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato args e restituisce il risultato in un oggetto TextWriter.

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato args e restituisce il risultato in un oggetto XmlReader.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato args e restituisce il risultato in un oggetto XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato args e restituisce il risultato in un oggetto XmlWriter.

Transform(IXPathNavigable, XsltArgumentList)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato args e restituisce il risultato in un oggetto XmlReader.

Transform(String, String, XmlResolver)
Obsoleti.

Trasforma i dati XML nel file di input e restituisce il risultato in un file di output.

Transform(String, String)
Obsoleti.

Trasforma i dati XML nel file di input e restituisce il risultato in un file di output.

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto XPathNavigator specificato args e restituisce il risultato in un oggetto Stream.

Transform(XPathNavigator, XsltArgumentList, Stream)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto XPathNavigator specificato args e restituisce il risultato in un oggetto Stream.

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto XPathNavigator specificato args e restituisce il risultato in un oggetto TextWriter.

Transform(XPathNavigator, XsltArgumentList, TextWriter)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto XPathNavigator specificato args e restituisce il risultato in un oggetto TextWriter.

Transform(XPathNavigator, XsltArgumentList, XmlResolver)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto XPathNavigator specificato args e restituisce il risultato in un oggetto XmlReader.

Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
Obsoleti.

Trasforma i dati XML in XPathNavigator utilizzando gli argomenti specificati e restituisce il risultato in un oggetto XmlWriter.

Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Obsoleti.

Trasforma i dati XML in XPathNavigator utilizzando gli argomenti specificati e restituisce il risultato in un oggetto XmlWriter.

Transform(XPathNavigator, XsltArgumentList)
Obsoleti.

Trasforma i dati XML in utilizzando l'oggetto XPathNavigator specificato args e restituisce il risultato in un oggetto XmlReader.

Si applica a

Thread safety

XslTransform gli oggetti sono solo thread-safe per le operazioni di trasformazione. Non è garantito che altre operazioni siano thread-safe. È necessario assicurarsi che non vengano chiamati altri metodi sull'oggetto durante le operazioni di caricamento.