XslTransform 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.
Dikkat
This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202
Dönüştürmeler 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
Açıklamalar
Note
XslTransform sınıfı, Microsoft .NET Framework sürüm 2.0'da kullanım dışıdır. 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çiş.
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:
Bir XslTransform nesne oluşturun.
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.
Transform XML verilerini dönüştürmek için yöntemini kullanın. Bu yöntemin birkaç aşırı yüklemesi 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 etkilerinin farkında olmanız 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 ekli 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.
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ı, güvenilmeyen kaynaklardan nesneler, XSLT stil sayfaları veya XML kaynak verileri kabul XslTransform edilmeyerek azaltılabilir.
Betik Desteği
Bu sınıf, öğesini kullanarak msxsl:script ekli betik oluşturmayı destekler.
.NET Framework'ün 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 izinlere sahip olmaması durumunda bir SecurityException oluşturulur. 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ınaurn:schemas-microsoft-com:xsltaittir. Stil sayfası ad alanı bildiriminixmlns:msxsl=urn:schemas-microsoft-com:xsltiçermelidir.msxsl:scriptöğesi, kullanılacak betik dilini belirten birlanguageöznitelik içerebilir. özniteliğininlanguagedeğ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. Birlanguageöznitelik belirtilmezse, varsayılan olarak JScript olur.öğesi,
msxsl:scriptbetik bloğuyla ilişkili ad alanını temsil eden ön eki içeren birimplements-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 dil içeren betik bloklarınız olamaz. Betik blokları, betik blokları aynı ad alanında yer alırsa, başka bir betik bloğunda tanımlanan bir işlevi çağırabilir. Betik bloğunun içeriği, betik dilinin (özniteliği tarafındanlanguagesağlanan) kurallarına ve söz dizimine göre ayrıştırılır. Örneğin, bir C# betik bloğuna sahipseniz, yorumlara karakterler ön eklenmelidir//. Açıklamaların geçerli XML içeriği olması gerekir.
Note
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, Single veya Decimal, bu türler Double olarak zorunlu tutularak W3C XPath tür numarasıyla eşlenir.
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.
Note
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, bir sınıfın örneğini sınıfa XslTransform geçirerek ve bir XSLT stil sayfasında genel yöntemlerini çağırarak gerçekleştirilir. Anahtar sözcüğüyle params tanımlanan ve belirtilmeyen 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üştürmeleri.
Oluşturucular
| Name | Description |
|---|---|
| XslTransform() |
Geçersiz.
XslTransform sınıfının yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| XmlResolver |
Geçersiz.
XmlResolver Yöntemi çağrıldığında dış kaynakları çözümlemek için kullanılan öğesini Transform ayarlar. |
Yöntemler
| Name | Description |
|---|---|
| Equals(Object) |
Geçersiz.
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetHashCode() |
Geçersiz.
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetType() |
Geçersiz.
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| Load(IXPathNavigable, XmlResolver, Evidence) |
Geçersiz.
içinde IXPathNavigablebulunan 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(IXPathNavigable, XmlResolver) |
Geçersiz.
içinde IXPathNavigablebulunan XSLT stil sayfasını yükler. |
| Load(IXPathNavigable) |
Geçersiz.
içinde IXPathNavigablebulunan XSLT stil sayfasını yükler. |
| Load(String, XmlResolver) |
Geçersiz.
URL tarafından belirtilen XSLT stil sayfasını yükler. |
| Load(String) |
Geçersiz.
URL tarafından belirtilen XSLT stil sayfasını yükler. |
| Load(XmlReader, XmlResolver, Evidence) |
Geçersiz.
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(XmlReader, XmlResolver) |
Geçersiz.
içinde XmlReaderbulunan XSLT stil sayfasını yükler. |
| Load(XmlReader) |
Geçersiz.
içinde XmlReaderbulunan XSLT stil sayfasını yükler. |
| Load(XPathNavigator, XmlResolver, Evidence) |
Geçersiz.
içinde XPathNavigatorbulunan 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, XmlResolver) |
Geçersiz.
içinde XPathNavigatorbulunan XSLT stil sayfasını yükler. |
| Load(XPathNavigator) |
Geçersiz.
içinde XPathNavigatorbulunan XSLT stil sayfasını yükler. |
| MemberwiseClone() |
Geçersiz.
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ToString() |
Geçersiz.
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
| Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver) |
Geçersiz.
belirtilen IXPathNavigable öğesini kullanarak içindeki |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Geçersiz.
belirtilen IXPathNavigable öğesini kullanarak içindeki |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Geçersiz.
belirtilen IXPathNavigable öğesini kullanarak içindeki |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Geçersiz.
belirtilen IXPathNavigable öğesini kullanarak içindeki |
| Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Geçersiz.
belirtilen IXPathNavigable öğesini kullanarak içindeki |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Geçersiz.
belirtilen IXPathNavigable öğesini kullanarak içindeki |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Geçersiz.
belirtilen IXPathNavigable öğesini kullanarak içindeki |
| Transform(IXPathNavigable, XsltArgumentList) |
Geçersiz.
belirtilen IXPathNavigable öğesini kullanarak içindeki |
| Transform(String, String, XmlResolver) |
Geçersiz.
Giriş dosyasındaki XML verilerini dönüştürür ve sonucu bir çıkış dosyasına döndürür. |
| Transform(String, String) |
Geçersiz.
Giriş dosyasındaki XML verilerini dönüştürür ve sonucu bir çıkış dosyasına döndürür. |
| Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) |
Geçersiz.
belirtilen XPathNavigator öğesini kullanarak içindeki |
| Transform(XPathNavigator, XsltArgumentList, Stream) |
Geçersiz.
belirtilen XPathNavigator öğesini kullanarak içindeki |
| Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Geçersiz.
belirtilen XPathNavigator öğesini kullanarak içindeki |
| Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Geçersiz.
belirtilen XPathNavigator öğesini kullanarak içindeki |
| Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Geçersiz.
belirtilen XPathNavigator öğesini kullanarak içindeki |
| Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) |
Geçersiz.
belirtilen birleştirmeleri kullanarak içindeki XPathNavigator XML verilerini dönüştürür ve sonucu öğesine XmlWriterdöndürür. |
| Transform(XPathNavigator, XsltArgumentList, XmlWriter) |
Geçersiz.
belirtilen birleştirmeleri kullanarak içindeki XPathNavigator XML verilerini dönüştürür ve sonucu öğesine XmlWriterdöndürür. |
| Transform(XPathNavigator, XsltArgumentList) |
Geçersiz.
belirtilen XPathNavigator öğesini kullanarak içindeki |
Ş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 nesne üzerinde başka hiçbir yöntemin çağrılmadığından emin olmanız gerekir.