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 XslTransform より低速ですか?
Note
デバッグ モードでコンパイルされた XSLT とリリース モードでコンパイルされた XSLT には違いがあります。 状況によっては、デバッグ モードでコンパイルされたスタイル シートは、 Load中にエラーをスローしませんが、後で Transform中に失敗します。 リリース モードでコンパイルされた同じスタイル シートは、 Load中に失敗します。 このような動作の例として、ノード セット型ではない変数が、ノード セットが必要な式に割り当てられる場合があります。
Load(IXPathNavigable, XsltSettings, XmlResolver)
IXPathNavigableに含まれる XSLT スタイル シートをコンパイルします。
XmlResolverは XSLT importまたはinclude要素を解決し、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
include 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 importまたはinclude要素を解決し、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 が使用されます。 XmlReaderで DTD 処理が無効になっています。 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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("This method will call into constructors of the earlyBoundTypes array which cannot be statically analyzed.")]
public void Load(System.Reflection.MethodInfo executeMethod, byte[] queryData, Type[]? earlyBoundTypes);
public void Load(System.Reflection.MethodInfo executeMethod, byte[] queryData, Type[]? earlyBoundTypes);
public void Load(System.Reflection.MethodInfo executeMethod, byte[] queryData, Type[] earlyBoundTypes);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("This method will call into constructors of the earlyBoundTypes array which cannot be statically analyzed.")>]
member this.Load : System.Reflection.MethodInfo * byte[] * Type[] -> unit
member this.Load : System.Reflection.MethodInfo * byte[] * Type[] -> unit
Public Sub Load (executeMethod As MethodInfo, queryData As Byte(), earlyBoundTypes As Type())
パラメーター
- executeMethod
- MethodInfo
コンパイル済みスタイル シートのコンパイラによって生成されたexecute メソッドを表すMethodInfo オブジェクト。
- queryData
- Byte[]
CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) メソッドによって生成されたコンパイル済みスタイル シートのstaticData フィールド内のシリアル化されたデータ構造のバイト配列。
- 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
Note
この例で使用する "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 importまたはinclude要素を解決し、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
include 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:importまたはxsl:include要素を処理するために使用されます。document()関数は無効になっています。埋め込みスクリプトはサポートされていません。
Load(XmlReader, XsltSettings, XmlResolver)オーバーロードを使用して、必要な認証資格情報でXmlResolverを指定したり、異なる XSLT 設定を指定したりできます。
こちらもご覧ください
適用対象
Load(Type)
XSLT コンパイラ (xsltc.exe) を使用して作成されたコンパイル済みスタイル シートを読み込みます。
public:
void Load(Type ^ compiledStylesheet);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("This method will get fields and types from the assembly of the passed in compiledStylesheet and call their constructors which cannot be statically analyzed")]
public void Load(Type compiledStylesheet);
public void Load(Type compiledStylesheet);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("This method will get fields and types from the assembly of the passed in compiledStylesheet and call their constructors which cannot be statically analyzed")>]
member this.Load : Type -> unit
member this.Load : Type -> unit
Public Sub Load (compiledStylesheet As Type)
パラメーター
- compiledStylesheet
- Type
コンパイル済みのスタイル シートを含むクラスの名前。
これは通常、スタイル シートの名前です。 特に指定しない限り、xsltc.exe ツールはクラス名とアセンブリ名にスタイル シートの名前を使用します。
- 属性
例
次の例は、XSLT アセンブリからコンパイル済みスタイル シートを読み込む方法を示しています。 この例では、xsltc.exe ツールを使用して、bookOrders という名前のクラスを持つ bookOrders.dll という名前のアセンブリを作成することを前提としています。
Note
コードのコンパイル時に 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 メソッドは、コンパイル済みのスタイル シートをアセンブリから読み込みます。
Note
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 が使用されます。 XmlReaderで DTD 処理が無効になっています。 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:importまたはxsl:include要素を処理するために使用されます。document()関数は無効になっています。埋め込みスクリプトはサポートされていません。
Loadオーバーロードを使用して、必要な認証資格情報でXmlResolverを指定したり、異なる XSLT 設定を指定したりできます。