2014-01-22 51 views
1

當我嘗試使用Saxon 9.1.0.8或Saxon-HE 9.5.1.3J運行此X​​SLT樣式表(從http://www.oxygenxml.com/archives/xsl-list/201001/msg00361.html改編而來)時,我得到一個空的輸出文件。撒克遜人的用法:recognise-binary

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saxon="http://saxon.sf.net/" version="2.0"> 
    <xsl:output saxon:recognize-binary="yes" method="text"/> 
    <xsl:template match="/"> 
    <?hex 07?> 
    <xsl:processing-instruction name="hex" select="'07'"/> 
    </xsl:template> 
</xsl:stylesheet> 

Saxon documentation和上面提到的消息,我會預期該輸出是含有一個(或兩個)^G字符的字符串。爲什麼我根本沒有得到任何產出?

+0

請詳細說明你的問題。目前還不清楚你在詢問什麼 – hek2mgl

回答

1

自定義序列化需要Saxon-PE(或EE)。

你應該已經得到類似這樣的錯誤:

轉型失敗:請求的功能(自定義序列 {} http://saxon.sf.net/識別二進制)需要撒克遜PE

http://saxonica.com/documentation/index.html#!extensions

+0

更具體地說,在9.3.0.5中,我得到「test.xsl第3行第59列的xsl:output錯誤: XTSE0020:序列化參數{{http://saxon.sf.net /} recogniz ...}在Saxon-HE中不可用 無法編譯樣式表,檢測到1個錯誤。「 –

+0

由於某種原因,我沒有收到錯誤消息。我期望該屬性可用,因爲在其他屬性上(例如'saxon:ptree'),文檔明確指出需要Saxon-EE和/或Saxon-PE。對於撒克遜人來說不是這樣:識別二進制的 - 也許這是一個疏忽。 – user1010997

+0

@ user1010997 - 我認爲saxon命名空間中的任何屬性或擴展函數都需要PE/EE。儘管如此,我沒有任何證據可以證實。 –

1

我用Saxon-EE 9.3.0.5試過了,它可以工作。

請注意,您需要xsl:processing-instruction窗體。樣式表中的文字PI被刪除,它們不會將處理指令發送到輸出。