XslTransform Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Figyelemfelhívás
This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202
Átalakítja az XML-adatokat egy XSLT(Extensible Stylesheet Language for Transformations) stíluslap használatával.
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
- Öröklődés
-
XslTransform
- Attribútumok
Megjegyzések
Note
A XslTransform osztály elavult a Microsoft .NET Framework 2.0-s verziójában. Az XslCompiledTransform osztály az új XSLT-processzor. További információ: Az XslCompiledTransform osztály használata és áttelepítés az XslTransform osztályból.
XslTransform támogatja az XSLT 1.0 szintaxist. Az XSLT stíluslapnak a névteret http://www.w3.org/1999/XSL/Transformkell használnia.
Az osztály használatával további argumentumok is hozzáadhatók a stíluslaphoz XsltArgumentList . Ez az osztály bemeneti paramétereket tartalmaz a stíluslaphoz és a stíluslapról meghívható bővítményobjektumokhoz.
XML-adatok átalakítása:
Hozzon létre egy objektumot XslTransform .
Ezzel a Load módszerrel töltheti be az átalakítás stíluslapját. Ez a metódus több túlterheléssel rendelkezik, és betölthet egy stíluslapot egy XmlReader, XPathNavigator, IXPathNavigablevagy egy URL-cím használatával a fájl helyével.
A metódus használatával Transform átalakíthatja az XML-adatokat. Ez a módszer több túlterhelést is képes kezelni, és különböző típusú bemeneteket és kimeneteket képes kezelni. Megadhat egy XsltArgumentList további argumentumokat is, amelyek bemenetként használhatók az átalakítás során.
Biztonsági szempontok
Az osztályt használó XslTransform alkalmazás létrehozásakor tisztában kell lennie a következő elemekkel és azok következményeival:
A bővítményobjektumok alapértelmezés szerint engedélyezve vannak. Ha egy XsltArgumentList bővítményobjektumokat tartalmazó objektumot ad át a Transform metódusnak, a rendszer ezeket használja.
Az XSLT-stíluslapok tartalmazhatnak más fájlokra és beágyazott szkriptblokkokra mutató hivatkozásokat. A rosszindulatú felhasználók kihasználhatják ezt azáltal, hogy olyan adatokat vagy stíluslapokat ad meg Önnek, amelyek végrehajtásakor a rendszer addig fog feldolgozni, amíg a számítógép nem fut kevés erőforrással.
A vegyes megbízhatósági környezetben futó XSLT-alkalmazások stíluslap-hamisítást eredményezhetnek. Egy rosszindulatú felhasználó például betölthet egy objektumot egy káros stíluslappal, és átadhatja azt egy másik felhasználónak, aki később meghívja a Transform metódust, és végrehajtja az átalakítást.
Ezek a biztonsági problémák azzal háríthatók el, hogy nem fogadnak el XslTransform nem megbízható forrásokból származó objektumokat, XSLT-stíluslapokat vagy XML-forrásadatokat.
Parancsfájl-támogatás
Ez az osztály támogatja az elem használatával történő beágyazott szkriptelést msxsl:script .
A .NET-keretrendszer 1.1-es verziójában a stíluslap bizonyítéka határozza meg, hogy milyen engedélyeket kapnak a beágyazott szkriptek.
Ha a stíluslap egy egységes erőforrás-azonosítóból (URI) lett betöltve, a rendszer az URI használatával hozza létre a bizonyítékot. Ez a bizonyíték magában foglalja az URI-t a helyével és a zónájával együtt.
Ha a stíluslap egy másik forrásból lett betöltve, az objektumnak a System.Security.Policy.Evidence metódusnak való átadásával Load bizonyítható. Ellenkező esetben a szkriptszerelvény teljes megbízhatósági kapcsolatmal rendelkezik.
Félig megbízható hívók: UnmanagedCode a beágyazott szkript fordításához engedély szükséges.
ControlEvidence a metódus megadásához EvidenceLoad engedélyre van szükség. Az A SecurityException akkor lesz eldobva, ha a hívó nem rendelkezik a szükséges engedélyekkel. További információért tekintse meg a System.Security.Permissions.SecurityPermission és a System.Security.Permissions.SecurityPermissionFlag.
Az msxsl:script elemre a következő követelmények vonatkoznak:
Az
msxsl:scriptelem aurn:schemas-microsoft-com:xsltnévtérhez tartozik. A stíluslapnak tartalmaznia kell a névtér deklarációjátxmlns:msxsl=urn:schemas-microsoft-com:xslt.Az
msxsl:scriptelem tartalmazhat egylanguageattribútumot, amely meghatározza a használni kívánt szkriptnyelvet. Az attribútum értékének alanguagekövetkezők egyikének kell lennie: C#, CSharp, VB, VisualBasic, JScript vagy JavaScript. Mivel a nyelv neve nem megkülönbözteti a kis- és nagybetűket, a JavaScript és a JavaScript egyaránt érvényes. Ha nincslanguagemegadva attribútum, az alapértelmezés szerint JScript lesz.Az
msxsl:scriptelemnek tartalmaznia kell egyimplements-prefixattribútumot, amely tartalmazza a szkriptblokkhoz társított névteret képviselő előtagot. Ezt a névteret a stíluslapon belül kell meghatározni. A stíluslapok több szkriptblokkot is tartalmazhatnak, amelyek névtér szerint vannak csoportosítva. Nem rendelkezhet több nyelvvel rendelkező szkriptblokkokkal ugyanabban a névtérben. A szkriptblokkok meghívhatnak egy másik szkriptblokkban definiált függvényt, feltéve, hogy a szkriptblokkok ugyanabban a névtérben találhatók. A szkriptblokk tartalma a szkriptnyelv szabályainak és szintaxisának megfelelően van elemezve (azlanguageattribútum adja meg). Ha például C#-szkriptblokkja van, a megjegyzések előtagja a//karakterek lesznek. A megjegyzéseknek érvényes XML-tartalomnak kell lenniük.
Note
Javasoljuk, hogy egy CDATA szakaszban törje körbe a szkriptblokkokat.
<msxsl:script implements-prefix='xy' language='C#'>
<![CDATA[
// Add code here.
]]>
</msxsl:script>
A függvények deklarálhatók az elemen msxsl:script belül. Az alábbi táblázat az alapértelmezés szerint támogatott névtereket mutatja be.
| Támogatott névterek | Leírás |
|---|---|
System |
Rendszerosztályok. |
System.Collection |
Gyűjteményosztályok. |
System.Text |
Szövegkezelő osztályok. |
System.Xml |
Alapvető XML-osztályok. |
System.Xml.Xsl |
XSLT-osztályok. |
System.Xml.XPath |
XML Path Language (XPath) osztályok. |
A szkriptfüggvények által megadott argumentumoknak és visszatérési értékeknek az alább felsorolt World Wide Web Consortium (W3C) típusok egyikének kell lenniük. Az alábbi táblázat a W3C-típusok (XPath vagy XSLT) és a megfelelő .NET keretrendszerosztályok közötti leképezést ismerteti.
| W3C-típus | Egyenértékű .NET osztály |
|---|---|
| Sztring (XPath) | System.String |
| Logikai (XPath) | System.Boolean |
| Szám (XPath) | System.Double |
| Eredményfatöredék (XSLT) | System.Xml.XPath.XPathNavigator |
| Csomópontkészlet (XPath) | System.Xml.XPath.XPathNodeIterator |
Ha a szkriptfüggvény a következő numerikus típusok egyikét használja: Int16, UInt16, Int32, UInt32, Int64, UInt64, Single vagy Decimális, ezek a típusok dupla értékre vannak kényszerítve, amely a W3C XPath-típusszámra van leképezve.
Kivétel akkor keletkezik, ha olyan függvényt hívunk meg, amely nem tudja átalakítani az argumentum eredményét a szükséges típusok egyikére.
Note
msxsl:script és msxsl:node-list azok az egyetlen függvények a urn:schemas-microsoft-com:xslt névtérből, amelyeket az XslTransform osztály támogat.
XslTransform képes a közös nyelvi futtatókörnyezeti (CLR) kód bővítménymechanizmusként való használatára. Ez úgy érhető el, hogy átad egy osztálypéldányt az XslTransform osztálynak, és meghívja annak nyilvános metódusait egy XSLT-stíluslapon. A kulcsszóval params definiált metódusok, amelyek meghatározatlan számú paraméter átadását teszik lehetővé, ebben a forgatókönyvben nem működnek megfelelően. További részletekért lásd a paramokat .
További információ: XSLT-átalakítások az XslTransform osztálysal.
Konstruktorok
| Name | Description |
|---|---|
| XslTransform() |
Elavult.
Inicializálja a XslTransform osztály új példányát. |
Tulajdonságok
| Name | Description |
|---|---|
| XmlResolver |
Elavult.
Beállítja a XmlResolver külső erőforrások feloldásához használt erőforrásokat a Transform metódus meghívásakor. |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Elavult.
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Elavult.
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Elavult.
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| Load(IXPathNavigable, XmlResolver, Evidence) |
Elavult.
Betölti a fájlban IXPathNavigabletalálható XSLT-stíluslapot. Ez a módszer lehetővé teszi a stíluslap engedélyeinek korlátozását bizonyíték megadásával. |
| Load(IXPathNavigable, XmlResolver) |
Elavult.
Betölti a fájlban IXPathNavigabletalálható XSLT-stíluslapot. |
| Load(IXPathNavigable) |
Elavult.
Betölti a fájlban IXPathNavigabletalálható XSLT-stíluslapot. |
| Load(String, XmlResolver) |
Elavult.
Betölti az URL-cím által megadott XSLT stíluslapot. |
| Load(String) |
Elavult.
Betölti az URL-cím által megadott XSLT stíluslapot. |
| Load(XmlReader, XmlResolver, Evidence) |
Elavult.
Betölti a fájlban XmlReadertalálható XSLT-stíluslapot. Ez a módszer lehetővé teszi a stíluslap engedélyeinek korlátozását bizonyíték megadásával. |
| Load(XmlReader, XmlResolver) |
Elavult.
Betölti a fájlban XmlReadertalálható XSLT-stíluslapot. |
| Load(XmlReader) |
Elavult.
Betölti a fájlban XmlReadertalálható XSLT-stíluslapot. |
| Load(XPathNavigator, XmlResolver, Evidence) |
Elavult.
Betölti a fájlban XPathNavigatortalálható XSLT-stíluslapot. Ez a módszer lehetővé teszi a stíluslap engedélyeinek korlátozását bizonyíték megadásával. |
| Load(XPathNavigator, XmlResolver) |
Elavult.
Betölti a fájlban XPathNavigatortalálható XSLT-stíluslapot. |
| Load(XPathNavigator) |
Elavult.
Betölti a fájlban XPathNavigatortalálható XSLT-stíluslapot. |
| MemberwiseClone() |
Elavult.
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Elavult.
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
| Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver) |
Elavult.
Átalakítja az XML-adatokat a IXPathNavigable megadott |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Elavult.
Átalakítja az XML-adatokat a IXPathNavigable megadott |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Elavult.
Átalakítja az XML-adatokat a IXPathNavigable megadott |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Elavult.
Átalakítja az XML-adatokat a IXPathNavigable megadott |
| Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Elavult.
Átalakítja az XML-adatokat a IXPathNavigable megadott |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Elavult.
Átalakítja az XML-adatokat a IXPathNavigable megadott |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Elavult.
Átalakítja az XML-adatokat a IXPathNavigable megadott |
| Transform(IXPathNavigable, XsltArgumentList) |
Elavult.
Átalakítja az XML-adatokat a IXPathNavigable megadott |
| Transform(String, String, XmlResolver) |
Elavult.
Átalakítja a bemeneti fájl XML-adatait, és kimenetfájllá alakítja az eredményt. |
| Transform(String, String) |
Elavult.
Átalakítja a bemeneti fájl XML-adatait, és kimenetfájllá alakítja az eredményt. |
| Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) |
Elavult.
Átalakítja az XML-adatokat a XPathNavigator megadott |
| Transform(XPathNavigator, XsltArgumentList, Stream) |
Elavult.
Átalakítja az XML-adatokat a XPathNavigator megadott |
| Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Elavult.
Átalakítja az XML-adatokat a XPathNavigator megadott |
| Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Elavult.
Átalakítja az XML-adatokat a XPathNavigator megadott |
| Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Elavult.
Átalakítja az XML-adatokat a XPathNavigator megadott |
| Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) |
Elavult.
Átalakítja az XML-adatokat a XPathNavigator megadott args használatával, és az eredményt egy XmlWriter. |
| Transform(XPathNavigator, XsltArgumentList, XmlWriter) |
Elavult.
Átalakítja az XML-adatokat a XPathNavigator megadott args használatával, és az eredményt egy XmlWriter. |
| Transform(XPathNavigator, XsltArgumentList) |
Elavult.
Átalakítja az XML-adatokat a XPathNavigator megadott |
A következőre érvényes:
Szálbiztonság
XslTransform az objektumok csak szálbiztosak az átalakítási műveletekhez. Más műveletek nem garantáltan szálbiztosak. A terhelési műveletek során gondoskodnia kell arról, hogy a rendszer ne hívjon meg más metódusokat az objektumon.