XslTransform Třída

Definice

Upozornění

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

Transformuje data XML pomocí šablony stylů 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
Dědičnost
XslTransform
Atributy

Poznámky

Note

Třída XslTransform je zastaralá v rozhraní Microsoft .NET Framework verze 2.0. Třída XslCompiledTransform je nový procesor XSLT. Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace z třídy XslTransform.

XslTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí používat obor názvů http://www.w3.org/1999/XSL/Transform.

Do šablony stylů lze přidat také další argumenty pomocí XsltArgumentList třídy. Tato třída obsahuje vstupní parametry šablony stylů a rozšiřujících objektů, které lze volat ze šablony stylů.

Transformace dat XML:

  1. Vytvořte XslTransform objekt.

  2. Tuto metodu Load použijte k načtení šablony stylů pro transformaci. Tato metoda má několik přetížení a může načíst šablonu stylů pomocí XmlReader, XPathNavigator, IXPathNavigablenebo adresy URL s umístěním souboru.

  3. Transform Pomocí metody transformujte data XML. Tato metoda má několik přetížení a dokáže zpracovat různé typy vstupu a výstupu. Můžete také zadat XsltArgumentList obsahující další argumenty, které se mají použít jako vstup během transformace.

Aspekty zabezpečení

Při vytváření aplikace, která používá XslTransform třídu, byste měli vědět o následujících položkách a jejich dopadech:

  • Objekty rozšíření jsou ve výchozím nastavení povolené. XsltArgumentList Pokud je objekt obsahující rozšiřující objekt předán metoděTransform, jsou využívány.

  • Šablony stylů XSLT mohou obsahovat odkazy na jiné soubory a vložené bloky skriptů. Uživatel se zlými úmysly to může zneužít tím, že vám poskytne data nebo šablony stylů, které při spuštění způsobí, že systém bude zpracovávat, dokud počítač nebude mít málo prostředků.

  • Aplikace XSLT, které běží v prostředí smíšené důvěryhodnosti, můžou vést k falšování identity šablon stylů. Uživatel se zlými úmysly může například načíst objekt se škodlivou šablonou stylů a předat ho jinému uživateli, který metodu Transform následně zavolá a provede transformaci.

Tyto problémy se zabezpečením je možné zmírnit tím, že nepřijímáte XslTransform objekty, šablony stylů XSLT nebo zdrojová data XML z nedůvěryhodných zdrojů.

Podpora skriptování

Tato třída podporuje vložené skriptování pomocí elementu msxsl:script .

Ve verzi 1.1 .NET Framework důkazy šablony stylů určují, jaká oprávnění mají vložené skripty.

  • Pokud byla šablona stylů načtena z identifikátoru URI (Uniform Resource Identifier), použije se identifikátor URI k vytvoření důkazů. Tento důkaz zahrnuje identifikátor URI spolu s jeho webem a zónou.

  • Pokud byla šablona stylů načtena pomocí jiného zdroje, můžete poskytnout důkaz předáním System.Security.Policy.Evidence objektu metodě Load . V opačném případě má sestavení skriptu úplný vztah důvěryhodnosti.

Částečně důvěryhodní volající: UnmanagedCode Ke kompilaci vloženého skriptu se vyžaduje oprávnění. ControlEvidence k poskytnutí EvidenceLoad metody se vyžaduje oprávnění. Vyvolá SecurityException se, pokud volající nemá potřebná oprávnění. Další informace najdete v tématu System.Security.Permissions.SecurityPermission a System.Security.Permissions.SecurityPermissionFlag.

