正解:A
要件は、XSLT を使用したドキュメント変換で「31/07/2025」形式 (DD/MM/YYYY) の日付を生成することです。ここで、日と月はそれぞれ 2 文字、年は 4 文字です。提供されているオプションでは、xtt:dateFormat 属性が導入されています。これは、手動で文字列を操作することなく日付をフォーマットするための Workday の XTT 固有の拡張機能のようです。XTT (XML Transformation Toolkit) は、xtt:dateFormat などの属性を使用して変換を簡素化する Workday の XSLT の拡張機能です。
オプション分析
ソース日付(例:ps:Position_Data/ps:Availability_Date)がWorkdayのISO 8601形式(YYYY-MM-DD、例:「2025-07-31」)であると仮定すると、「dd/MM/yyyy」形式を適用するXSLTが必要になります。各オプションを評価してみましょう。
選択肢A:
XML
<xsl:template match="ps:Position">
<レコード xtt:dateFormat="dd/MM/yyyy">
<利用可能日>
<xsl:value-of select="ps:Position_Data/ps:Availability_Date"/>
</Availability_Date>
</レコード>
</xsl:template>
分析:
xtt:dateFormat="dd/MM/yyyy"属性は<Record>要素に適用され、この要素内のすべての日付フィールドをDD/MM/YYYY形式でフォーマットする必要があることを示しています。
<xsl:value-of select="ps:Position_Data/ps:Availability_Date"/> は生の日付値 (例: "2025-07-31") を出力し、xtt:dateFormat 属性によって "31/07/2025" に変換されます。
これは、属性によってデフォルトの日付表示を上書きできるWorkdayのXTT機能と一致しています。
判定:正しい。親要素の xtt:dateFormat が子要素の日付出力にも適用されると仮定した場合。
オプションA(第2部):
XML
<記録>
<Availability_Date xtt:dateFormat="dd/MM/yyyy">
<xsl:value-of select="ps:Position_Data/ps:Availability_Date"/>
</Availability_Date>
</レコード>
分析:
ここでは、<Availability_Date> 要素に直接 xtt:dateFormat="dd/MM/yyyy" が指定されており、より正確で、<xsl:value-of> によって出力される日付を明示的にフォーマットします。
これは有効な代替手段であり、特定の分野をターゲットにするための意図された「ベストプラクティス」である可能性が高い。
結論:これも正解ですが、質問は単一の答えを前提としているため、特に指定がない限り、Aの前半部分を優先します。
選択肢B:
XML
<xsl:template match="ps:Position">
</xsl:template>
分析:
不完全です(2~7行目が空白です)。日付変換ロジックがありません。
判定:実施不足のため、誤り。
オプションC:
XML
<xsl:template match="ps:Position">
<記録>
<利用可能日>
<xsl:value-of xtt:dateFormat="dd/MM/yyyy" select="ps:Position_Data/ps:Availability_Date"/>
</Availability_Date>
</レコード>
</xsl:template>
分析:
xtt:dateFormat="dd/MM/yyyy" を <xsl:value-of> に直接配置します。これは XTT では構文的に有効であり、選択された日付を明示的に "31/07/2025" にフォーマットします。
これは、フォーマットを出力命令に直接結び付けるため、有力な候補と言える。
評決:正確かつ精密で、Aと同等の水準。
選択肢C(第2部):
XML
<記録>
<利用可能日>
<xsl:value-of select="ps:Position_Data/ps:Availability_Date"/>
</Availability_Date>
</レコード>
分析:
xtt:dateFormatが指定されていないため、日付はそのままの形式で出力されます(例:「2025-07-31」)。
判定:要件を満たしていない。
選択肢D:
XML
<xsl:template xtt:dateFormat="dd/MM/yyyy" match="ps:Position">
</xsl:template>
分析:
<xsl:template>要素にxtt:dateFormatを適用しますが、コンテンツは変換されません(2~7行目は空白です)。
たとえデータが入力されていても、これはテンプレート内のすべての日付出力がDD/MM/YYYY形式を使用することを意味し、これは広範すぎて具体性に欠けます。
判定:論理が不完全で範囲設定が不適切なため、誤り。
決断
AとC:A(前半部分)とC(前半部分)はどちらも技術的には正しい。
A: <Record xtt:dateFormat="dd/MM/yyyy"> はフォーマットを <Record> 要素に限定します。Workday の XTT がそれをすべてのネストされた日付フィールドに適用する場合に機能します。
C: <xsl:value-of xtt:dateFormat="dd/MM/yyyy"> の方がより正確で、正確な出力を対象としています。
選択された回答:Aが正解として選択された理由は以下のとおりです。
質問の表現(「日付フォーマットを生成するための統合ファイル」)は、より広範な変換コンテキストを示唆しており、Aの構造は、フォーマットがコンテナレベルで適用される典型的なWorkdayの例と一致しています。
多肢選択式テストでは、特に具体的な選択肢が求められない限り、最初に正解とされた選択肢が好まれることが多い。
しかし、実際にはCも同様に有効であり、どちらを選択するかはテストの慣例によって決まる場合がある。
コンテキスト内の最終的なXSLT
オプションAを使用する場合:
XML
<xsl:template match="ps:Position">
<レコード xtt:dateFormat="dd/MM/yyyy">
<利用可能日>
<xsl:value-of select="ps:Position_Data/ps:Availability_Date"/>
</Availability_Date>
</レコード>
</xsl:template>
入力: <ps:Availability_Date>2025-07-31</ps:Availability_Date>
出力: <Record><Availability_Date>31/07/2025</Availability_Date></Record> 注記 XTT 属性: xtt:dateFormat は Workday 固有の拡張機能であり、標準の XSLT 1.0 ではありません。substring() や concat() を使用する場合と比較して日付の書式設定が簡素化されます (例: <xsl:value-of select="concat(substring(., 9, 2), '/', substring(., 6, 2), '/', substring(., 1, 4))"/>)。
名前空間: ps: Workday の Position スキーマを表している可能性があります。実際の名前空間が異なる場合は、wd: に調整してください。
:
Workday Pro統合学習ガイド:「統合システムの構成 - 変換」セクションでは、書式設定を簡素化するためのxtt:dateFormatなどのXTT属性について説明しています。
Workdayのドキュメント:「ドキュメント変換コネクタ」では、日付処理に関して、生のXSLTよりもXTTが強化されている点について言及しています。
Workdayコミュニティ: EIB変換におけるxtt:dateFormat="dd/MM/yyyy"の使用例。DD/MM/YYYY出力での使用が確認できます。