XslTransform Klasa

Definicja

Uwaga

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

Przekształca dane XML przy użyciu rozszerzonego arkusza stylów języka przekształceń (XSLT).

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
Dziedziczenie
XslTransform
Atrybuty

Uwagi

Uwaga / Notatka

Klasa XslTransform jest przestarzała w programie Microsoft .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class (Używanie klasy XslCompiledTransform ) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).

XslTransform obsługuje składnię XSLT 1.0. Arkusz stylów XSLT musi używać przestrzeni nazw http://www.w3.org/1999/XSL/Transform.

Dodatkowe argumenty można również dodać do arkusza stylów przy użyciu XsltArgumentList klasy . Ta klasa zawiera parametry wejściowe dla arkusza stylów i obiektów rozszerzeń, które mogą być wywoływane z arkusza stylów.

Aby przekształcić dane XML:

  1. Utwórz XslTransform obiekt.

  2. Load Użyj metody , aby załadować arkusz stylów do przekształcenia. Ta metoda ma kilka przeciążeń i może załadować arkusz stylów przy użyciu XmlReaderadresu URL , XPathNavigatorIXPathNavigablelub adresu URL z lokalizacją pliku.

  3. Transform Użyj metody , aby przekształcić dane XML. Ta metoda ma kilka przeciążeń i może obsługiwać różne typy danych wejściowych i wyjściowych. Można również określić XsltArgumentList zawierający dodatkowe argumenty, które mają być używane jako dane wejściowe podczas transformacji.

Zagadnienia związane z zabezpieczeniami

Podczas tworzenia aplikacji korzystającej XslTransform z klasy należy pamiętać o następujących elementach i ich implikacjach:

  • Obiekty rozszerzenia są domyślnie włączone. XsltArgumentList Jeśli obiekt zawierający obiekty rozszerzenia jest przekazywany do Transform metody, są one używane.

  • Arkusze stylów XSLT mogą zawierać odwołania do innych plików i bloków skryptów osadzonych. Złośliwy użytkownik może wykorzystać ten problem, dostarczając dane lub arkusze stylów, które po wykonaniu spowodują przetworzenie systemu do momentu, gdy komputer nie będzie działać nisko na zasobach.

  • Aplikacje XSLT działające w środowisku mieszanego zaufania mogą powodować fałszowanie arkuszy stylów. Na przykład złośliwy użytkownik może załadować obiekt ze szkodliwym arkuszem stylów i przekazać go innemu użytkownikowi, który następnie wywołuje Transform metodę i wykonuje przekształcenie.

Te problemy z zabezpieczeniami można rozwiązać, nie akceptując XslTransform obiektów, arkuszy stylów XSLT ani danych źródłowych XML z niezaufanych źródeł.

Obsługa skryptów

Ta klasa obsługuje skrypty osadzone przy użyciu msxsl:script elementu .

W wersji 1.1 struktury .NET dowody arkusza stylów określają, jakie uprawnienia są podane do skryptów osadzonych.

  • Jeśli arkusz stylów został załadowany z identyfikatora URI (Uniform Resource Identifier), identyfikator URI jest używany do tworzenia dowodów. Te dowody obejmują identyfikator URI wraz z jego witryną i strefą.

  • Jeśli arkusz stylów został załadowany przy użyciu innego źródła, możesz podać dowód, przekazując System.Security.Policy.Evidence obiekt do Load metody . W przeciwnym razie zestaw skryptów ma pełne zaufanie.

Częściowo zaufane wywołujące: UnmanagedCode do skompilowania osadzonego skryptu jest wymagane uprawnienie. ControlEvidence do podania EvidenceLoad metody jest wymagane uprawnienie. Obiekt SecurityException jest zgłaszany, jeśli obiekt wywołujący nie ma niezbędnych uprawnień. Aby uzyskać więcej informacji, zobacz System.Security.Permissions.SecurityPermission i System.Security.Permissions.SecurityPermissionFlag.

