.NET コンストラクター

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  付録 > XSLT と XPath/XQuery 関数 > その他の拡張関数 > .NET 拡張関数
 >

.NET コンストラクター

拡張関数を使用することで、.NET コンストラクターを呼び出すことができます。new() により全てのコンストラクターを呼び出すことができます。クラス内に2つ以上のコンストラクターがある場合、与えられた引数の数が最もマッチするコンストラクターが選択されます。与えられた引数に対してマッチするコンストラクターが見つからない場合、"No constructor found'" エラーが返されます。

 

 

XPath/XQuery データ型を返すコンストラクター

.NET コンストラクター呼び出しの結果が XPath/XQuery データ型へ黙示的に変換することができる場合、.NET 拡張関数から XPath/XQuery データ型のシーケンスが返されます。

 

 

.NET オブジェクトを返すコンストラクター

.NET コンストラクター呼び出しの結果が XPath/XQuery データ型へ適切に変換できない場合、値を返すクラス名でラップした .NET オブジェクトがコンストラクターにより作成されます。例えば、System.DateTime クラスのコンストラクターが( System.DateTime.new() により)呼ばれた場合 System.DateTime 型を持ったオブジェクトが返されます。

 

返されたオブジェクトのレキシカルフォーマットは、目的の XPath データ型と違っている場合があります。その場合、返された値を: (i) 目的の XPath データ型のレキシカルフォーマットへ変換し、(ii) 目的の XPath データ型へキャストする必要があります。

 

コンストラクターにより作成された .NET オブジェクトに対して3つのことを行うことができます:

 

変数内で使用することができます:
<xsl:variable name="currentdate" select="date:new(2008, 4, 29)" xmlns:date="clitype:System.DateTime" />
拡張関数へ渡すことができます(インスタンスメソッドとインスタンスフィールド を参照ください ):
<xsl:value-of select="date:ToString(date:new(2008, 4, 29))" xmlns:date="clitype:System.DateTime" />
文字列、数値、または boolean へ変換することができます:

  <xsl:value-of select="xs:integer(data:get_Month(date:new(2008, 4, 29)))" xmlns:date="clitype:System.DateTime" />

 


(C) 2018 Altova GmbH