XslCompiledTransform Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
XSLT stil sayfası kullanarak XML verilerini dönüştürür.
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
- Devralma
-
XslCompiledTransform
- Öznitelikler
Örnekler
Aşağıdaki örnek bir dönüşümü yürütür ve bir dosyaya çıkış yapar.
// 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")
Örnekte aşağıdaki iki giriş dosyası kullanılır:
<?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>
Açıklamalar
XslCompiledTransform sınıfı, XSLT 1.0 söz dizimini destekleyen bir XSLT işlemcidir. Bu yeni bir uygulamadır ve eski XslTransform sınıfla karşılaştırıldığında performans kazanımları içerir. sınıfının yapısı XslCompiledTransform sınıfa XslTransform çok benzer. Load yöntemi stil sayfasını yükler ve derler, Transform yöntemi ise XSLT dönüşümünü yürütür.
XSLT document() işlevi ve eklenmiş betik blokları için destek varsayılan olarak devre dışıdır. Bu özellikler bir XsltSettings nesne oluşturulup yöntemine Load geçirilerek etkinleştirilebilir.
Daha fazla bilgi için bkz. XslCompiledTransform Sınıfını Kullanma ve XslTransform Sınıfından Geçiş.
Güvenlik konuları
sınıfını XslCompiledTransform kullanan bir uygulama oluştururken aşağıdaki öğelerin ve bunların etkilerinin farkında olmanız gerekir:
XSLT betiği varsayılan olarak devre dışıdır. XSLT betik oluşturma yalnızca betik desteğine ihtiyacınız varsa ve tam olarak güvenilir bir ortamda çalışıyorsanız etkinleştirilmelidir.
XSLT
document()işlevi varsayılan olarak devre dışıdır. İşlevi etkinleştirirseniz yönteminedocument()geçirerek ThrowingResolverTransform erişilebilen kaynakları kısıtlayın.Uzantı nesneleri varsayılan olarak etkindir. Uzantı nesnelerini içeren bir XsltArgumentList nesne yöntemine Transform geçirilirse, bunlar kullanılır.
XSLT stil sayfaları, diğer dosyalara ve ekli betik bloklarına başvurular içerebilir. Kötü amaçlı bir kullanıcı, veri veya stil sayfaları sağlayarak bu durumu kötüye kullanabilir. Bu dosyalar yürütüldüğünde bilgisayarınızın kaynakları yetersiz kalana kadar sisteminizin sürekli işlemesine neden olabilir.
Karışık güven ortamında çalışan XSLT uygulamaları stil sayfası aldatmacasına neden olabilir. Örneğin, kötü niyetli bir kullanıcı zararlı bir stil sayfası ile bir nesne yükleyebilir ve bunu başka bir kullanıcıya verir; bu kullanıcı daha sonra Transform yöntemini çağırarak dönüşümü gerçekleştirir.
Bu güvenlik sorunları, stil sayfası güvenilir bir kaynaktan gelmedikçe betik oluşturma veya işlevi etkinleştirmeyerek ve güvenilmeyen bir kaynaktan nesneler, XSLT stil sayfaları veya XML kaynak verileri kabul etmeyerek giderilebilir.
Oluşturucular
| Name | Description |
|---|---|
| XslCompiledTransform() |
XslCompiledTransform sınıfının yeni bir örneğini başlatır. |
| XslCompiledTransform(Boolean) |
Belirtilen hata ayıklama ayarıyla sınıfının yeni bir örneğini XslCompiledTransform başlatır. |
Özellikler
| Name | Description |
|---|---|
| OutputSettings |
Stil sayfasının öğesinden XmlWriterSettings türetilen çıkış bilgilerini içeren bir |
| TemporaryFiles |
yöntemine TempFileCollection yapılan başarılı bir çağrıdan sonra diskte oluşturulan geçici dosyaları içeren öğesini Load alır. |
Yöntemler
| Name | Description |
|---|---|
| CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) |
XSLT stil sayfasını belirtilen bir türe derler. |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| Load(IXPathNavigable, XsltSettings, XmlResolver) |
içinde IXPathNavigableyer alan XSLT stil sayfasını derler. tüm XmlResolver XSLT |
| Load(IXPathNavigable) |
Nesnede IXPathNavigable bulunan stil sayfasını derler. |
| Load(MethodInfo, Byte[], Type[]) |
yardımcı programı kullanılarak derlenmiş bir stil sayfasından |
| Load(String, XsltSettings, XmlResolver) |
URI tarafından belirtilen XSLT stil sayfasını yükler ve derler. tüm XmlResolver XSLT |
| Load(String) |
Belirtilen URI'de bulunan stil sayfasını yükler ve derler. |
| Load(Type) |
XSLT Derleyicisi (xsltc.exe) kullanılarak oluşturulan derlenmiş stil sayfasını yükler. |
| Load(XmlReader, XsltSettings, XmlResolver) |
içinde XmlReaderyer alan XSLT stil sayfasını derler. tüm XmlResolver XSLT |
| Load(XmlReader) |
içinde XmlReaderyer alan stil sayfasını derler. |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
| Transform(IXPathNavigable, XmlWriter) |
nesnesi tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi IXPathNavigable yürütür ve sonuçları öğesine XmlWritergönderir. |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Nesnesi tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi IXPathNavigable yürütür ve sonuçları bir akışa gönderir. ek XsltArgumentList çalışma zamanı bağımsız değişkenleri sağlar. |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
nesnesi tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi IXPathNavigable yürütür ve sonuçları öğesine TextWritergönderir. ek XsltArgumentList çalışma zamanı bağımsız değişkenleri sağlar. |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
nesnesi tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi IXPathNavigable yürütür ve sonuçları öğesine XmlWritergönderir. ek XsltArgumentList çalışma zamanı bağımsız değişkenleri sağlar ve XmlResolver XSLT |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
nesnesi tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi IXPathNavigable yürütür ve sonuçları öğesine XmlWritergönderir. ek XsltArgumentList çalışma zamanı bağımsız değişkenleri sağlar. |
| Transform(String, String) |
URI tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi yürütür ve sonuçları bir dosyaya gönderir. |
| Transform(String, XmlWriter) |
URI tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi yürütür ve sonuçları öğesine XmlWritergönderir. |
| Transform(String, XsltArgumentList, Stream) |
URI tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi yürütür ve sonuçları akışa alır. ek XsltArgumentList çalışma zamanı bağımsız değişkenleri sağlar. |
| Transform(String, XsltArgumentList, TextWriter) |
URI tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi yürütür ve sonuçları öğesine TextWritergönderir. |
| Transform(String, XsltArgumentList, XmlWriter) |
URI tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi yürütür ve sonuçları öğesine XmlWritergönderir. ek XsltArgumentList çalışma zamanı bağımsız değişkenleri sağlar. |
| Transform(XmlReader, XmlWriter) |
nesnesi tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi XmlReader yürütür ve sonuçları öğesine XmlWritergönderir. |
| Transform(XmlReader, XsltArgumentList, Stream) |
Nesnesi tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi XmlReader yürütür ve sonuçları bir akışa gönderir. ek XsltArgumentList çalışma zamanı bağımsız değişkenleri sağlar. |
| Transform(XmlReader, XsltArgumentList, TextWriter) |
nesnesi tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi XmlReader yürütür ve sonuçları öğesine TextWritergönderir. ek XsltArgumentList çalışma zamanı bağımsız değişkenleri sağlar. |
| Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) |
nesnesi tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi XmlReader yürütür ve sonuçları öğesine XmlWritergönderir. ek XsltArgumentList çalışma zamanı bağımsız değişkenleri sağlar ve XmlResolver XSLT |
| Transform(XmlReader, XsltArgumentList, XmlWriter) |
nesnesi tarafından belirtilen giriş belgesini kullanarak dönüştürmeyi XmlReader yürütür ve sonuçları öğesine XmlWritergönderir. ek XsltArgumentList çalışma zamanı bağımsız değişkenleri sağlar. |
Şunlara uygulanır
İş Parçacığı Güvenliği
XslCompiledTransform Nesne yüklendikten sonra iş parçacığı güvenlidir. Başka bir deyişle, yöntem başarıyla tamamlandıktan sonra Load , Transform yöntem birden çok iş parçacığından aynı anda çağrılabilir.
Load Yöntem başka bir iş parçacığında çağrılırken Transform yöntemi bir iş parçacığında yeniden çağrılırsa, XslCompiledTransform nesne eski durumu kullanmaya devam ederek çağrıyı yürütmeyi Transform tamamlar. Yöntem başarıyla tamamlandığında yeni durum kullanılır Load .
Load yöntemi, birden çok iş parçacığından aynı anda çağrıldığında iş parçacığı güvenli değildir.