2016-08-22 47 views
0

在我的一個用例中,我的XSLT 2.0轉換(由Saxon和JAVA驅動)在輸出空間或換行符的任何位置生成額外的
字符。xslt輸出字符「
」

但是,當使用XSLT 1.0(由libXSLT和Perl驅動)完成相同的轉換時,它不會在輸出中獲得此特定字符。

我已經提到這個query,它解釋了SAXON將這些特殊字符序列化爲往返行程。

我的問題是,爲什麼行爲與XSLT 1.0不同?

回答

3

我想1999年的XSLT 1.0要比XML 1.1要舊,它需要https://www.w3.org/TR/xml11/#sec-line-ends中的那個字符的規範化,而XML 1.0 https://www.w3.org/TR/xml/#sec-line-ends不包括那個字符。在中概述的XSLT 2.0的序列化規則確實考慮了XML 1.1,而舊的XSLT 1.0則沒有。

+0

.....快速跟進問題。我應該在哪裏指定'版本1.1'? A] XSLT文件頭2]'xslt:stylesheet version'或3]在生成輸出文件的地方,即'exsl:document version',這樣我就可以正確生成字符引用? – Recker

+0

我沒有建議指定版本1.1,我只是試圖推測規範的發展歷史。我沒有看到'exsl:document'與那個和Saxon 9和XSLT 2.0有什麼關係。您可能想要提出一個新問題並進行詳細說明或編輯,並提供輸入,XSLT,想要的結果和當前結果的詳細信息。 –