XslTransform Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:
Creare un oggetto XslTransform.
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.
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:scriptappartiene allo spazio deiurn:schemas-microsoft-com:xsltnomi . Il foglio di stile deve includere la dichiarazionexmlns:msxsl=urn:schemas-microsoft-com:xsltdello spazio dei nomi .L'elemento
msxsl:scriptpuò includere unlanguageattributo che specifica il linguaggio di scripting da usare. Il valore dell'attributolanguagedeve 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 unlanguageattributo, per impostazione predefinita viene impostato su JScript.L'elemento
msxsl:scriptdeve includere unimplements-prefixattributo 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'attributolanguage). 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 |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Obsoleti.
Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Obsoleti.
Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Obsoleti.
Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato |
| Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Obsoleti.
Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Obsoleti.
Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Obsoleti.
Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato |
| Transform(IXPathNavigable, XsltArgumentList) |
Obsoleti.
Trasforma i dati XML in utilizzando l'oggetto IXPathNavigable specificato |
| 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 |
| Transform(XPathNavigator, XsltArgumentList, Stream) |
Obsoleti.
Trasforma i dati XML in utilizzando l'oggetto XPathNavigator specificato |
| Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Obsoleti.
Trasforma i dati XML in utilizzando l'oggetto XPathNavigator specificato |
| Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Obsoleti.
Trasforma i dati XML in utilizzando l'oggetto XPathNavigator specificato |
| Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Obsoleti.
Trasforma i dati XML in utilizzando l'oggetto XPathNavigator specificato |
| 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 |
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.