共用方式為


XslTransform 類別中的 Discretionary 行為實作

Note注意事項

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

文字節點同時符合 xsl:strip-spacexsl:preserve-space

復原

3.4

來源節點符合一個以上的範本 (Template) 規則。

復原

5.5

命名空間統一資源識別元 (URI) 會被宣告成多個命名空間 URI 的別名,且全都具有相同的匯入優先順序。

復原

7.1.1

從屬性值範本產生的 xsl:attributexsl:element 中的名稱屬性,不是有效的限定名稱 (QName)。

擲回例外狀況

7.1.12 和 7.1.3

在子節點已經加入項目節點之後,將屬性加入至項目。

復原

7.1.3

將屬性加入至不是項目節點的其他節點。

復原

7.1.3

xsl:attribute 項目內容的執行個體不是文字節點。

復原

7.1.3

兩個屬性集具有相同的匯入優先順序與展開名稱。兩個屬性集會具有相同的屬性,且沒有其他屬性集會含有名稱相同而重要性較高的共同屬性。

復原

7.1.4

xsl:processing-instruction 名稱屬性不會同時產生無冒號名稱 (NCName) 與處理指示目標。

復原

7.3

xsl:processing-instruction 的內容執行個體化會建立文字節點以外的節點。

復原

7.3

xsl:processing-instruction 的內容執行個體化的結果包含字串 "?>"。

復原

7.3

xsl:comment 的內容執行個體化的結果包含字串 "--",或以 "-" 作為結尾。

復原

7.4

xsl:comment 的內容執行個體化的結果會建立文字節點以外的節點。

復原

7.4

變數繫結項目內的範本會傳回屬性節點或命名空間節點。

復原

11.2

從傳遞至文件函式的 URI 上擷取資源時發生錯誤。

擲回例外狀況

12.1

文件函式中的 URI 參考包含片段識別項,且處理片段識別項時發生錯誤。

擲回例外狀況

12.1

xls:output 中有多個屬性具有非具名 cdata-section-elements 的相同名稱,這些屬性具有相同的重要性優先順序。

復原

16

處理器不支援 xsl:output 項目的 encoding 屬性中所指定的字元編碼值。

復原

16.1

disable-output-escaping 用於文字節點,而且該文字節點會被用來建立結果樹狀結構的文字節點以外的項目。

disable-output-escaping 屬性會被忽略

16.4

如果結果樹狀結構片段包含啟用輸出逸出的文字節點,將結果樹狀結構片段轉換成數字或字串。

忽略

16.4

對不能以 XSLT 處理器用來輸出的編碼方式,表示的字元停用輸出逸出。

忽略

16.4

在項目加入子系或屬性後,加入命名空間節點

復原

Errata e25

xsl:number 是 NaN、無限或小於 0.5。

復原

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 類別中實作的選用性功能。

功能 參考位置 附註

位於 <xsl:text...><xsl:value-of...> 標記上的 disable-output-escaping 屬性。

W3C XSLT 1.0 版建議事項,

章節 16.4

xsl:textxsl:value-of 項目使用於 xsl:commentxsl:processing-instructionxsl:attribute 項目中時,disable-output-escaping 屬性就會被忽略。

不支援包含文字且文字輸出已被逸出的結果樹狀結構片段。

當轉換為 XmlReaderXmlWriter 物件時,disable-output-escaping 屬性會被忽略。

請參閱

參考

XslTransform 類別
XslTransform 成員

概念

XslTransform 類別實作 XSLT 處理器
使用 XslTransform 類別進行 XSLT 轉換
轉換中的 XPathNavigator
轉換中的 XPathNodeIterator
XslTransform 的 XPathDocument 輸入
XslTransform 的 XmlDataDocument 輸入
XslTransform 的 XmlDocument 輸入