0

ソース ノード 'AdoptedDate' のデフォルト値を検証するために、マップ上に多数の Functoid を作成しました ( defaultvaluesは、新しいデフォルト値を持つ値 Functoid への論理 OR に等しくなります。次に、どちらの Equals も等しくない場合は、Logical Not になります)。ソース ノード 'AdoptedDate' を宛先スキーマ (xslt で囲まれている) にマップする場合は true ではありません。

私がやりたいことは、ソーススキーマのすべての日付フィールドにこれを実装することです.これは可能ですか.

現在生成されている XSLT (Adopted のみ)

 <xsl:for-each select="Form/SDetails">
<xsl:variable name="var:v17" select="userCSharp:LogicalEq(string(NameDetails/AdoptedDate/text()) , &quot;1900-09-09&quot;)" />
<xsl:variable name="var:v18" select="string(NameDetails/AdoptedDate/text())" />
<xsl:variable name="var:v19" select="userCSharp:LogicalEq($var:v18 , &quot;1800-09-09&quot;)" />
<xsl:variable name="var:v20" select="userCSharp:LogicalOr(string($var:v17) , string($var:v19))" />
<xsl:variable name="var:v22" select="userCSharp:LogicalNot(string($var:v20))" />
    <xsl:if test="string($var:v20)='true'">
        <xsl:variable name="var:v21" select="&quot;1901-01-01&quot;" />
        <p:AdoptedDate>
              <xsl:value-of select="$var:v21" />
        </p:AdoptedDate>
    </xsl:if>
    <xsl:if test="string($var:v22)='true'">
        <xsl:variable name="var:v23" select="NameDetails/AdoptedDate/text()" />
        <p:AdoptedDate>
            <xsl:value-of select="$var:v23" />
        </p:AdoptedDate>
    </xsl:if>

4

1 に答える 1

1

あなたの選択肢は

  1. 各フィールドで同じ Functoid のセットを使用します (これは、回避しようとしていると私が考えるものです)
  2. 外部クラスを作成すると、スクリプト Functoid から呼び出すことができるロジックが実装されます。
  3. ロジックを実行するインライン スクリプトを作成します。その後、同じ関数名とパラメーターを含む後続のスクリプティング fuctoid を持つことができ、それらがすべて呼び出す XSLT には単一のスクリプトしかありません。

どのような状況でも、ソース フィールドと宛先フィールドに Functoid をリンクする必要があります。

于 2014-05-25T23:05:38.183 に答える