XslTransform Sınıf

Tanım

Dikkat

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

Dönüşümler için Genişletilebilir Stil Sayfası Dili (XSLT) stil sayfası kullanarak XML verilerini dönüştürür.

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
Devralma
XslTransform
Öznitelikler

Örnekler

Aşağıdaki örnek, belirtilen XML belgesini dönüştürür ve sonucu konsola gönderir.

//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)

Açıklamalar

Not

XslTransform Sınıf, Microsoft .NET Framework sürüm 2.0'da kullanımdan kaldırıldı. XslCompiledTransform sınıfı yeni XSLT işlemcidir. Daha fazla bilgi için bkz. XslCompiledTransform Sınıfını Kullanma ve XslTransform Sınıfından Geçirme.

XslTransform XSLT 1.0 söz dizimini destekler. XSLT stil sayfası ad alanını http://www.w3.org/1999/XSL/Transformkullanmalıdır.

Sınıf kullanılarak XsltArgumentList stil sayfasına ek bağımsız değişkenler de eklenebilir. Bu sınıf, stil sayfası ve stil sayfasından çağrılabilen uzantı nesneleri için giriş parametreleri içerir.

XML verilerini dönüştürmek için:

  1. Bir XslTransform nesne oluşturun.

  2. Dönüştürme için Load stil sayfasını yüklemek için yöntemini kullanın. Bu yöntemin birkaç aşırı yüklemesi vardır ve dosya konumuna sahip bir XmlReader, XPathNavigator, IXPathNavigableveya URL kullanarak bir stil sayfası yükleyebilir.

  3. Transform XML verilerini dönüştürmek için yöntemini kullanın. Bu yöntemin çeşitli aşırı yüklemeleri vardır ve farklı giriş ve çıkış türlerini işleyebilir. Ayrıca, dönüştürme sırasında giriş olarak kullanılacak ek bağımsız değişkenler de belirtebilirsiniz XsltArgumentList .

Güvenlikle İlgili Dikkat Edilmesi Gerekenler

sınıfını XslTransform kullanan bir uygulama oluştururken aşağıdaki öğelerin ve bunların etkilerini bilmeniz gerekir:

  • 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 eklenmiş betik bloklarına başvurular içerebilir. Kötü amaçlı bir kullanıcı, yürütüldüğünde bilgisayarınızın kaynakları yetersiz olana kadar sisteminizin işlemesine neden olacak veri veya stil sayfaları sağlayarak bu durumdan yararlanabilir.

  • Karma güven ortamında çalışan XSLT uygulamaları stil sayfası sahtekarlığına neden olabilir. Örneğin, kötü amaçlı bir kullanıcı zararlı stil sayfası içeren bir nesneyi yükleyebilir ve daha sonra yöntemini çağıran Transform ve dönüştürmeyi yürüten başka bir kullanıcıya verebilir.

Bu güvenlik sorunları güvenilmeyen kaynaklardan nesneler, XSLT stil sayfaları veya XML kaynak verileri kabul XslTransform edilmeyerek azaltılabilir.

Betik Oluşturma Desteği

Bu sınıf, öğesini kullanarak msxsl:script ekli betik oluşturmayı destekler.

.NET Framework 1.1 sürümünde, stil sayfasının kanıtı eklenmiş betiklere hangi izinlerin verildiğini belirler.

  • Stil sayfası Tekdüzen Kaynak Tanımlayıcısı'ndan (URI) yüklendiyse, kanıtı oluşturmak için URI kullanılır. Bu kanıt, sitesi ve bölgesiyle birlikte URI'yi içerir.

  • Stil sayfası başka bir kaynak kullanılarak yüklendiyse, bir nesneyi yöntemine Load geçirerek System.Security.Policy.Evidence kanıt sağlayabilirsiniz. Aksi takdirde, betik derlemesi tam güvene sahiptir.

Yarı güvenilir arayanlar: UnmanagedCode Katıştırılmış betiği derlemek için izin gereklidir. ControlEvidence yöntemine sağlamak Evidence için Load izin gereklidir. Çağıranın gerekli izinleri yoksa oluşturulur SecurityException . Daha fazla bilgi için bkz System.Security.Permissions.SecurityPermission . ve System.Security.Permissions.SecurityPermissionFlag .