Element msxsl:script má následující požadavky:

  • Element msxsl:script patří do urn:schemas-microsoft-com:xslt oboru názvů. Šablona stylů musí obsahovat deklaraci xmlns:msxsl=urn:schemas-microsoft-com:xsltoboru názvů .

  • Element msxsl:script může obsahovat language atribut, který určuje skriptovací jazyk, který se má použít. Hodnota atributu language musí být jedna z následujících hodnot: C#, CSharp, VB, VisualBasic, JScript nebo JavaScript. Vzhledem k tomu, že název jazyka nerozlišuje malá a velká písmena, jsou Oba jazyky JavaScript a JavaScript platné. language Pokud není zadaný atribut, nastaví se jako výchozí JScript.

  • Prvek msxsl:script musí obsahovat implements-prefix atribut, který obsahuje předponu představující obor názvů přidružený k bloku skriptu. Tento obor názvů musí být definován v šabloně stylů. Šablona stylů může obsahovat několik bloků skriptu, které jsou seskupené podle oboru názvů. Bloky skriptů s více jazyky v rámci stejného oboru názvů nemůžete mít. Bloky skriptu mohou volat funkci definovanou v jiném bloku skriptu za předpokladu, že bloky skriptu se nacházejí ve stejném oboru názvů. Obsah bloku skriptu se parsuje podle pravidel a syntaxe skriptovacího jazyka (poskytnutého atributem language ). Pokud byste například měli blok skriptu jazyka C#, budou komentáře předponou // znaků. Komentáře musí být platný obsah XML.

Note

Doporučuje se zalomit bloky skriptu v části CDATA.

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

Funkce lze deklarovat v rámci elementu msxsl:script . Následující tabulka ukazuje obory názvů, které jsou ve výchozím nastavení podporovány.

Podporované obory názvů Description
System Systémové třídy.
System.Collection Třídy kolekce.
System.Text Třídy zpracování textu
System.Xml Základní třídy XML
System.Xml.Xsl Třídy XSLT.
System.Xml.XPath Třídy jazyka XML Path (XPath).

Zadané argumenty a návratové hodnoty definované funkcemi skriptu musí být jedním z níže uvedených typů W3C (World Wide Web Consortium). Následující tabulka podrobně popisuje mapování mezi typy W3C, XPath nebo XSLT a odpovídajícími třídami .NET Framework.

Typ W3C Ekvivalentní třída .NET
String (XPath) System.String
Logická hodnota (XPath) System.Boolean
Číslo (XPath) System.Double
Fragment stromu výsledků (XSLT) System.Xml.XPath.XPathNavigator
Sada uzlů (XPath) System.Xml.XPath.XPathNodeIterator

Pokud funkce skriptu využívá jeden z následujících číselných typů: Int16, UInt16, Int32, UInt32, Int64, UInt64, Single nebo Decimal, jsou tyto typy přetěžovány na Double, které se mapují na číslo typu W3C XPath.

Výjimka je vyvolána, když je volána funkce, která nemůže převést výsledek argumentu na jeden z požadovaných typů.

Note

msxsl:script a msxsl:node-list jsou jedinými funkcemi urn:schemas-microsoft-com:xslt z oboru názvů, které třída podporuje XslTransform .

XslTransform má možnost využívat kód CLR (Common Language Runtime) jako mechanismus rozšíření. Toho se dosahuje předáním instance třídy do třídy XslTransform a voláním jejích veřejných metod v rámci šablony stylů XSLT. Metody definované pomocí klíčového params slova, které umožňují předání neurčeného počtu parametrů, v tomto scénáři nefungují správně. Další podrobnosti najdete v parametrech .

Další informace naleznete v tématu Transformace XSLT s XslTransform třídy.

Konstruktory

Name Description
XslTransform()
Zastaralé.

Inicializuje novou instanci XslTransform třídy.

Vlastnosti

Name Description
XmlResolver
Zastaralé.

XmlResolver Nastaví použitou k překladu externích prostředků při zavolání Transform metody.

Metody

Name Description
Equals(Object)
Zastaralé.

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()
Zastaralé.

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()
Zastaralé.

Získá Type aktuální instance.

(Zděděno od Object)
Load(IXPathNavigable, XmlResolver, Evidence)
Zastaralé.

Načte šablonu stylů XSLT obsaženou v souboru IXPathNavigable. Tato metoda umožňuje omezit oprávnění šablony stylů zadáním důkazů.

Load(IXPathNavigable, XmlResolver)
Zastaralé.

Načte šablonu stylů XSLT obsaženou v souboru IXPathNavigable.

Load(IXPathNavigable)
Zastaralé.

Načte šablonu stylů XSLT obsaženou v souboru IXPathNavigable.

Load(String, XmlResolver)
Zastaralé.

Načte šablonu stylů XSLT určenou adresou URL.

Load(String)
Zastaralé.

