XslTransform Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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:
XslTransform Vytvořte objekt.
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.
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ří dourn:schemas-microsoft-com:xslt
oboru názvů. Šablona stylů musí obsahovat deklaracixmlns:msxsl=urn:schemas-microsoft-com:xslt
oboru názvů .Prvek
msxsl:script
může obsahovatlanguage
atribut, který určuje skriptovací jazyk, který se má použít. Hodnota atributulanguage
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í obsahovatimplements-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 atributemlanguage
). 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 |
Transform(IXPathNavigable, XsltArgumentList, Stream) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver) |
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Transformuje data XML pomocí IXPathNavigable zadaného |
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 |
Transform(XPathNavigator, XsltArgumentList, Stream) |
Zastaralé.
Transformuje data XML pomocí XPathNavigator zadaného |
Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) |
Transformuje data XML pomocí XPathNavigator zadaného |
Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Zastaralé.
Transformuje data XML pomocí XPathNavigator zadaného |
Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Transformuje data XML pomocí XPathNavigator zadaného |
Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Transformuje data XML pomocí XPathNavigator zadaného |
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.