注意事項 |
|---|
XslTransform 類別在 .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 版建議事項會在哪個章節中討論此問題。
問題 |
行為 |
章節 |
|---|---|---|
文字節點同時符合 xsl:strip-space 及 xsl:preserve-space。 |
復原 |
3.4 |
來源節點符合一個以上的範本規則。 |
復原 |
5.5 |
命名空間統一資源識別元 (URI) 會被宣告成多個命名空間 URI 的別名,且全都具有相同的匯入優先順序。 |
復原 |
7.1.1 |
從屬性值範本產生的 xsl:attribute 與 xsl: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 的章節位於全球資訊網協會 (W3C) XSL 轉換 (XSLT) 1.0 版規格的 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:comment、xsl:processing-instruction 或 xsl:attribute 項目中使用 xsl:text 或 xsl:value-of 項目時,會忽略 disable-output-escaping 屬性。 不支援包含文字且文字輸出已被逸出的結果樹狀結構片段。 當轉換為 XmlReader 或 XmlWriter 物件時,disable-output-escaping 屬性會被忽略。 |
請參閱
參考
概念
XslTransform 的 XPathDocument 輸入
注意事項