XslTransform 類別中的 Discretionary 行為實作
注意事項 |
---|
XslTransform 類別在 Microsoft .NET Framework 2.0 版本 中已過時。您可以使用 XslCompiledTransform 類別來執行可延伸樣式表語言轉換 (XSLT)。如需詳細資訊,請參閱使用 XslCompiledTransform 類別與從 XslTransform 類別轉換。 |
Discretionary 行為是 全球資訊網協會 (W3C) XSL 轉換 (XSLT) 1.0 版建議事項 (www.w3.org/TR/xslt) 中所說明的行為,其中實作提供者會選擇數個可能的選項之一,作為處理狀況的方法。例如,在 7.3 節<建立處理指示>(英文) 中,W3C 建議事項指出若將 xsl:processing-instruction
的內容執行個體化會建立文字節點以外的節點,就會產生錯誤。針對某些問題,W3C 會在處理器決定從錯誤復原時通知要採取的決策。針對 7.3 節中的問題,W3C 說只要忽略節點及其內容,實作即可從這項錯誤中復原。
因此,針對 W3C 所允許的每個 Discretionary 行為,下列表格列出了對 XslTransform 類別的 .NET Framework 實作所實作的 Discretionary 行為,以及 W3C XSLT 1.0 版建議事項會在哪個章節中討論此問題。
問題 | 行為 | Section |
---|---|---|
文字節點同時符合 |
復原 |
3.4 |
來源節點符合一個以上的範本 (Template) 規則。 |
復原 |
5.5 |
命名空間統一資源識別元 (URI) 會被宣告成多個命名空間 URI 的別名,且全都具有相同的匯入優先順序。 |
復原 |
7.1.1 |
從屬性值範本產生的 |
擲回例外狀況 |
7.1.12 和 7.1.3 |
在子節點已經加入項目節點之後,將屬性加入至項目。 |
復原 |
7.1.3 |
將屬性加入至不是項目節點的其他節點。 |
復原 |
7.1.3 |
|
復原 |
7.1.3 |
兩個屬性集具有相同的匯入優先順序與展開名稱。兩個屬性集會具有相同的屬性,且沒有其他屬性集會含有名稱相同而重要性較高的共同屬性。 |
復原 |
7.1.4 |
|
復原 |
7.3 |
將 |
復原 |
7.3 |
將 |
復原 |
7.3 |
將 |
復原 |
7.4 |
將 |
復原 |
7.4 |
變數繫結項目內的範本會傳回屬性節點或命名空間節點。 |
復原 |
11.2 |
從傳遞至文件函式的 URI 上擷取資源時發生錯誤。 |
擲回例外狀況 |
12.1 |
文件函式中的 URI 參考包含片段識別項,且處理片段識別項時發生錯誤。 |
擲回例外狀況 |
12.1 |
在 |
復原 |
16 |
處理器不支援 |
復原 |
16.1 |
|
|
16.4 |
如果結果樹狀結構片段包含啟用輸出逸出的文字節點,將結果樹狀結構片段轉換成數字或字串。 |
忽略 |
16.4 |
對不能以 XSLT 處理器用來輸出的編碼方式,表示的字元停用輸出逸出。 |
忽略 |
16.4 |
在項目加入子系或屬性後,加入命名空間節點 |
復原 |
Errata e25 |
|
復原 |
Errata e24 |
文件函式的第二個引數節點集是空的,且 URI 參考是相對的。 |
復原 |
Errata e14 |
Errata 的章節位於 World Wide Web Consortium (W3C) XSL Transformations (XSLT) Version 1.0 Specification Errata 中,網址是 www.w3.org/1999/11/REC-xslt-19991116-errata。
使用者定義的實作行為
XslTransform 類別實作具有唯一的行為。本節將討論 xsl:sort
的提供者特定實作,以及 XslTransform 類別所支援的選用性功能。
xsl:sort
使用轉換進行排序時,W3C XSLT 1.0 版建議事項會進行某些觀察。包括:
兩個 XSLT 處理器可以是一致的處理器,但仍可以不同地排序。
並非所有 XSLT 處理器支援相同的語言。
至於語言方面,不同的處理器在
xsl:sort.
中未指定的特定語言上的排序方式會有所不同。
下列表格說明針對使用 XslTransform 之 .NET Framework 轉換實作中的每個資料型別所實作的行為排序。
資料型別 | 排序行為 |
---|---|
文字 |
資料使用 Common Language Runtime (CLR) 字串進行排序。比較方法和文化地區設定 (Locale)。當資料型別等於 "text" 時,XslTransform 類別中的排序行為會與 CLR 字串比較行為相同。 |
數字 |
數值會被視為 XML 路徑語言 (XPath) 數字,並會依據 W3C XML 路徑語言 (XPath) 1.0 版建議事項 3.5 節 (www.w3.org/TR/xpath.html#numbers) 中的詳細說明來排序。 |
支援的選擇性功能
下列表格說明 XSLT 處理器於 XslTransform 類別中實作的選用性功能。
功能 | 參考位置 | 附註 |
---|---|---|
位於 |
W3C XSLT 1.0 版建議事項, 章節 16.4 |
當 不支援包含文字且文字輸出已被逸出的結果樹狀結構片段。 當轉換為 XmlReader 或 XmlWriter 物件時,disable-output-escaping 屬性會被忽略。 |
請參閱
參考
XslTransform 類別
XslTransform 成員
概念
XslTransform 類別實作 XSLT 處理器
使用 XslTransform 類別進行 XSLT 轉換
轉換中的 XPathNavigator
轉換中的 XPathNodeIterator
XslTransform 的 XPathDocument 輸入
XslTransform 的 XmlDataDocument 輸入
XslTransform 的 XmlDocument 輸入