XslTransform Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Achtung
This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202
Transformiert XML-Daten mithilfe einer Extensible Stylesheet Language for Transformations (XSLT)-Stylesheets.
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
- Vererbung
-
XslTransform
- Attribute
Hinweise
Note
Die XslTransform-Klasse ist in Microsoft .NET Framework, Version 2.0, veraltet. Die XslCompiledTransform Klasse ist der neue XSLT-Prozessor. Weitere Informationen finden Sie unter Verwenden der XslCompiledTransform-Klasse und migrieren von der XslTransform-Klasse.
XslTransform unterstützt die XSLT 1.0-Syntax. Das XSLT-Stylesheet muss den Namespace http://www.w3.org/1999/XSL/Transformverwenden.
Zusätzliche Argumente können auch mithilfe der XsltArgumentList Klasse dem Stylesheet hinzugefügt werden. Diese Klasse enthält Eingabeparameter für die Stylesheet- und Erweiterungsobjekte, die über das Stylesheet aufgerufen werden können.
So transformieren Sie XML-Daten:
Erstellen Sie ein XslTransform-Objekt.
Verwenden Sie die Load Methode, um das Stylesheet für die Transformation zu laden. Diese Methode verfügt über mehrere Überladungen und kann ein Stylesheet mithilfe eines XmlReader, XPathNavigator, IXPathNavigableoder einer URL mit dem Speicherort der Datei laden.
Verwenden Sie die Transform Methode, um die XML-Daten zu transformieren. Diese Methode verfügt über mehrere Überladungen und kann verschiedene Arten von Eingaben und Ausgaben verarbeiten. Sie können auch ein XsltArgumentList zusätzliches Argument angeben, das während der Transformation als Eingabe verwendet werden soll.
Sicherheitshinweise
Beim Erstellen einer Anwendung, die die XslTransform Klasse verwendet, sollten Sie die folgenden Elemente und deren Auswirkungen beachten:
Erweiterungsobjekte sind standardmäßig aktiviert. Wenn ein XsltArgumentList Objekt, das Erweiterungsobjekte enthält, an die Transform Methode übergeben wird, werden sie verwendet.
XSLT-Stylesheets können Verweise auf andere Dateien und eingebettete Skriptblöcke enthalten. Ein böswilliger Benutzer kann dies ausnutzen, indem Sie Daten oder Stylesheets bereitstellen, die bei ausführung dazu führen, dass Ihr System verarbeitet wird, bis der Computer wenig Ressourcen aufweist.
XSLT-Anwendungen, die in einer gemischten Vertrauensumgebung ausgeführt werden, können zu Manipulation von Stylesheets führen. Beispielsweise kann ein böswilliger Benutzer ein Objekt mit einem schädlichen Stylesheet laden und an einen anderen Benutzer übergeben, der die Transform Methode anschließend aufruft und die Transformation ausführt.
Diese Sicherheitsprobleme können verringert werden, indem Objekte, XSLT-Stylesheets oder XML-Quelldaten aus nicht vertrauenswürdigen Quellen nicht akzeptiert XslTransform werden.
Skriptunterstützung
Diese Klasse unterstützt eingebettete Skripts mithilfe des msxsl:script Elements.
In Version 1.1 des .NET Framework bestimmt der Nachweis des Stylesheets, welche Berechtigungen für eingebettete Skripts erteilt werden.
Wenn das Stylesheet aus einem URI (Uniform Resource Identifier) geladen wurde, wird der URI zum Erstellen des Nachweises verwendet. Dieser Nachweis umfasst den URI zusammen mit seiner Website und Zone.
Wenn das Stylesheet mit einer anderen Quelle geladen wurde, können Sie Nachweise angeben, indem Sie ein System.Security.Policy.Evidence Objekt an die Load Methode übergeben. Andernfalls hat die Skriptassembly voll vertrauenswürdig.
Halb vertrauenswürdige Aufrufer: UnmanagedCode Zum Kompilieren des eingebetteten Skripts ist die Berechtigung erforderlich.
ControlEvidenceDie Berechtigung ist erforderlich, um die Load Methode bereitzustellenEvidence. Ein SecurityException Fehler wird ausgelöst, wenn der Aufrufer nicht über die erforderlichen Berechtigungen verfügt. Weitere Informationen finden Sie unter System.Security.Permissions.SecurityPermission und System.Security.Permissions.SecurityPermissionFlag.
Das msxsl:script Element hat die folgenden Anforderungen:
Das
msxsl:scriptElement gehört zumurn:schemas-microsoft-com:xsltNamespace. Das Stylesheet muss die Namespacedeklarationxmlns:msxsl=urn:schemas-microsoft-com:xsltenthalten.Das
msxsl:scriptElement kann einlanguageAttribut enthalten, das die zu verwendende Skriptsprache angibt. Der Wert deslanguageAttributs muss eine der folgenden Sein: C#, CSharp, VB, VisualBasic, JScript oder JavaScript. Da bei dem Sprachnamen die Groß-/Kleinschreibung nicht beachtet wird, sind JavaScript und Javascript beide gültig. Wenn keinlanguageAttribut angegeben ist, wird standardmäßig JScript verwendet.Das
msxsl:scriptElement muss einimplements-prefixAttribut enthalten, das das Präfix enthält, das den dem Skriptblock zugeordneten Namespace darstellt. Dieser Namespace muss innerhalb des Stylesheets definiert werden. Ein Stylesheet kann mehrere Skriptblöcke enthalten, die nach Namespace gruppiert sind. Sie können keine Skriptblöcke mit mehreren Sprachen innerhalb desselben Namespaces haben. Skriptblöcke können eine in einem anderen Skriptblock definierte Funktion aufrufen, vorausgesetzt, die Skriptblöcke befinden sich im selben Namespace. Der Inhalt eines Skriptblocks wird gemäß den Regeln und der Syntax der Skriptsprache analysiert (bereitgestellt durch daslanguageAttribut). Wenn Sie z. B. einen C#-Skriptblock hatten, würden Kommentare den//Zeichen vorangestellt. Die Kommentare müssen gültige XML-Inhalte sein.
Note
Es wird empfohlen, Skriptblöcke in einem CDATA-Abschnitt umschließen.
<msxsl:script implements-prefix='xy' language='C#'>
<![CDATA[
// Add code here.
]]>
</msxsl:script>
Funktionen können innerhalb des msxsl:script Elements deklariert werden. In der folgenden Tabelle sind die Namespaces aufgeführt, die standardmäßig unterstützt werden.
| Unterstützte Namespaces | Description |
|---|---|
System |
Systemklassen. |
System.Collection |
Auflistungsklassen. |
System.Text |
Textverarbeitungsklassen. |
System.Xml |
Kern-XML-Klassen. |
System.Xml.Xsl |
XSLT-Klassen. |
System.Xml.XPath |
XPath-Klassen (XML Path Language). |
Die angegebenen Argumente und Rückgabewerte, die von den Skriptfunktionen definiert werden, müssen eines der unten aufgeführten W3C-Typen (World Wide Web Consortium) sein. In der folgenden Tabelle wird die Zuordnung zwischen den W3C-Typen , entweder XPath oder XSLT, und den entsprechenden .NET Framework-Klassen erläutert.
| W3C-Typ | Gleichwertige .NET Klasse |
|---|---|
| Zeichenfolge (XPath) | System.String |
| Boolescher Wert (XPath) | System.Boolean |
| Number (XPath) | System.Double |
| Ergebnisstrukturfragment (XSLT) | System.Xml.XPath.XPathNavigator |
| Knotensatz (XPath) | System.Xml.XPath.XPathNodeIterator |
Wenn die Skriptfunktion einen der folgenden numerischen Typen verwendet: Int16, UInt16, Int32, UInt32, Int64, UInt64, Single oder Decimal, werden diese Typen zu Double umgewandelt, was der W3C XPath-Typnummer zugeordnet ist.
Eine Ausnahme wird ausgelöst, wenn eine Funktion aufgerufen wird, die das Argumentergebnis nicht in einen der erforderlichen Typen konvertieren kann.
Note
msxsl:script und msxsl:node-list sind die einzigen Funktionen aus dem urn:schemas-microsoft-com:xslt Namespace, die von der XslTransform Klasse unterstützt werden.
XslTransform verfügt über die Möglichkeit, ClR-Code (Common Language Runtime) als Erweiterungsmechanismus zu verwenden. Dazu übergeben Sie eine Instanz einer Klasse an die XslTransform Klasse und rufen ihre öffentlichen Methoden in einem XSLT-Stylesheet auf. Methoden, die mit dem params Schlüsselwort definiert sind, wodurch eine nicht angegebene Anzahl von Parametern übergeben werden kann, funktionieren in diesem Szenario nicht ordnungsgemäß. Weitere Informationen finden Sie in den Params .
Weitere Informationen finden Sie unter XSLT-Transformationen mit der XslTransform-Klasse.
Konstruktoren
| Name | Beschreibung |
|---|---|
| XslTransform() |
Veraltet.
Initialisiert eine neue Instanz der XslTransform-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| XmlResolver |
Veraltet.
Legt fest, mit der XmlResolver externe Ressourcen aufgelöst werden, wenn die Transform Methode aufgerufen wird. |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Veraltet.
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Veraltet.
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Veraltet.
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| Load(IXPathNavigable, XmlResolver, Evidence) |
Veraltet.
Lädt das XSLT-Stylesheet, das in der IXPathNavigableDatei enthalten ist. Mit dieser Methode können Sie die Berechtigungen des Stylesheets einschränken, indem Sie Nachweise angeben. |
| Load(IXPathNavigable, XmlResolver) |
Veraltet.
Lädt das XSLT-Stylesheet, das in der IXPathNavigableDatei enthalten ist. |
| Load(IXPathNavigable) |
Veraltet.
Lädt das XSLT-Stylesheet, das in der IXPathNavigableDatei enthalten ist. |
| Load(String, XmlResolver) |
Veraltet.
Lädt das durch eine URL angegebene XSLT-Stylesheet. |
| Load(String) |
Veraltet.
Lädt das durch eine URL angegebene XSLT-Stylesheet. |
| Load(XmlReader, XmlResolver, Evidence) |
Veraltet.
Lädt das XSLT-Stylesheet, das in der XmlReaderDatei enthalten ist. Mit dieser Methode können Sie die Berechtigungen des Stylesheets einschränken, indem Sie Nachweise angeben. |
| Load(XmlReader, XmlResolver) |
Veraltet.
Lädt das XSLT-Stylesheet, das in der XmlReaderDatei enthalten ist. |
| Load(XmlReader) |
Veraltet.
Lädt das XSLT-Stylesheet, das in der XmlReaderDatei enthalten ist. |
| Load(XPathNavigator, XmlResolver, Evidence) |
Veraltet.
Lädt das XSLT-Stylesheet, das in der XPathNavigatorDatei enthalten ist. Mit dieser Methode können Sie die Berechtigungen des Stylesheets einschränken, indem Sie Nachweise angeben. |
| Load(XPathNavigator, XmlResolver) |
Veraltet.
Lädt das XSLT-Stylesheet, das in der XPathNavigatorDatei enthalten ist. |
| Load(XPathNavigator) |
Veraltet.
Lädt das XSLT-Stylesheet, das in der XPathNavigatorDatei enthalten ist. |
| MemberwiseClone() |
Veraltet.
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Veraltet.
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver) |
Veraltet.
Transformiert die XML-Daten in der IXPathNavigable angegebenen |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Veraltet.
Transformiert die XML-Daten in der IXPathNavigable angegebenen |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Veraltet.
Transformiert die XML-Daten in der IXPathNavigable angegebenen |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Veraltet.
Transformiert die XML-Daten in der IXPathNavigable angegebenen |
| Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Veraltet.
Transformiert die XML-Daten in der IXPathNavigable angegebenen |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Veraltet.
Transformiert die XML-Daten in der IXPathNavigable angegebenen |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Veraltet.
Transformiert die XML-Daten in der IXPathNavigable angegebenen |
| Transform(IXPathNavigable, XsltArgumentList) |
Veraltet.
Transformiert die XML-Daten in der IXPathNavigable angegebenen |
| Transform(String, String, XmlResolver) |
Veraltet.
Transformiert die XML-Daten in der Eingabedatei und gibt das Ergebnis in eine Ausgabedatei aus. |
| Transform(String, String) |
Veraltet.
Transformiert die XML-Daten in der Eingabedatei und gibt das Ergebnis in eine Ausgabedatei aus. |
| Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) |
Veraltet.
Transformiert die XML-Daten in der XPathNavigator angegebenen |
| Transform(XPathNavigator, XsltArgumentList, Stream) |
Veraltet.
Transformiert die XML-Daten in der XPathNavigator angegebenen |
| Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Veraltet.
Transformiert die XML-Daten in der XPathNavigator angegebenen |
| Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Veraltet.
Transformiert die XML-Daten in der XPathNavigator angegebenen |
| Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Veraltet.
Transformiert die XML-Daten in der XPathNavigator angegebenen |
| Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) |
Veraltet.
Transformiert die XML-Daten in der XPathNavigator verwendung der angegebenen Argumente und gibt das Ergebnis in ein XmlWriter. |
| Transform(XPathNavigator, XsltArgumentList, XmlWriter) |
Veraltet.
Transformiert die XML-Daten in der XPathNavigator verwendung der angegebenen Argumente und gibt das Ergebnis in ein XmlWriter. |
| Transform(XPathNavigator, XsltArgumentList) |
Veraltet.
Transformiert die XML-Daten in der XPathNavigator angegebenen |
Gilt für:
Threadsicherheit
XslTransform Objekte sind nur threadsicher für Transformationsvorgänge. Andere Vorgänge sind nicht garantiert threadsicher. Sie müssen sicherstellen, dass während ladevorgängen keine anderen Methoden für das Objekt aufgerufen werden.