參照︰Saxon XSLT 處理器變更
下表匯總了 Workday 對各種版本的 Saxon 和 XSLT 的支援。請注意,在第 27 版之後,Workday 在表單中引入了新的命名方案。
year.week
。Workday 版本 | 支援的撒克遜版本 | 支援的 XSLT 版本 | 附註 |
|---|---|---|---|
<20 | 9.1 | 1.0, (2.0) | 對 XSLT 2.0 版的有限支援。 |
20-2017.05 | 9.4 | 2.0, (3.0) | 對 XSLT 3.0 版的有限支援。 |
2017.05- | 9.7 | 3.0 | 支援 XSLT 串流。 |
如果您建立的集合中包含不同版本的程序集,則 Studio 會顯示警告訊息。這是因為不同版本的程序集需要的 Saxon 版本可能會衝突,從而導致執行階段的類別載入錯誤。最佳做法是對所有整合使用最新的程序集版本。
請注意以下事項︰
- MVEL 中可用於存取訊息部分和變數的 XPath 方法支援 XPath 3.0。
- 該mctxURL 通訊協定允許 XSL 開發人員寫入訊息部分和變數,例如︰<xsl:result-document href="mctx:vars/var1">...</xsl:result-document>
- 雖然 XQuery 不提供直接程序集支援,但您可以新增自訂步驟來呼叫 XQuery 指令碼。
- 在 2022.46 版或更早版本的程序集中,只有在符合以下條件時,Saxon 才會設為預設轉換工具︰use.saxon.transformer屬性設為true於中介環境定義中。在 2022.47 版或更高版本的程序集中,如果該屬性設為「」,則該撒克遜文會設為預設值true或未顯示。
XSLT 2.0 和 XSLT 3.0 是強類型。例如,不允許
xs:string
要評估「」在 XPath 運算式中的相等性。以下運算式,其中 stringParam
是 XSL 參數,則會導致撒克遜執行階段錯誤︰
$stringParam = true()
XSL 編譯器在部署時不會遇到此問題,因為它無法預先預測參數的類型。
此強類型類型問題不會影響您現有的 XSL 文件和 Workday Studio 整合,除非您選擇啟用 XSLT 3.0,方法是將 XSL 文件中的
version
屬性值變更為︰ 3.0
。如果您遇到這些執行階段錯誤 (由您與整合一起部署的 XSLT 所導致),您必須採取行動加以修正。在列印業務表單的舊版 XSL 中,發現以下與 Saxon 升級相關的錯誤︰
如果您遇到此錯誤,請檢查 XSL 的排序元素是否包含以下屬性內容設定︰Failed to compile stylesheet.Xerrors detected. Invalid value for @case-order. Value must be one of (lower-first|upper-first).
這個選填case-order="#default"
case-order
「」屬性會決定排序時先列出大寫還是小寫字母。預設會先列出大寫字母。Saxon 剖析器僅接受大小寫順序的下列值︰
- upper-first
- lower-first
- 請從排序元素中移除現有的個案順序屬性內容,因為這是選用設定。
- 將個案順序值明確設為upper-first。
- 將個案順序值明確設為lower-first。