Načte šablonu stylů XSLT určenou adresou URL.

Load(XmlReader, XmlResolver, Evidence)
Zastaralé.

Načte šablonu stylů XSLT obsaženou v souboru XmlReader. Tato metoda umožňuje omezit oprávnění šablony stylů zadáním důkazů.

Load(XmlReader, XmlResolver)
Zastaralé.

Načte šablonu stylů XSLT obsaženou v souboru XmlReader.

Load(XmlReader)
Zastaralé.

Načte šablonu stylů XSLT obsaženou v souboru XmlReader.

Load(XPathNavigator, XmlResolver, Evidence)
Zastaralé.

Načte šablonu stylů XSLT obsaženou v souboru XPathNavigator. Tato metoda umožňuje omezit oprávnění šablony stylů zadáním důkazů.

Load(XPathNavigator, XmlResolver)
Zastaralé.

Načte šablonu stylů XSLT obsaženou v souboru XPathNavigator.

Load(XPathNavigator)
Zastaralé.

Načte šablonu stylů XSLT obsaženou v souboru XPathNavigator.

MemberwiseClone()
Zastaralé.

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()
Zastaralé.

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
Zastaralé.

Transformuje data XML pomocí IXPathNavigable zadaného args a výstupu výsledek na .Stream

Transform(IXPathNavigable, XsltArgumentList, Stream)
Zastaralé.

Transformuje data XML pomocí IXPathNavigable zadaného args a výstupu výsledek na .Stream

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
Zastaralé.

Transformuje data XML pomocí IXPathNavigable zadaného args a výstupu výsledek na .TextWriter

Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Zastaralé.

Transformuje data XML pomocí IXPathNavigable zadaného args a výstupu výsledek na .TextWriter

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
Zastaralé.

Transformuje data XML pomocí IXPathNavigable zadaného args a výstupu výsledek do XmlReader.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
Zastaralé.

Transformuje data XML pomocí IXPathNavigable zadaného args a výstupu výsledek do XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Zastaralé.

Transformuje data XML pomocí IXPathNavigable zadaného args a výstupu výsledek do XmlWriter.

Transform(IXPathNavigable, XsltArgumentList)
Zastaralé.

Transformuje data XML pomocí IXPathNavigable zadaného args a výstupu výsledek do XmlReader.

Transform(String, String, XmlResolver)
Zastaralé.

Transformuje data XML ve vstupním souboru a vypíše výsledek do výstupního souboru.

Transform(String, String)
Zastaralé.

Transformuje data XML ve vstupním souboru a vypíše výsledek do výstupního souboru.

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
Zastaralé.

Transformuje data XML pomocí XPathNavigator zadaného args a výstupu výsledek na .Stream

Transform(XPathNavigator, XsltArgumentList, Stream)
Zastaralé.

Transformuje data XML pomocí XPathNavigator zadaného args a výstupu výsledek na .Stream

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
Zastaralé.

Transformuje data XML pomocí XPathNavigator zadaného args a výstupu výsledek na .TextWriter

Transform(XPathNavigator, XsltArgumentList, TextWriter)
Zastaralé.

Transformuje data XML pomocí XPathNavigator zadaného args a výstupu výsledek na .TextWriter

Transform(XPathNavigator, XsltArgumentList, XmlResolver)
Zastaralé.

Transformuje data XML pomocí XPathNavigator zadaného args a výstupu výsledek do XmlReader.

Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
Zastaralé.

Transformuje data XML pomocí XPathNavigator zadaných args a vypíše výsledek na hodnotu XmlWriter.

Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Zastaralé.

Transformuje data XML pomocí XPathNavigator zadaných args a vypíše výsledek na hodnotu XmlWriter.

Transform(XPathNavigator, XsltArgumentList)
Zastaralé.

Transformuje data XML pomocí XPathNavigator zadaného args a výstupu výsledek do XmlReader.

Platí pro

Bezpečný přístup z více vláken

XslTransform objekty jsou pouze pro operace transformace bezpečné pro přístup z více vláken. U jiných operací není zaručeno, že budou bezpečné pro přístup z více vláken. Je nutné zajistit, aby během operací načítání nebyly v objektu volána žádné jiné metody.