XslCompiledTransform.Load メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
スタイル シートをコンパイルします。
オーバーロード
Load(IXPathNavigable, XsltSettings, XmlResolver) |
IXPathNavigable に格納されている XSLT スタイル シートをコンパイルします。 は XmlResolver XSLT または |
Load(String, XsltSettings, XmlResolver) |
URI で指定された XSLT スタイル シートの読み込みおよびコンパイルを行います。 は XmlResolver XSLT または |
Load(MethodInfo, Byte[], Type[]) |
|
Load(XmlReader, XsltSettings, XmlResolver) |
XmlReader に格納されている XSLT スタイル シートをコンパイルします。 は XmlResolver XSLT または |
Load(XmlReader) |
XmlReader に格納されているスタイル シートをコンパイルします。 |
Load(Type) |
XSLT コンパイラ (xsltc.exe) を使用して作成されたコンパイル済みスタイル シートを読み込みます。 |
Load(String) |
指定された URI にあるスタイル シートの読み込みおよびコンパイルを行います。 |
Load(IXPathNavigable) |
IXPathNavigable オブジェクトに格納されているスタイル シートをコンパイルします。 |
注釈
全体的なパフォーマンスは XslCompiledTransform クラスの方が XslTransform クラスより優れていますが、Load クラスの XslCompiledTransform メソッドが変換で初めて呼び出されたときは、Load クラスの XslTransform メソッドよりパフォーマンスが劣る場合があります。 これは、XSLT ファイルを読み込む前にコンパイルする必要があるためです。 詳細については、ブログ記事「XslCompiledTransform Slower than XslTransform?」(XslCompiledTransform は XslTransform より遅いか?) というブログ記事をお読みください。
注意
デバッグ モードでコンパイルされた XSLT と、リリース モードでコンパイルされた XSLT には違いがあります。 状況によっては、デバッグ モードでコンパイルされたスタイル シートが、Load の間にはエラーをスローしないが、その後の Transform の間にエラーとなります。 同じスタイル シートをリリース モードでコンパイルすると、Load の間にエラーが発生します。 このような動作の 1 つの例は、ノード セット型ではない変数を、ノード セット型が必要な式に代入する場合です。
Load(IXPathNavigable, XsltSettings, XmlResolver)
IXPathNavigable に格納されている XSLT スタイル シートをコンパイルします。 は XmlResolver XSLT またはinclude
要素をimport
解決し、XSLT 設定によってスタイル シートのアクセス許可が決定されます。
public:
void Load(System::Xml::XPath::IXPathNavigable ^ stylesheet, System::Xml::Xsl::XsltSettings ^ settings, System::Xml::XmlResolver ^ stylesheetResolver);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.Xsl.XsltSettings? settings, System.Xml.XmlResolver? stylesheetResolver);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.Xsl.XsltSettings settings, System.Xml.XmlResolver stylesheetResolver);
member this.Load : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltSettings * System.Xml.XmlResolver -> unit
Public Sub Load (stylesheet As IXPathNavigable, settings As XsltSettings, stylesheetResolver As XmlResolver)
パラメーター
- stylesheet
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクトです。 Microsoft .NET Framework では、これは XmlNode (通常は XmlDocument)、またはスタイル シートが格納されている XPathDocument になります。
- settings
- XsltSettings
スタイル シートに適用する XsltSettings。 これが null
の場合は、Default 設定が適用されます。
- stylesheetResolver
- XmlResolver
XmlResolver XSLT import
および include
要素で参照されるすべてのスタイル シートを解決するために使用される 。 これが null
の場合は、外部リソースが解決されません。
例外
stylesheet
値は null
です。
スタイル シートにエラーが含まれています。
例
次の例では、スタイル シートを読み込みます。 オブジェクトには XmlSecureResolver 、スタイル シート内の要素 import
または include
要素にアクセスするために必要な資格情報が含まれています。
// Create a resolver and specify the necessary credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
System.Net.NetworkCredential myCred;
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(new XPathDocument("http://serverName/data/xsl/sort.xsl"), XsltSettings.Default, resolver);
' Create a resolver and specify the necessary credentials.
Dim resolver As New XmlUrlResolver()
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load(New XPathDocument("http://serverName/data/xsl/sort.xsl"), XsltSettings.Default, resolver)
注釈
クラスは XslCompiledTransform XSLT 1.0 構文をサポートしています。 XSLT スタイル シートでは、 名前空間を使用する http://www.w3.org/1999/XSL/Transform
必要があります。
こちらもご覧ください
適用対象
Load(String, XsltSettings, XmlResolver)
URI で指定された XSLT スタイル シートの読み込みおよびコンパイルを行います。 は XmlResolver XSLT またはinclude
要素をimport
解決し、XSLT 設定によってスタイル シートのアクセス許可が決定されます。
public:
void Load(System::String ^ stylesheetUri, System::Xml::Xsl::XsltSettings ^ settings, System::Xml::XmlResolver ^ stylesheetResolver);
public void Load (string stylesheetUri, System.Xml.Xsl.XsltSettings? settings, System.Xml.XmlResolver? stylesheetResolver);
public void Load (string stylesheetUri, System.Xml.Xsl.XsltSettings settings, System.Xml.XmlResolver stylesheetResolver);
member this.Load : string * System.Xml.Xsl.XsltSettings * System.Xml.XmlResolver -> unit
Public Sub Load (stylesheetUri As String, settings As XsltSettings, stylesheetResolver As XmlResolver)
パラメーター
- stylesheetUri
- String
スタイル シートの URI。
- settings
- XsltSettings
スタイル シートに適用する XsltSettings。 これが null
の場合は、Default 設定が適用されます。
- stylesheetResolver
- XmlResolver
XmlResolverスタイル シート URI と XSLT import
include
および要素で参照されるすべてのスタイル シートを解決するために使用される 。
例外
stylesheetUri
または stylesheetResolver
の値が null
です。
スタイル シートにエラーが含まれています。
スタイル シートが見つかりません。
stylesheetUri
の値に、存在しないファイル名またはディレクトリが含まれています。
stylesheetUri
は有効な URI ではありません。
スタイル シートの読み込み中に解析エラーが発生しました。
例
次の例では、ネットワーク リソースに格納されているスタイル シートを読み込みます。 XmlSecureResolver オブジェクトには、スタイル シートにアクセスするのに必要な資格情報を指定します。
// Create the XslCompiledTransform object.
XslCompiledTransform xslt = new XslCompiledTransform();
// Create a resolver and set the credentials to use.
XmlSecureResolver resolver = new XmlSecureResolver(new XmlUrlResolver(), "http://serverName/data/");
resolver.Credentials = CredentialCache.DefaultCredentials;
// Load the style sheet.
xslt.Load("http://serverName/data/xsl/sort.xsl", null, resolver);
' Create the XslCompiledTransform object.
Dim xslt As New XslCompiledTransform()
' Create a resolver and set the credentials to use.
Dim resolver As New XmlSecureResolver(New XmlUrlResolver(), "http://serverName/data/")
resolver.Credentials = CredentialCache.DefaultCredentials
' Load the style sheet.
xslt.Load("http://serverName/data/xsl/sort.xsl", Nothing, resolver)
注釈
クラスは XslCompiledTransform XSLT 1.0 構文をサポートしています。 XSLT スタイル シートでは、 名前空間を使用する http://www.w3.org/1999/XSL/Transform
必要があります。
XmlReaderスタイル シートを読み込むには、既定の設定を持つ が使用されます。 DTD 処理は、 で XmlReader無効になっています。 DTD 処理が必要な場合は、この機能を有効にして を XmlReader 作成し、 メソッドに Load 渡します。
こちらもご覧ください
適用対象
Load(MethodInfo, Byte[], Type[])
XSLTC.exe
ユーティリティを使用してコンパイルされたスタイル シートからメソッドを読み込みます。
public:
void Load(System::Reflection::MethodInfo ^ executeMethod, cli::array <System::Byte> ^ queryData, cli::array <Type ^> ^ earlyBoundTypes);
public void Load (System.Reflection.MethodInfo executeMethod, byte[] queryData, Type[]? earlyBoundTypes);
public void Load (System.Reflection.MethodInfo executeMethod, byte[] queryData, Type[] earlyBoundTypes);
member this.Load : System.Reflection.MethodInfo * byte[] * Type[] -> unit
Public Sub Load (executeMethod As MethodInfo, queryData As Byte(), earlyBoundTypes As Type())
パラメーター
- executeMethod
- MethodInfo
MethodInfoコンパイルされたスタイル シートのコンパイラによって生成されたexecute
メソッドを表す オブジェクト。
- queryData
- Byte[]
メソッドによって生成されるコンパイル済みスタイル シートのフィールド内 staticData
のシリアル化されたデータ構造の CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) バイト配列。
- earlyBoundTypes
- Type[]
コンパイル済みスタイル シートのコンパイラによって生成された ebTypes
フィールドに格納されている型の配列。
例
次のコード例では、 を Load 使用してコンパイル済みのスタイル シートを読み込みます。 この変換により、要素の値が Price
10% 減少します。
using System;
using System.IO;
using System.Reflection;
using System.Xml;
using System.Xml.Xsl;
class Example
{
static void Main()
{
// Load a stylesheet compiled using the XSLTC.EXE utility
Type compiledStylesheet = Assembly.Load("Transform").GetType("Transform");
// Extract private members from the compiled stylesheet
BindingFlags bindingFlags = BindingFlags.NonPublic | BindingFlags.Static;
MethodInfo executeMethod = compiledStylesheet.GetMethod("Execute", bindingFlags);
object staticData = compiledStylesheet.GetField("staticData", bindingFlags).GetValue(null);
object earlyBoundTypes = compiledStylesheet.GetField("ebTypes", bindingFlags).GetValue(null);
// Load into XslCompiledTransform
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(executeMethod, (byte[])staticData, (Type[])earlyBoundTypes);
// Run the transformation
xslt.Transform(XmlReader.Create(new StringReader("<Root><Price>9.50</Price></Root>")), (XsltArgumentList)null, Console.Out);
}
}
Imports System.IO
Imports System.Reflection
Imports System.Xml
Imports System.Xml.Xsl
Module Module1
Sub Main()
' Load a stylesheet compiled using the XSLTC.EXE utility
Dim compiledStylesheet As Type = [Assembly].Load("Transform").GetType("Transform")
' Extract private members from the compiled stylesheet
Dim bindingFlags As BindingFlags = bindingFlags.NonPublic Or bindingFlags.Static
Dim executeMethod As MethodInfo = compiledStylesheet.GetMethod("Execute", bindingFlags)
Dim staticData As Object = compiledStylesheet.GetField("staticData", bindingFlags).GetValue(Nothing)
Dim earlyBoundTypes As Object = compiledStylesheet.GetField("ebTypes", bindingFlags).GetValue(Nothing)
' Load into XslCompiledTransform
Dim xslt As New XslCompiledTransform()
xslt.Load(executeMethod, CType(staticData, Byte()), CType(earlyBoundTypes, Type()))
' Run the transformation
xslt.Transform(XmlReader.Create(New StringReader("<Root><Price>9.50</Price></Root>")), CType(Nothing, XsltArgumentList), Console.Out)
End Sub
End Module
注意
この例で使用する "Transform" アセンブリは、xsltc.exe ユーティリティを使用してビルドされました。 このコマンド ライン ツールの使用方法の詳細については、「 方法: アセンブリを使用して XSLT 変換を実行する」を参照してください。
前のコード例では、次の変換を使用します。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="urn:my-scripts">
<msxsl:script language="C#" implements-prefix="user">
<![CDATA[
public double modifyPrice(double price){
price*=0.9;
return price;
}
]]>
</msxsl:script>
<xsl:template match="Root">
<Root xmlns="">
<Price><xsl:value-of select="user:modifyPrice(Price)"/></Price>
</Root>
</xsl:template>
</xsl:stylesheet>
注釈
このメソッドは、オブジェクト、バイト配列、および型配列の MethodInfo 形式でコンパイルされたスタイル シートを受け取ります。 DynamicMethod オブジェクトを使用すると、オブジェクトが再利用されるときにコンパイル済みのスタイル シート メソッドを XslCompiledTransform 破棄できます。
適用対象
Load(XmlReader, XsltSettings, XmlResolver)
XmlReader に格納されている XSLT スタイル シートをコンパイルします。 は XmlResolver XSLT またはinclude
要素をimport
解決し、XSLT 設定によってスタイル シートのアクセス許可が決定されます。
public:
void Load(System::Xml::XmlReader ^ stylesheet, System::Xml::Xsl::XsltSettings ^ settings, System::Xml::XmlResolver ^ stylesheetResolver);
public void Load (System.Xml.XmlReader stylesheet, System.Xml.Xsl.XsltSettings? settings, System.Xml.XmlResolver? stylesheetResolver);
public void Load (System.Xml.XmlReader stylesheet, System.Xml.Xsl.XsltSettings settings, System.Xml.XmlResolver stylesheetResolver);
member this.Load : System.Xml.XmlReader * System.Xml.Xsl.XsltSettings * System.Xml.XmlResolver -> unit
Public Sub Load (stylesheet As XmlReader, settings As XsltSettings, stylesheetResolver As XmlResolver)
パラメーター
- settings
- XsltSettings
スタイル シートに適用する XsltSettings。 これが null
の場合は、Default 設定が適用されます。
- stylesheetResolver
- XmlResolver
XmlResolver XSLT import
および include
要素で参照されるすべてのスタイル シートを解決するために使用される 。 これが null
の場合は、外部リソースが解決されません。
例外
stylesheet
値は null
です。
スタイル シートにエラーが含まれています。
例
次の例では、スタイル シートを読み込み、XSLT スクリプトのサポートを有効にします。
// Create the XslCompiledTransform object.
XslCompiledTransform xslt = new XslCompiledTransform();
// Create a resolver and set the credentials to use.
XmlSecureResolver resolver = new XmlSecureResolver(new XmlUrlResolver(), "http://serverName/data/");
resolver.Credentials = CredentialCache.DefaultCredentials;
XmlReader reader = XmlReader.Create("http://serverName/data/xsl/sort.xsl");
// Create the XsltSettings object with script enabled.
XsltSettings settings = new XsltSettings(false,true);
// Load the style sheet.
xslt.Load(reader, settings, resolver);
' Create the XslCompiledTransform object.
Dim xslt As New XslCompiledTransform()
' Create a resolver and set the credentials to use.
Dim resolver As New XmlSecureResolver(New XmlUrlResolver(), "http://serverName/data/")
resolver.Credentials = CredentialCache.DefaultCredentials
Dim reader As XmlReader = XmlReader.Create("http://serverName/data/xsl/sort.xsl")
' Create the XsltSettings object with script enabled.
Dim settings As New XsltSettings(False, True)
' Load the style sheet.
xslt.Load(reader, settings, resolver)
注釈
クラスは XslCompiledTransform XSLT 1.0 構文をサポートしています。 XSLT スタイル シートでは、 名前空間を使用する http://www.w3.org/1999/XSL/Transform
必要があります。
スタイル シートは、 のすべての子を介して の XmlReader 現在のノードから読み込まれます。 これにより、ドキュメントの一部をスタイル シートとして使用できます。 メソッドが Load 完了すると、 XmlReader はスタイル シートの末尾の後の次のノードに配置されます。 ドキュメントの末尾に到達すると、XmlReader はファイルの末尾 (EOF) に位置します。
こちらもご覧ください
適用対象
Load(XmlReader)
XmlReader に格納されているスタイル シートをコンパイルします。
public:
void Load(System::Xml::XmlReader ^ stylesheet);
public void Load (System.Xml.XmlReader stylesheet);
member this.Load : System.Xml.XmlReader -> unit
Public Sub Load (stylesheet As XmlReader)
パラメーター
例外
stylesheet
値は null
です。
スタイル シートにエラーが含まれています。
例
次の使用例は、 オブジェクトに含まれるスタイル シートを XmlReader 読み込みます。
// Create a reader that contains the style sheet.
XmlReader reader = XmlReader.Create("titles.xsl");
reader.ReadToDescendant("xsl:stylesheet");
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(reader);
' Create a reader that contains the style sheet.
Dim reader As XmlReader = XmlReader.Create("titles.xsl")
reader.ReadToDescendant("xsl:stylesheet")
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load(reader)
注釈
クラスは XslCompiledTransform XSLT 1.0 構文をサポートしています。 XSLT スタイル シートでは、 名前空間を使用する http://www.w3.org/1999/XSL/Transform
必要があります。
スタイル シートは、 のすべての子を介して の XmlReader 現在のノードから読み込まれます。 これにより、ドキュメントの一部をスタイル シートとして使用できます。 メソッドが Load 完了すると、 XmlReader はスタイル シートの末尾の後の次のノードに配置されます。 ドキュメントの末尾に到達すると、XmlReader はファイルの末尾 (EOF) に位置します。
このメソッドの動作は次のとおりです。
ユーザー資格情報のない をXmlUrlResolver使用して、要素または
xsl:include
要素をxsl:import
処理します。関数は
document()
無効になっています。埋め込みスクリプトはサポートされていません。
オーバーロードを Load(XmlReader, XsltSettings, XmlResolver) 使用して、必要な認証資格情報で を XmlResolver 指定するか、別の XSLT 設定を指定できます。
こちらもご覧ください
適用対象
Load(Type)
XSLT コンパイラ (xsltc.exe) を使用して作成されたコンパイル済みスタイル シートを読み込みます。
public:
void Load(Type ^ compiledStylesheet);
public void Load (Type compiledStylesheet);
member this.Load : Type -> unit
Public Sub Load (compiledStylesheet As Type)
パラメーター
- compiledStylesheet
- Type
コンパイル済みスタイル シートを含むクラスの名前。
これは、通常、スタイル シート名です。 別途指定しない限り、xsltc.exe ツールはスタイル シート名をクラス名およびアセンブリ名に使用します。
例
次の例は、XSLT アセンブリからコンパイル済みスタイル シートを読み込む方法を示しています。 この例では、xsltc.exe ツールを使用して、bookOrders という名前のクラスを持つ bookOrders.dll という名前のアセンブリを作成したと想定しています。
注意
コードをコンパイルするときは、XSLT アセンブリを参照する必要があります。 たとえば、「 csc /r:system.dll;system.xml.dll;bookOrders.dll myCode.cs
」のように入力します。
// Load the type of the class.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(typeof(bookOrders));
注釈
xsltc.exe ツールは、スタイル シートをコンパイルし、スタイル シートからアセンブリを生成するために使用されます。 メソッドは Load 、コンパイル済みのスタイル シートをアセンブリから読み込みます。
注意
また、XSLT アセンブリを参照としてアプリケーションに含める必要があります。
こちらもご覧ください
適用対象
Load(String)
指定された URI にあるスタイル シートの読み込みおよびコンパイルを行います。
public:
void Load(System::String ^ stylesheetUri);
public void Load (string stylesheetUri);
member this.Load : string -> unit
Public Sub Load (stylesheetUri As String)
パラメーター
- stylesheetUri
- String
スタイル シートの URI。
例外
stylesheetUri
値は null
です。
スタイル シートにエラーが含まれています。
スタイル シートが見つかりません。
stylesheetUri
の値に、存在しないファイル名またはディレクトリが含まれています。
stylesheetUri
は有効な URI ではありません。
スタイル シートの読み込み中に解析エラーが発生しました。
例
次の例では、変換を実行し、ファイルに出力します。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html");
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html")
注釈
クラスは XslCompiledTransform XSLT 1.0 構文をサポートしています。 XSLT スタイル シートでは、 名前空間を使用する http://www.w3.org/1999/XSL/Transform
必要があります。
このメソッドの動作は次のとおりです。
ユーザー資格情報のない をXmlUrlResolver使用して、スタイル シート URI を解決し、または 要素を
xsl:import
xsl:include
処理します。XmlReaderスタイル シートを読み込むには、既定の設定を持つ が使用されます。 DTD 処理は、 で XmlReader無効になっています。 DTD 処理が必要な場合は、この機能を有効にして を XmlReader 作成し、 メソッドに Load 渡します。
関数は
document()
無効になっています。埋め込みスクリプトはサポートされていません。
オーバーロードを Load(String, XsltSettings, XmlResolver) 使用して、必要な認証資格情報で を XmlResolver 指定するか、別の XSLT 設定を指定できます。
こちらもご覧ください
適用対象
Load(IXPathNavigable)
IXPathNavigable オブジェクトに格納されているスタイル シートをコンパイルします。
public:
void Load(System::Xml::XPath::IXPathNavigable ^ stylesheet);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet);
member this.Load : System.Xml.XPath.IXPathNavigable -> unit
Public Sub Load (stylesheet As IXPathNavigable)
パラメーター
- stylesheet
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクトです。 Microsoft .NET Framework では、これは XmlNode (通常は XmlDocument)、またはスタイル シートが格納されている XPathDocument になります。
例外
stylesheet
値は null
です。
スタイル シートにエラーが含まれています。
例
次の使用例は、 オブジェクトに含まれるスタイル シートを XPathDocument 読み込みます。
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(new XPathDocument("http://serverName/data/xsl/sort.xsl"));
Dim xslt As New XslCompiledTransform()
xslt.Load(New XPathDocument("http://serverName/data/xsl/sort.xsl"))
注釈
クラスは XslCompiledTransform XSLT 1.0 構文をサポートしています。 XSLT スタイル シートでは、 名前空間を使用する http://www.w3.org/1999/XSL/Transform
必要があります。
このメソッドの動作は次のとおりです。
ユーザー資格情報のない をXmlUrlResolver使用して、要素または
xsl:include
要素をxsl:import
処理します。関数は
document()
無効になっています。埋め込みスクリプトはサポートされていません。
オーバーロードを Load 使用して、必要な認証資格情報で を XmlResolver 指定するか、別の XSLT 設定を指定できます。
こちらもご覧ください
適用対象
.NET