Element msxsl:script ma następujące wymagania:

  • Element msxsl:script należy do urn:schemas-microsoft-com:xslt przestrzeni nazw. Arkusz stylów musi zawierać deklarację xmlns:msxsl=urn:schemas-microsoft-com:xsltprzestrzeni nazw .

  • Element msxsl:script może zawierać language atrybut określający język skryptowy do użycia. Wartość atrybutu language musi być jedną z następujących wartości: C#, CSharp, VB, VisualBasic, JScript lub JavaScript. Ponieważ nazwa języka nie uwzględnia wielkości liter, język JavaScript i javascript są prawidłowe. language Jeśli atrybut nie zostanie określony, zostanie on domyślnie określony jako JScript.

  • Element msxsl:script musi zawierać implements-prefix atrybut zawierający prefiks reprezentujący przestrzeń nazw skojarzona z blokiem skryptu. Ta przestrzeń nazw musi być zdefiniowana w arkuszu stylów. Arkusz stylów może zawierać wiele bloków skryptów, które są pogrupowane według przestrzeni nazw. Nie można mieć bloków skryptów z wieloma językami w tej samej przestrzeni nazw. Bloki skryptów mogą wywoływać funkcję zdefiniowaną w innym bloku skryptu, pod warunkiem że bloki skryptu znajdują się w tej samej przestrzeni nazw. Zawartość bloku skryptu jest analizowana zgodnie z regułami i składnią języka skryptowego (dostarczonego language przez atrybut). Jeśli na przykład masz blok skryptu języka C#, komentarze będą poprzedzone znakami // . Komentarze muszą być prawidłową zawartością XML.

Uwaga / Notatka

Zaleca się zawijanie bloków skryptów w sekcji CDATA.

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

Funkcje można zadeklarować w elemecie msxsl:script . W poniższej tabeli przedstawiono przestrzenie nazw, które są domyślnie obsługiwane.

Obsługiwane przestrzenie nazw Description
System Klasy systemowe.
System.Collection Klasy kolekcji.
System.Text Klasy obsługi tekstu.
System.Xml Podstawowe klasy XML.
System.Xml.Xsl Klasy XSLT.
System.Xml.XPath Klasy języka ścieżki XML (XPath).

Podane argumenty i wartości zwracane zdefiniowane przez funkcje skryptu muszą być jednym z typów World Wide Web Consortium (W3C) wymienionych poniżej. W poniższej tabeli szczegółowo przedstawiono mapowanie między typami W3C, XPath lub XSLT oraz odpowiednimi klasami platformy .NET Framework.

Typ W3C Równoważna klasa .NET
Ciąg (XPath) System.String
Wartość logiczna (XPath) System.Boolean
Liczba (XPath) System.Double
Fragment drzewa wyników (XSLT) System.Xml.XPath.XPathNavigator
Zestaw węzłów (XPath) System.Xml.XPath.XPathNodeIterator

Jeśli funkcja script korzysta z jednego z następujących typów liczbowych: Int16, UInt16, Int32, UInt32, Int64, UInt64, Single lub Decimal, te typy są coerced na Double, które są mapowane na numer typu XPath W3C.

Wyjątek jest zgłaszany, gdy wywoływana jest funkcja, która nie może przekonwertować wyniku argumentu na jeden z wymaganych typów.

Uwaga / Notatka

msxsl:script i msxsl:node-list są jedynymi funkcjami z urn:schemas-microsoft-com:xslt przestrzeni nazw, które są obsługiwane przez klasę XslTransform .

XslTransform program ma możliwość korzystania z kodu środowiska uruchomieniowego języka wspólnego (CLR) jako mechanizmu rozszerzenia. Jest to realizowane przez przekazanie wystąpienia klasy do XslTransform klasy i wywołanie jej metod publicznych w arkuszu stylów XSLT. Metody zdefiniowane za pomocą słowa kluczowego params , które umożliwiają przekazanie nieokreślonej liczby parametrów, nie działają poprawnie w tym scenariuszu. Aby uzyskać więcej informacji, zobacz parametry .

Aby uzyskać więcej informacji, zobacz Przekształcenia XSLT za pomocą klasy XslTransform.

Konstruktory

Nazwa Opis
XslTransform()
Przestarzałe.

Inicjuje nowe wystąpienie klasy XslTransform.

Właściwości

Nazwa Opis
XmlResolver
Przestarzałe.

Ustawia metodę XmlResolver używaną do rozpoznawania zasobów zewnętrznych podczas wywoływanej Transform metody.

Metody

Nazwa Opis
Equals(Object)
Przestarzałe.

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
GetHashCode()
Przestarzałe.

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()
Przestarzałe.

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
Load(IXPathNavigable, XmlResolver, Evidence)
Przestarzałe.

Ładuje arkusz stylów XSLT zawarty w pliku IXPathNavigable. Ta metoda umożliwia ograniczenie uprawnień arkusza stylów przez określenie dowodów.

Load(IXPathNavigable, XmlResolver)
Przestarzałe.

