XslTransform Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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:
Utwórz XslTransform obiekt.
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.
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:scriptnależy dourn:schemas-microsoft-com:xsltprzestrzeni nazw. Arkusz stylów musi zawierać deklaracjęxmlns:msxsl=urn:schemas-microsoft-com:xsltprzestrzeni nazw .Element
msxsl:scriptmoże zawieraćlanguageatrybut określający język skryptowy do użycia. Wartość atrybutulanguagemusi 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.languageJeśli atrybut nie zostanie określony, zostanie on domyślnie określony jako JScript.Element
msxsl:scriptmusi zawieraćimplements-prefixatrybut 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 (dostarczonegolanguageprzez 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 |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Przestarzałe.
Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonego |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Przestarzałe.
Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonego |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Przestarzałe.
Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonego |
| Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Przestarzałe.
Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonej wartości |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Przestarzałe.
Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonej wartości |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Przestarzałe.
Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonej wartości |
| Transform(IXPathNavigable, XsltArgumentList) |
Przestarzałe.
Przekształca dane XML w obiekcie IXPathNavigable przy użyciu określonej wartości |
| 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 |
| Transform(XPathNavigator, XsltArgumentList, Stream) |
Przestarzałe.
Przekształca dane XML w obiekcie XPathNavigator przy użyciu określonego |
| Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Przestarzałe.
Przekształca dane XML w obiekcie XPathNavigator przy użyciu określonego |
| Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Przestarzałe.
Przekształca dane XML w obiekcie XPathNavigator przy użyciu określonego |
| Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Przestarzałe.
Przekształca dane XML w obiekcie XPathNavigator przy użyciu określonej wartości |
| 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 |
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.