XslCompiledTransform Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Transformeert XML-gegevens met behulp van een XSLT-opmaakmodel.
public ref class XslCompiledTransform sealed
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XslCompiledTransform requires dynamic code because it generates IL at runtime.")]
public sealed class XslCompiledTransform
public sealed class XslCompiledTransform
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XslCompiledTransform requires dynamic code because it generates IL at runtime.")>]
type XslCompiledTransform = class
type XslCompiledTransform = class
Public NotInheritable Class XslCompiledTransform
- Overname
-
XslCompiledTransform
- Kenmerken
Voorbeelden
In het volgende voorbeeld wordt een transformatie en uitvoer uitgevoerd naar een bestand.
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html");
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html")
In het voorbeeld worden de volgende twee invoerbestanden gebruikt:
<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>ISBN</TD>
<TD>Title</TD>
<TD>Price</TD>
</TR>
<xsl:apply-templates select="book"/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="book">
<TR>
<TD><xsl:value-of select="@ISBN"/></TD>
<TD><xsl:value-of select="title"/></TD>
<TD><xsl:value-of select="price"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
Opmerkingen
De XslCompiledTransform klasse is een XSLT-processor die ondersteuning biedt voor de XSLT 1.0-syntaxis. Het is een nieuwe implementatie en bevat prestatieverbeteringen in vergelijking met de verouderde XslTransform klasse. De structuur van de XslCompiledTransform klasse is vergelijkbaar met de XslTransform klasse. De Load methode laadt en compileert het opmaakmodel, terwijl de Transform methode de XSLT-transformatie uitvoert.
Ondersteuning voor de XSLT-functie document() en ingesloten scriptblokken zijn standaard uitgeschakeld. Deze functies kunnen worden ingeschakeld door een XsltSettings object te maken en door te geven aan de Load methode.
Zie De XslCompiledTransform-klasse gebruiken en migreren vanuit de XslTransform-klasse voor meer informatie.
Beveiligingsoverwegingen
Wanneer u een toepassing maakt die gebruikmaakt van de XslCompiledTransform klasse, moet u rekening houden met de volgende items en de gevolgen ervan:
XSLT-scripts zijn standaard uitgeschakeld. XSLT-scripts moeten alleen worden ingeschakeld als u scriptondersteuning nodig hebt en u in een volledig vertrouwde omgeving werkt.
De XSLT-functie
document()is standaard uitgeschakeld. Als u dedocument()functie inschakelt, beperkt u de resources die kunnen worden geopend door deze door te geven ThrowingResolver aan de Transform methode.Extensieobjecten zijn standaard ingeschakeld. Als een XsltArgumentList object met extensieobjecten wordt doorgegeven aan de Transform methode, worden ze gebruikt.
XSLT-opmaakmodellen kunnen verwijzingen naar andere bestanden en ingesloten scriptblokken bevatten. Een kwaadwillende gebruiker kan dit misbruiken door u te voorzien van gegevens of opmaakmodellen die, wanneer deze worden uitgevoerd, ertoe kunnen leiden dat uw systeem wordt verwerkt totdat de computer weinig resources heeft.
XSLT-toepassingen die worden uitgevoerd in een omgeving met gemengde vertrouwensrelaties kunnen leiden tot spoofing van stijlbladen. Een kwaadwillende gebruiker kan bijvoorbeeld een object laden met een schadelijk opmaakmodel en dit doorgeven aan een andere gebruiker die de Transform methode vervolgens aanroept en de transformatie uitvoert.
Deze beveiligingsproblemen kunnen worden beperkt door scripting of de document() functie niet in te schakelen, tenzij het opmaakmodel afkomstig is van een vertrouwde bron en door geen objecten, XSLT-opmaakmodellen of XML-brongegevens van een niet-vertrouwde bron te accepteren XslCompiledTransform .
Constructors
| Name | Description |
|---|---|
| XslCompiledTransform() |
Initialiseert een nieuw exemplaar van de XslCompiledTransform klasse. |
| XslCompiledTransform(Boolean) |
Initialiseert een nieuw exemplaar van de XslCompiledTransform klasse met de opgegeven instelling voor foutopsporing. |
Eigenschappen
| Name | Description |
|---|---|
| OutputSettings |
Hiermee haalt u een XmlWriterSettings object op dat de uitvoergegevens bevat die zijn afgeleid van het |
| TemporaryFiles |
Hiermee haalt u de TempFileCollection bestanden op die de tijdelijke bestanden bevatten die op schijf worden gegenereerd na een geslaagde aanroep naar de Load methode. |
Methoden
| Name | Description |
|---|---|
| CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) |
Compileert een XSLT-opmaakmodel naar een opgegeven type. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| Load(IXPathNavigable, XsltSettings, XmlResolver) |
Compileert het XSLT-opmaakmodel in de IXPathNavigable. Hiermee XmlResolver worden XSLT |
| Load(IXPathNavigable) |
Compileert het opmaakmodel in het IXPathNavigable object. |
| Load(MethodInfo, Byte[], Type[]) |
Laadt een methode uit een opmaakmodel dat is gecompileerd met behulp van het |
| Load(String, XsltSettings, XmlResolver) |
Laadt en compileert het XSLT-opmaakmodel dat is opgegeven door de URI. Hiermee XmlResolver worden XSLT |
| Load(String) |
Laadt en compileert het opmaakmodel op de opgegeven URI. |
| Load(Type) |
Laadt het gecompileerde opmaakmodel dat is gemaakt met de XSLT-compiler (xsltc.exe). |
| Load(XmlReader, XsltSettings, XmlResolver) |
Compileert het XSLT-opmaakmodel in de XmlReader. Hiermee XmlResolver worden XSLT |
| Load(XmlReader) |
Compileert het opmaakmodel in de XmlReader. |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
| Transform(IXPathNavigable, XmlWriter) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door het IXPathNavigable object en voert de resultaten uit naar een XmlWriter. |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door het IXPathNavigable object en voert de resultaten uit naar een stream. De XsltArgumentList functie bevat aanvullende runtime-argumenten. |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door het IXPathNavigable object en voert de resultaten uit naar een TextWriter. De XsltArgumentList functie bevat aanvullende runtime-argumenten. |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door het IXPathNavigable object en voert de resultaten uit naar een XmlWriter. De XsltArgumentList functie biedt extra runtime-argumenten en de XmlResolver functie XSLT |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door het IXPathNavigable object en voert de resultaten uit naar een XmlWriter. De XsltArgumentList functie bevat aanvullende runtime-argumenten. |
| Transform(String, String) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door de URI en voert de resultaten uit naar een bestand. |
| Transform(String, XmlWriter) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door de URI en voert de resultaten uit naar een XmlWriter. |
| Transform(String, XsltArgumentList, Stream) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door de URI en voert de resultaten uit die moeten worden gestreamd. De XsltArgumentList functie bevat aanvullende runtime-argumenten. |
| Transform(String, XsltArgumentList, TextWriter) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door de URI en voert de resultaten uit naar een TextWriter. |
| Transform(String, XsltArgumentList, XmlWriter) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door de URI en voert de resultaten uit naar een XmlWriter. De XsltArgumentList functie bevat aanvullende runtime-argumenten. |
| Transform(XmlReader, XmlWriter) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door het XmlReader object en voert de resultaten uit naar een XmlWriter. |
| Transform(XmlReader, XsltArgumentList, Stream) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door het XmlReader object en voert de resultaten uit naar een stream. De XsltArgumentList functie bevat aanvullende runtime-argumenten. |
| Transform(XmlReader, XsltArgumentList, TextWriter) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door het XmlReader object en voert de resultaten uit naar een TextWriter. De XsltArgumentList functie bevat aanvullende runtime-argumenten. |
| Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door het XmlReader object en voert de resultaten uit naar een XmlWriter. De XsltArgumentList functie biedt extra runtime-argumenten en de XmlResolver lost de XSLT-functie |
| Transform(XmlReader, XsltArgumentList, XmlWriter) |
Voert de transformatie uit met behulp van het invoerdocument dat is opgegeven door het XmlReader object en voert de resultaten uit naar een XmlWriter. De XsltArgumentList functie bevat aanvullende runtime-argumenten. |
Van toepassing op
Veiligheid thread
Het XslCompiledTransform object is thread veilig zodra het is geladen. Met andere woorden, nadat de Load methode is voltooid, kan de Transform methode tegelijkertijd worden aangeroepen vanuit meerdere threads.
Als de Load methode opnieuw wordt aangeroepen in de ene thread terwijl de Transform methode wordt aangeroepen in een andere thread, voltooit het XslCompiledTransform object het uitvoeren van de Transform aanroep door de oude status te blijven gebruiken. De nieuwe status wordt gebruikt wanneer de Load methode is voltooid.
De Load methode is niet threadveilig wanneer deze tegelijk vanuit meerdere threads wordt aangeroepen.