msxsl:script öğesi aşağıdaki gereksinimlere sahiptir:

  • msxsl:script öğesi ad alanına urn:schemas-microsoft-com:xslt aittir. Stil sayfası ad alanı bildirimini xmlns:msxsl=urn:schemas-microsoft-com:xsltiçermelidir.

  • msxsl:script öğesi, kullanılacak betik dilini belirten bir language öznitelik içerebilir. özniteliğinin language değeri aşağıdakilerden biri olmalıdır: C#, CSharp, VB, VisualBasic, JScript veya JavaScript. Dil adı büyük/küçük harfe duyarlı olmadığından JavaScript ve javascript'in her ikisi de geçerlidir. Bir language öznitelik belirtilmezse, varsayılan olarak JScript olur.

  • öğesi, msxsl:script betik bloğuyla ilişkili ad alanını temsil eden ön eki içeren bir implements-prefix öznitelik içermelidir. Bu ad alanı stil sayfasında tanımlanmalıdır. Stil sayfası, ad alanına göre gruplandırılmış birden çok betik bloğu içerebilir. Aynı ad alanında birden çok dile sahip betik bloklarınız olamaz. Betik blokları, betik bloklarının aynı ad alanında bulunması koşuluyla başka bir betik bloğunda tanımlanan bir işlevi çağırabilir. Betik bloğunun içeriği, betik dilinin kurallarına ve söz dizimine göre ayrıştırılır (özniteliği tarafından language sağlanır). Örneğin, bir C# betik bloğuna sahipseniz, yorumlara karakterlerin // ön eki eklenir. Açıklamalar geçerli XML içeriği olmalıdır.

Not

Betik bloklarını bir CDATA bölümünde sarmalamanız önerilir.

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

İşlevler öğesi içinde msxsl:script bildirilebilir. Aşağıdaki tabloda varsayılan olarak desteklenen ad alanları gösterilmektedir.

Desteklenen Ad Alanları Description
System Sistem sınıfları.
System.Collection Koleksiyon sınıfları.
System.Text Metin işleme sınıfları.
System.Xml Çekirdek XML sınıfları.
System.Xml.Xsl XSLT sınıfları.
System.Xml.XPath XML Yol Dili (XPath) sınıfları.

Betik işlevleri tarafından tanımlanan sağlanan bağımsız değişkenler ve dönüş değerleri, aşağıda listelenen World Wide Web Consortium (W3C) türlerinden biri olmalıdır. Aşağıdaki tabloda, XPath veya XSLT gibi W3C türleri ile ilgili .NET Framework sınıfları arasındaki eşleme ayrıntıları verilmektedir.

W3C Türü Eşdeğer .NET sınıfı
Dize (XPath) System.String
Boole dili (XPath) System.Boolean
Sayı (XPath) System.Double
Sonuç Ağacı Parçası (XSLT) System.Xml.XPath.XPathNavigator
Düğüm Kümesi (XPath) System.Xml.XPath.XPathNodeIterator

Betik işlevi şu sayısal türlerden birini kullanıyorsa: Int16, UInt16, Int32, UInt32, Int64, UInt64, Tek veya Ondalık, bu türler W3C XPath tür numarasıyla eşlenen Double olarak zorunlu kılındı.

Bağımsız değişken sonucunu gerekli türlerden birine dönüştüremeyen bir işlev çağrıldığında bir özel durum oluşturulur.

Not

msxsl:scriptve msxsl:node-list sınıfı tarafından XslTransform desteklenen ad alanından urn:schemas-microsoft-com:xslt yalnızca işlevlerdir.

XslTransform , bir uzantı mekanizması olarak ortak dil çalışma zamanı (CLR) kodunu kullanma özelliğine sahiptir. Bu, sınıfın bir örneğini sınıfa XslTransform geçirerek ve bir XSLT stil sayfasında ortak yöntemlerini çağırarak gerçekleştirilir. Anahtar sözcüğüyle params tanımlanan ve belirtilmemiş sayıda parametrenin geçirilmesine izin veren yöntemler bu senaryoda düzgün çalışmaz. Diğer ayrıntılar için bkz. parametreler .

Daha fazla bilgi için bkz . XslTransform Sınıfı ile XSLT Dönüşümleri.

Oluşturucular

XslTransform()

XslTransform sınıfının yeni bir örneğini başlatır.

Özellikler

XmlResolver
Kullanımdan kalktı.

XmlResolver yöntemi çağrıldığında dış kaynakları çözümlemek için kullanılan öğesini Transform ayarlar.

Yöntemler

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()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
Load(IXPathNavigable)
Kullanımdan kalktı.

içinde bulunan IXPathNavigableXSLT stil sayfasını yükler.

Load(IXPathNavigable, XmlResolver)
Kullanımdan kalktı.

içinde IXPathNavigablebulunan XSLT stil sayfasını yükler.

Load(IXPathNavigable, XmlResolver, Evidence)

içinde bulunan IXPathNavigableXSLT stil sayfasını yükler. Bu yöntem, kanıt belirterek stil sayfasının izinlerini sınırlamanıza olanak tanır.

Load(String)

URL tarafından belirtilen XSLT stil sayfasını yükler.

Load(String, XmlResolver)

URL tarafından belirtilen XSLT stil sayfasını yükler.

Load(XmlReader)
Kullanımdan kalktı.

içinde bulunan XmlReaderXSLT stil sayfasını yükler.

