XslTransform Klass

Definition

Varning

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

Transformerar XML-data med ett XSLT-formatmall (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
Arv
XslTransform
Attribut

Kommentarer

Note

Klassen XslTransform är föråldrad i Microsoft .NET Framework version 2.0. Klassen XslCompiledTransform är den nya XSLT-processorn. Mer information finns i Använda klassen XslCompiledTransform och Migrera från klassen XslTransform.

XslTransform stöder XSLT 1.0-syntaxen. XSLT-formatmallen måste använda namnområdet http://www.w3.org/1999/XSL/Transform.

Ytterligare argument kan också läggas till i formatmallen med hjälp av XsltArgumentList klassen . Den här klassen innehåller indataparametrar för formatmalls- och tilläggsobjekten som kan anropas från formatmallen.

Så här transformerar du XML-data:

  1. Skapa ett XslTransform objekt.

  2. Load Använd metoden för att läsa in formatmallen för omvandlingen. Den här metoden har flera överlagringar och kan läsa in en formatmall med hjälp av en XmlReader, XPathNavigator, IXPathNavigableeller en URL med filens plats.

  3. Transform Använd metoden för att transformera XML-data. Den här metoden har flera överlagringar och kan hantera olika typer av indata och utdata. Du kan också ange en XsltArgumentList som innehåller ytterligare argument som ska användas som indata under omvandlingen.

Säkerhetsöverväganden

När du skapar ett program som använder XslTransform klassen bör du vara medveten om följande objekt och deras konsekvenser:

  • Tilläggsobjekt är aktiverade som standard. Om ett XsltArgumentList objekt som innehåller tilläggsobjekt skickas till Transform metoden används de.

  • XSLT-formatmallar kan innehålla referenser till andra filer och inbäddade skriptblock. En obehörig användare kan utnyttja detta genom att förse dig med data eller formatmallar som när de körs gör att systemet bearbetas tills datorn har ont om resurser.

  • XSLT-program som körs i en miljö med blandat förtroende kan resultera i förfalskning av formatmallar. En obehörig användare kan till exempel läsa in ett objekt med ett skadligt formatmallar och lämna över det till en annan användare som därefter anropar Transform metoden och kör omvandlingen.

Dessa säkerhetsproblem kan åtgärdas genom att objekt, XSLT-formatmallar eller XML-källdata från ej betrodda källor inte accepteras XslTransform .

Stöd för skript

Den här klassen stöder inbäddade skript med hjälp av -elementet msxsl:script .

I version 1.1 av .NET Framework avgör bevisen för formatmallen vilka behörigheter som ges till inbäddade skript.

  • Om formatmallen lästes in från en URI (Uniform Resource Identifier) används URI:n för att skapa bevisen. Detta bevis inkluderar URI:n tillsammans med dess plats och zon.

  • Om formatmallen lästes in med hjälp av en annan källa kan du tillhandahålla bevis genom att skicka ett System.Security.Policy.Evidence objekt till Load metoden. Annars har skriptsammansättningen fullt förtroende.

Halvbetrott anropare: UnmanagedCode behörighet krävs för att kompilera det inbäddade skriptet. ControlEvidencebehörighet krävs för att Evidence tillhandahålla Load metoden. En SecurityException utlöses om anroparen inte har de behörigheter som krävs. Mer information finns i System.Security.Permissions.SecurityPermission och System.Security.Permissions.SecurityPermissionFlag.

Elementet msxsl:script har följande krav:

  • Elementet msxsl:script tillhör urn:schemas-microsoft-com:xslt namnområdet. Formatmallen måste innehålla namnområdesdeklarationen xmlns:msxsl=urn:schemas-microsoft-com:xslt.

  • Elementet msxsl:script kan innehålla ett language attribut som anger vilket skriptspråk som ska användas. Värdet för language attributet måste vara något av följande: C#, CSharp, VB, VisualBasic, JScript eller JavaScript. Eftersom språknamnet inte är skiftlägeskänsligt är Både JavaScript och javascript giltiga. Om ett language attribut inte har angetts används JScript som standard.

  • Elementet msxsl:script måste innehålla ett implements-prefix attribut som innehåller prefixet som representerar det namnområde som är associerat med skriptblocket. Det här namnområdet måste definieras i formatmallen. En formatmall kan innehålla flera skriptblock som grupperas efter namnområde. Du kan inte ha skriptblock med flera språk inom samma namnområde. Skriptblock kan anropa en funktion som definierats i ett annat skriptblock, förutsatt att skriptblocken finns inom samma namnområde. Innehållet i ett skriptblock parsas enligt reglerna och syntaxen för skriptspråket (tillhandahålls av language attributet). Om du till exempel hade ett C#-skriptblock skulle kommentarer prefixas av // tecknen. Kommentarerna måste vara giltigt XML-innehåll.

Note

Vi rekommenderar att du omsluter skriptblock i ett CDATA-avsnitt.

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

Funktioner kan deklareras i elementet msxsl:script . I följande tabell visas de namnområden som stöds som standard.

Namnområden som stöds Description
System Systemklasser.
System.Collection Samlingsklasser.
System.Text Texthanteringsklasser.
System.Xml Grundläggande XML-klasser.
System.Xml.Xsl XSLT-klasser.
System.Xml.XPath XPath-klasser (XML Path Language).

De angivna argumenten och returvärdena som definieras av skriptfunktionerna måste vara en av de W3C-typer (World Wide Web Consortium) som anges nedan. I följande tabell beskrivs mappningen mellan W3C-typerna, antingen XPath eller XSLT, och motsvarande .NET Framework-klasser.

W3C-typ Motsvarande .NET-klass
Sträng (XPath) System.String
Booleskt värde (XPath) System.Boolean
Tal (XPath) System.Double
Resultatträdsfragment (XSLT) System.Xml.XPath.XPathNavigator
Noduppsättning (XPath) System.Xml.XPath.XPathNodeIterator

Om skriptfunktionen använder någon av följande numeriska typer: Int16, UInt16, Int32, UInt32, Int64, UInt64, Single eller Decimal, tvingas dessa typer till Double, som mappar till W3C XPath-typnumret.

Ett undantag utlöses när en funktion anropas som inte kan konvertera argumentresultatet till någon av de nödvändiga typerna.

Note

msxsl:script och msxsl:node-list är de enda funktionerna från urn:schemas-microsoft-com:xslt namnområdet som stöds av XslTransform klassen.

XslTransform har möjlighet att använda CLR-kod (Common Language Runtime) som en tilläggsmekanism. Detta uppnås genom att skicka en instans av en klass till XslTransform klassen och anropa dess offentliga metoder i en XSLT-formatmall. Metoder som definieras med nyckelordet params , som gör att ett ospecificerat antal parametrar kan skickas, fungerar inte korrekt i det här scenariot. Mer information finns i params .

Mer information finns i XSLT-transformeringar med XslTransform-klassen.

Konstruktorer

Name Description
XslTransform()
Föråldrad.

Initierar en ny instans av XslTransform klassen.

Egenskaper

Name Description
XmlResolver
Föråldrad.

Anger den XmlResolver som används för att matcha externa resurser när Transform metoden anropas.

Metoder

Name Description
Equals(Object)
Föråldrad.

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()
Föråldrad.

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()
Föråldrad.

Hämtar den aktuella instansen Type .

(Ärvd från Object)
Load(IXPathNavigable, XmlResolver, Evidence)
Föråldrad.

Läser in XSLT-formatmallen IXPathNavigablesom finns i . Med den här metoden kan du begränsa behörigheterna för formatmallen genom att ange bevis.

Load(IXPathNavigable, XmlResolver)
Föråldrad.

Läser in XSLT-formatmallen IXPathNavigablesom finns i .

Load(IXPathNavigable)
Föråldrad.

Läser in XSLT-formatmallen IXPathNavigablesom finns i .

Load(String, XmlResolver)
Föråldrad.

Läser in XSLT-formatmallen som anges av en URL.

Load(String)
Föråldrad.

Läser in XSLT-formatmallen som anges av en URL.

Load(XmlReader, XmlResolver, Evidence)
Föråldrad.

Läser in XSLT-formatmallen XmlReadersom finns i . Med den här metoden kan du begränsa behörigheterna för formatmallen genom att ange bevis.

Load(XmlReader, XmlResolver)
Föråldrad.

Läser in XSLT-formatmallen XmlReadersom finns i .

Load(XmlReader)
Föråldrad.

Läser in XSLT-formatmallen XmlReadersom finns i .

Load(XPathNavigator, XmlResolver, Evidence)
Föråldrad.

Läser in XSLT-formatmallen XPathNavigatorsom finns i . Med den här metoden kan du begränsa behörigheterna för formatmallen genom att ange bevis.

Load(XPathNavigator, XmlResolver)
Föråldrad.

Läser in XSLT-formatmallen XPathNavigatorsom finns i .

Load(XPathNavigator)
Föråldrad.

Läser in XSLT-formatmallen XPathNavigatorsom finns i .

MemberwiseClone()
Föråldrad.

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()
Föråldrad.

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
Föråldrad.

Transformerar XML-data i IXPathNavigable med den angivna args och matar ut resultatet till en Stream.

Transform(IXPathNavigable, XsltArgumentList, Stream)
Föråldrad.

Transformerar XML-data i IXPathNavigable med den angivna args och matar ut resultatet till en Stream.

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
Föråldrad.

Transformerar XML-data i IXPathNavigable med den angivna args och matar ut resultatet till en TextWriter.

Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Föråldrad.

Transformerar XML-data i IXPathNavigable med den angivna args och matar ut resultatet till en TextWriter.

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
Föråldrad.

Transformerar XML-data i IXPathNavigable med den angivna args och matar ut resultatet till en XmlReader.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
Föråldrad.

Transformerar XML-data i IXPathNavigable med den angivna args och matar ut resultatet till en XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Föråldrad.

Transformerar XML-data i IXPathNavigable med den angivna args och matar ut resultatet till en XmlWriter.

Transform(IXPathNavigable, XsltArgumentList)
Föråldrad.

Transformerar XML-data i IXPathNavigable med den angivna args och matar ut resultatet till en XmlReader.

Transform(String, String, XmlResolver)
Föråldrad.

Transformerar XML-data i indatafilen och matar ut resultatet till en utdatafil.

Transform(String, String)
Föråldrad.

Transformerar XML-data i indatafilen och matar ut resultatet till en utdatafil.

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
Föråldrad.

Transformerar XML-data i XPathNavigator med den angivna args och matar ut resultatet till en Stream.

Transform(XPathNavigator, XsltArgumentList, Stream)
Föråldrad.

Transformerar XML-data i XPathNavigator med den angivna args och matar ut resultatet till en Stream.

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
Föråldrad.

Transformerar XML-data i XPathNavigator med den angivna args och matar ut resultatet till en TextWriter.

Transform(XPathNavigator, XsltArgumentList, TextWriter)
Föråldrad.

Transformerar XML-data i XPathNavigator med den angivna args och matar ut resultatet till en TextWriter.

Transform(XPathNavigator, XsltArgumentList, XmlResolver)
Föråldrad.

Transformerar XML-data i XPathNavigator med den angivna args och matar ut resultatet till en XmlReader.

Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
Föråldrad.

Transformerar XML-data i XPathNavigator med hjälp av angivna args och matar ut resultatet till en XmlWriter.

Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Föråldrad.

Transformerar XML-data i XPathNavigator med hjälp av angivna args och matar ut resultatet till en XmlWriter.

Transform(XPathNavigator, XsltArgumentList)
Föråldrad.

Transformerar XML-data i XPathNavigator med den angivna args och matar ut resultatet till en XmlReader.

Gäller för

Trådsäkerhet

XslTransform objekt är bara trådsäkra för transformeringsåtgärder. Andra åtgärder garanteras inte vara trådsäkra. Du måste se till att inga andra metoder anropas på objektet under inläsningsåtgärderna.