2017-04-10 52 views
0

正在測試的xsl:在當前saxon9he.jar輸出,並試圖使用下列調用:避免線斷開與撒克遜XSLT處理器

<xsl:output encoding="UTF-8" media-type="text/plain" 
     indent="yes" method="text" saxon:line-length="1000"/> 

這導致 「異常在線程‘主’net.sf. saxon.trans.LicenseException: 請求的功能(自定義序列{http://saxon.sf.net/}線長度)需要撒克遜-PE」在另一個樣式表

同時,以下似乎工作:

<xsl:result-document href="{$sourceFilePath}" method="html" omit-xml-declaration="yes" 
     encoding="UTF-8" indent="yes" saxon:line-length="120"> 

升級到付費PE版本不是一種選擇,因爲這項工作是開源標準開發項目的一部分,必須是可重複的。也不想將樣式表(和調用)從xsl:output重構爲xsl:result-document。

我希望可以爲xsl元素提供一致的實現支持。

參考撒克遜:線路長度 http://www.saxonica.com/documentation9.5/extensions/output-extras/line-length.htmlhttp://www.saxonica.com/documentation/index.html#!changes/serialization/9.2-9.3

回答

2

一般的規則是,所有的撒克遜擴展需要撒克遜-PE。我認爲Saxon-HE對這兩者的正確行爲應該是輸出警告並忽略請求:我會檢查是否發生了這種情況。

我們很高興能提供一款高度符合開源社區的XSLT處理器;我們能夠做到的事實得益於付費購買商業版本的人。我很抱歉,如果這有時意味着開源用戶不能總是擁有他們想要的所有功能,但如果沒有這種商業模式,開源用戶什麼都不會有。

+0

感謝您的回覆。如果這些工具確實沒有什麼特別的東西可以強制使用擴展名,那就太好了。首先造成困難的原因是saxon9he.jar(似乎過度)在第80列中插入一個換行符,從字面上打破了長長的源代碼輸出。讓樣式表本身控制所有文本(包括換行符)似乎是一個很好的默認值。 –

+0

規範說'method = html,indent = yes',處理器應該試圖以最大化原始HTML的可讀性而不改變瀏覽器呈現方式的方式插入空格,並且撒克遜正在熱心地嘗試實現這一目標。 –