Load(XmlReader, XmlResolver)
Kullanımdan kalktı.

içinde bulunan XmlReaderXSLT stil sayfasını yükler.

Load(XmlReader, XmlResolver, Evidence)

içinde XmlReaderbulunan XSLT stil sayfasını yükler. Bu yöntem, kanıt belirterek stil sayfasının izinlerini sınırlamanıza olanak tanır.

Load(XPathNavigator)
Kullanımdan kalktı.

içinde bulunan XPathNavigatorXSLT stil sayfasını yükler.

Load(XPathNavigator, XmlResolver)
Kullanımdan kalktı.

içinde XPathNavigatorbulunan XSLT stil sayfasını yükler.

Load(XPathNavigator, XmlResolver, Evidence)

içinde bulunan XPathNavigatorXSLT stil sayfasını yükler. Bu yöntem, kanıt belirterek stil sayfasının izinlerini sınırlamanıza olanak tanır.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
Transform(IXPathNavigable, XsltArgumentList)
Kullanımdan kalktı.

belirtilen args öğesini kullanarak içindeki IXPathNavigable XML verilerini dönüştürür ve sonucu bir XmlReaderöğesine döndürür.

Transform(IXPathNavigable, XsltArgumentList, Stream)
Kullanımdan kalktı.

belirtilen args öğesini kullanarak içindeki IXPathNavigable XML verilerini dönüştürür ve sonucu öğesine Streamdöndürür.

Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)

belirtilen args öğesini kullanarak içindeki IXPathNavigable XML verilerini dönüştürür ve sonucu bir Streamöğesine döndürür.

Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Kullanımdan kalktı.

belirtilen args öğesini kullanarak içindeki IXPathNavigable XML verilerini dönüştürür ve sonucu öğesine TextWriterdöndürür.

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)

belirtilen args öğesini kullanarak içindeki IXPathNavigable XML verilerini dönüştürür ve sonucu bir TextWriteröğesine döndürür.

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)

belirtilen args öğesini kullanarak içindeki IXPathNavigable XML verilerini dönüştürür ve sonucu bir XmlReaderöğesine döndürür.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Kullanımdan kalktı.

belirtilen args öğesini kullanarak içindeki IXPathNavigable XML verilerini dönüştürür ve sonucu bir XmlWriteröğesine döndürür.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

belirtilen args öğesini kullanarak içindeki IXPathNavigable XML verilerini dönüştürür ve sonucu bir XmlWriteröğesine döndürür.

Transform(String, String)
Kullanımdan kalktı.

Giriş dosyasındaki XML verilerini dönüştürür ve sonucu bir çıkış dosyasına dönüştürür.

Transform(String, String, XmlResolver)

Giriş dosyasındaki XML verilerini dönüştürür ve sonucu bir çıkış dosyasına dönüştürür.

Transform(XPathNavigator, XsltArgumentList)
Kullanımdan kalktı.

belirtilen args öğesini kullanarak içindeki XPathNavigator XML verilerini dönüştürür ve sonucu bir XmlReaderöğesine döndürür.

Transform(XPathNavigator, XsltArgumentList, Stream)
Kullanımdan kalktı.

belirtilen args öğesini kullanarak içindeki XPathNavigator XML verilerini dönüştürür ve sonucu bir Streamöğesine döndürür.

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)

belirtilen args öğesini kullanarak içindeki XPathNavigator XML verilerini dönüştürür ve sonucu bir Streamöğesine döndürür.

Transform(XPathNavigator, XsltArgumentList, TextWriter)
Kullanımdan kalktı.

belirtilen args öğesini kullanarak içindeki XPathNavigator XML verilerini dönüştürür ve sonucu bir TextWriteröğesine döndürür.

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)

belirtilen args öğesini kullanarak içindeki XPathNavigator XML verilerini dönüştürür ve sonucu bir TextWriteröğesine döndürür.

Transform(XPathNavigator, XsltArgumentList, XmlResolver)

belirtilen args öğesini kullanarak içindeki XPathNavigator XML verilerini dönüştürür ve sonucu bir XmlReaderöğesine döndürür.

Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Kullanımdan kalktı.

belirtilen bağımsız değişkenleri kullanarak içindeki XPathNavigator XML verilerini dönüştürür ve sonucu bir XmlWriteröğesine döndürür.

Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)

belirtilen bağımsız değişkenleri kullanarak içindeki XPathNavigator XML verilerini dönüştürür ve sonucu bir XmlWriteröğesine döndürür.

Şunlara uygulanır

İş Parçacığı Güvenliği

XslTransform nesneleri yalnızca dönüştürme işlemleri için iş parçacığı açısından güvenlidir. Diğer işlemlerin iş parçacığı açısından güvenli olması garanti değildir. Yük işlemleri sırasında nesnede başka hiçbir yöntemin çağrılmadığından emin olmanız gerekir.