Ładuje arkusz stylów XSLT zawarty w pliku IXPathNavigable.

Load(IXPathNavigable)
Przestarzałe.

Ładuje arkusz stylów XSLT zawarty w pliku IXPathNavigable.

Load(String, XmlResolver)
Przestarzałe.

Ładuje arkusz stylów XSLT określony przez adres URL.

Load(String)
Przestarzałe.

Ładuje arkusz stylów XSLT określony przez adres URL.

Load(XmlReader, XmlResolver, Evidence)
Przestarzałe.

Ładuje arkusz stylów XSLT zawarty w pliku XmlReader. Ta metoda umożliwia ograniczenie uprawnień arkusza stylów przez określenie dowodów.

Load(XmlReader, XmlResolver)
Przestarzałe.

Ładuje arkusz stylów XSLT zawarty w pliku XmlReader.

Load(XmlReader)
Przestarzałe.

Ładuje arkusz stylów XSLT zawarty w pliku XmlReader.

Load(XPathNavigator, XmlResolver, Evidence)
Przestarzałe.

Ładuje arkusz stylów XSLT zawarty w pliku XPathNavigator. Ta metoda umożliwia ograniczenie uprawnień arkusza stylów przez określenie dowodów.

Load(XPathNavigator, XmlResolver)
Przestarzałe.

Ładuje arkusz stylów XSLT zawarty w pliku XPathNavigator.

Load(XPathNavigator)
Przestarzałe.

Ładuje arkusz stylów XSLT zawarty w pliku XPathNavigator.

MemberwiseClone()
Przestarzałe.

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
ToString()
Przestarzałe.

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
Przestarzałe.

Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonego args elementu i generuje wynik na Streamwartość .

Transform(IXPathNavigable, XsltArgumentList, Stream)
Przestarzałe.

Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonego args elementu i generuje wynik na Streamwartość .

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
Przestarzałe.

Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonego args elementu i generuje wynik na TextWriterwartość .

Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Przestarzałe.

Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonego args elementu i generuje wynik na TextWriterwartość .

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
Przestarzałe.

Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonej wartości args i zwraca wynik na XmlReader.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
Przestarzałe.

Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonej wartości args i zwraca wynik na XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Przestarzałe.

Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonej wartości args i zwraca wynik na XmlWriter.

Transform(IXPathNavigable, XsltArgumentList)
Przestarzałe.

Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonej wartości args i zwraca wynik na XmlReader.

Transform(String, String, XmlResolver)
Przestarzałe.

Przekształca dane XML w pliku wejściowym i zwraca wynik do pliku wyjściowego.

Transform(String, String)
Przestarzałe.

Przekształca dane XML w pliku wejściowym i zwraca wynik do pliku wyjściowego.

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
Przestarzałe.

Przekształca dane XML w obiekcie XPathNavigator przy użyciu określonego args elementu i generuje wynik na Streamwartość .

Transform(XPathNavigator, XsltArgumentList, Stream)
Przestarzałe.

Przekształca dane XML w obiekcie XPathNavigator przy użyciu określonego args elementu i generuje wynik na Streamwartość .

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
Przestarzałe.

Przekształca dane XML w obiekcie XPathNavigator przy użyciu określonego args elementu i generuje wynik na TextWriterwartość .

Transform(XPathNavigator, XsltArgumentList, TextWriter)
Przestarzałe.

Przekształca dane XML w obiekcie XPathNavigator przy użyciu określonego args elementu i generuje wynik na TextWriterwartość .

Transform(XPathNavigator, XsltArgumentList, XmlResolver)
Przestarzałe.

Przekształca dane XML w obiekcie XPathNavigator przy użyciu określonej wartości args i zwraca wynik na XmlReader.

Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
Przestarzałe.

Przekształca dane XML w obiekcie XPathNavigator przy użyciu określonych wartości args i generuje wynik na XmlWriter.

Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Przestarzałe.

Przekształca dane XML w obiekcie XPathNavigator przy użyciu określonych wartości args i generuje wynik na XmlWriter.

Transform(XPathNavigator, XsltArgumentList)
Przestarzałe.

Przekształca dane XML w obiekcie XPathNavigator przy użyciu określonej wartości args i zwraca wynik na XmlReader.

Dotyczy

Bezpieczeństwo wątkowe

XslTransform obiekty są bezpieczne wątkowo tylko w przypadku operacji przekształcania. Inne operacje nie są gwarantowane jako bezpieczne wątkowo. Należy upewnić się, że podczas operacji ładowania nie są wywoływane żadne inne metody dla obiektu.