0

ここで私の壁を打つ...

プライマリー従業員が複数の扶養家族を持っている可能性がある次のデータがあります。従業員のSSN(ab:SSN)をDependent_SSNと照合し、そのうちの1つが「配偶者」であるかどうかを判断する関数を作成する必要があります。その場合、「配偶者」のDependent_SSNを返します。そうでない場合は、次に進み、次の非「配偶者」Dependent_SSNを返します。

これは何度も必要になると思うので、関数を作成しようとしています。コードスニペットは、他のループ機能を実行している既存のテンプレート内にあります。

私はこれを試しましたが、Oxygenはエラーを返します:

<xsl:function name="ab:PQB">
    <xsl:param name="EE_SSN">
    </xsl:param>

    <xsl:for-each select="/ab:Report_Data/ab:Report_Entry[ab:Employee_ID=$EE_SSN]/ab:Report_Data/ab:Report_Entry[ab:Employee_ID=$EE_SSN]ab:dependents/ab:Dependent_SSN">

    </xsl:for-each>

返されるエラーは次のとおりです。

「エンジン名:Saxon-PE 9.3.0.5重大度:致命的説明:式の終わりを超えた予期しないトークン名「wd:dependents」」

私は扶養家族をループすることに対してより高いレベルのSSNをテストする必要があることを知っていますが、私が言ったように「私は私の壁に反対しています」:)

データはここにあります:

<ab:Report_Entry>
<ab:SSN>888881006</ab:SSN>
<ab:Last_Name>Smith</ab:Last_Name>
<ab:First_Name>Kimberly</ab:First_Name>
<ab:dependents>
<ab:Dependent_SSN>888881009</ab:Dependent_SSN>
<ab:Relation ab:Descriptor="Spouse">
</ab:Relation>
</ab:dependents>
<ab:dependents>
<ab:Dependent_SSN>888881004</ab:Dependent_SSN>
<ab:Relation ab:Descriptor="Child">
</ab:Relation>
</ab:dependents>
<ab:dependents>
<ab:Dependent_SSN>888881003</ab:Dependent_SSN>
<ab:Relation ab:Descriptor="Child">
<ab:ID ab:type="Related_Person_Relationship_ID">Child</ab:ID>
</ab:Relation>
</ab:dependents>
<ab:dependents>
<ab:Dependent_SSN>888881001</ab:Dependent_SSN>
<ab:Dependent_ID>1032D-4</ab:Dependent_ID>
<ab:Relation ab:Descriptor="Child">
<ab:ID ab:type="Related_Person_Relationship_ID">Child</ab:ID>
</ab:Relation>
</ab:dependents>
</ab:Report_Entry>

アドバイスありがとうございます!

4

1 に答える 1

0

入力パラメーターのタイプと関数結果のタイプを定義してから、そのタイプの値を返す関数本体を作成する必要がある場合があります。現在、あなたの説明はかなり手続き的なように聞こえますが、XSLT/XPathでは機能しません。

エラーに関しては、構文的に正しいパスを作成するには、パス/ab:Report_Data/ab:Report_Entry[ab:Employee_ID=$EE_SSN]/ab:Report_Data/ab:Report_Entry[ab:Employee_ID=$EE_SSN]ab:dependents/ab:Dependent_SSNにもう1つスラッシュが必要だと思います。/ab:Report_Data/ab:Report_Entry[ab:Employee_ID=$EE_SSN]/ab:Report_Data/ab:Report_Entry[ab:Employee_ID=$EE_SSN]/ab:dependents/ab:Dependent_SSNこれにより、取得する構文エラーを回避できますが、目的の結果が返される可能性は低くなります。

于 2012-10-24T13:22:19.583 に答える