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

Příklady

Následující příklad transformuje zadaný dokument XML a vypíše výsledek do konzoly.

//Create a new XslTransform object.
XslTransform xslt = new XslTransform();

//Load the stylesheet.
xslt.Load("http://server/favorite.xsl");

//Create a new XPathDocument and load the XML data to be transformed.
XPathDocument mydata = new XPathDocument("inputdata.xml");

//Create an XmlTextWriter which outputs to the console.
XmlWriter writer = new XmlTextWriter(Console.Out);

//Transform the data and send the output to the console.
xslt.Transform(mydata,null,writer, null);
'Create a new XslTransform object.
Dim xslt As New XslTransform()

'Load the stylesheet.
xslt.Load(CType("http://server/favorite.xsl", String))

'Create a new XPathDocument and load the XML data to be transformed.
Dim mydata As New XPathDocument("inputdata.xml")

'Create an XmlTextWriter which outputs to the console.
Dim writer As New XmlTextWriter(Console.Out)

'Transform the data and send the output to the console.
xslt.Transform(mydata, Nothing, writer, Nothing)

Poznámky

Poznámka

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 ze 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.

Další argumenty lze také přidat do šablony stylů 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. XslTransform Vytvořte objekt.

  2. Load Pomocí metody načtěte šablonu 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.

Důležité informace o zabezpečení

Při vytváření aplikace, která používá XslTransform třídu, byste měli mít na paměti následující položky a jejich důsledky:

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

  • Šablony stylů XSLT můžou 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 nedostatek 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ů. Například škodlivý uživatel může načíst objekt se škodlivou šablonou stylů a předat ho jinému uživateli, který následně volá metodu Transform a provádí transformaci.

Tyto problémy se zabezpečením je možné zmírnit tím, že nepřijímají 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 rozhraní .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ů. Tyto důkazy zahrnují 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 Oprávnění je nutné ke kompilaci vloženého skriptu. ControlEvidence k poskytnutí Evidence Load metody je vyžadováno oprávnění. Vyvolá se, SecurityException pokud volající nemá potřebná oprávnění. Další informace najdete v tématu System.Security.Permissions.SecurityPermission a System.Security.Permissions.SecurityPermissionFlag další informace.

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

  • Prvek 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ů .

  • Prvek 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 možností: C#, CSharp, VB, VisualBasic, JScript nebo JavaScript. Vzhledem k tomu, že název jazyka nerozlišuje malá a velká písmena, javascript i javascript jsou platné. language Pokud atribut není zadaný, ve výchozím nastavení se 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 více bloků skriptů, které jsou seskupené podle oboru názvů. V rámci stejného oboru názvů nemůžete mít bloky skriptů s více jazyky. Bloky skriptů můžou volat funkci definovanou v jiném bloku skriptu za předpokladu, že bloky skriptů se nacházejí ve stejném oboru názvů. Obsah bloku skriptu se parsuje podle pravidel a syntaxe skriptovacího jazyka (zadaného atributem language ). Pokud jste například měli blok skriptu jazyka C#, budou komentáře předponou // znaků. Komentáře musí být platný obsah XML.

Poznámka

Doporučuje se zabalit bloky skriptů 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í podporované.

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 XPath (XML Path Language).

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 rozhraní .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 se vyvolá, když se volá funkce, která nemůže převést výsledek argumentu na jeden z požadovaných typů.

Poznámka

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

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

Další informace naleznete v tématu Transformace XSLT se třídou XslTransform.

Konstruktory

XslTransform()

Inicializuje novou instanci XslTransform třídy.

Vlastnosti

XmlResolver
Zastaralé.

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

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

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

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

Load(IXPathNavigable, XmlResolver)
Zastaralé.

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

Load(IXPathNavigable, XmlResolver, Evidence)

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(String)

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

Load(String, XmlResolver)

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

Load(XmlReader)
Zastaralé.

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

Load(XmlReader, XmlResolver)
Zastaralé.

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

Load(XmlReader, XmlResolver, Evidence)

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(XPathNavigator)
Zastaralé.

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

Load(XPathNavigator, XmlResolver)
Zastaralé.

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

Load(XPathNavigator, XmlResolver, Evidence)

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ů.

MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

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

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

Transformuje data XML pomocí IXPathNavigable zadaného args a výstupu výsledku XmlReaderna hodnotu .

Transform(IXPathNavigable, XsltArgumentList, Stream)
Zastaralé.

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

Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)

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

Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Zastaralé.

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

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)

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

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)

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

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Zastaralé.

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

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

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

Transform(String, String)
Zastaralé.

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

Transform(String, String, XmlResolver)

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

Transform(XPathNavigator, XsltArgumentList)
Zastaralé.

Transformuje data XML pomocí XPathNavigator zadaného args a výstupu výsledku XmlReaderna hodnotu .

Transform(XPathNavigator, XsltArgumentList, Stream)
Zastaralé.

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

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)

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

Transform(XPathNavigator, XsltArgumentList, TextWriter)
Zastaralé.

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

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)

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

Transform(XPathNavigator, XsltArgumentList, XmlResolver)

Transformuje data XML pomocí XPathNavigator zadaného args a výstupu výsledku XmlReaderna hodnotu .

Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Zastaralé.

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

Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)

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

Platí pro

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

XslTransform objekty jsou pouze bezpečné pro operace transformace s vlákny. Jiné operace nejsou zaručené, že jsou bezpečné pro vlákna. Je nutné zajistit, aby během operací načítání nebyly na objektu volána žádné jiné metody.