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
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:
Vytvořte XslTransform objekt.
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.
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:scriptpatří dourn:schemas-microsoft-com:xsltoboru názvů. Šablona stylů musí obsahovat deklaracixmlns:msxsl=urn:schemas-microsoft-com:xsltoboru názvů .Element
msxsl:scriptmůže obsahovatlanguageatribut, který určuje skriptovací jazyk, který se má použít. Hodnota atributulanguagemusí 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é.languagePokud není zadaný atribut, nastaví se jako výchozí JScript.Prvek
msxsl:scriptmusí obsahovatimplements-prefixatribut, 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 atributemlanguage). 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 |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
| Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
| Transform(IXPathNavigable, XsltArgumentList) |
Zastaralé.
Transformuje data XML pomocí IXPathNavigable zadaného |
| 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 |
| Transform(XPathNavigator, XsltArgumentList, Stream) |
Zastaralé.
Transformuje data XML pomocí XPathNavigator zadaného |
| Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Zastaralé.
Transformuje data XML pomocí XPathNavigator zadaného |
| Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Zastaralé.
Transformuje data XML pomocí XPathNavigator zadaného |
| Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Zastaralé.
Transformuje data XML pomocí XPathNavigator zadaného |
| 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 |
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.