回答
第10章(代碼生成)根據您previous question這樣的一些有趣的例子,我假設你想創建一個SVG圖像的XSL-FO文件。
一種選擇是將內聯的SVG圖像包含在fo:instream-foreign-object
中。 (使用this SVG圖像)一個完整的例子:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="master">
<fo:region-body />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="master">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:instream-foreign-object>
<svg xmlns="http://www.w3.org/2000/svg"
width="200" height="200">
<circle cx="100" cy="100" r="50" stroke="black"
stroke-width="5" fill="red" />
</svg>
</fo:instream-foreign-object>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
另一種選擇是從fo:external-graphic
參考SVG圖像:
<fo:external-graphic src="Svg_example4.svg"/>
如果你想自動完成這個,你可以只寫一個XSLT其將所述SVG與SVG一個XSL-FO文檔嵌入:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="master">
<fo:region-body />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="master">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:instream-foreign-object>
<xsl:copy-of select="." />
</fo:instream-foreign-object>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
XSL文件包含如何將源XML文件轉換爲其他格式(也可以是XML)的說明。因此,軟件不可能將XML文件轉換爲XSL樣式表,而無需進一步瞭解如何執行此操作。
這就像想要從HTML文件中獲取PHP腳本一樣。澄清:一個PHP腳本可能會產生HTML頁面
<html><body>hello world</body></html>
你不能推斷出原始腳本的樣子。它可能是一個簡單的echo()
-調用或複雜解碼操作的結果等。
同樣是從XML到XSL的轉換。您必須自己完成,因爲軟件無法知道如何將XML結果轉換爲其基礎XSL轉換表。
-1 - 當然可以將源XML文件轉換爲XSL。也可以將源HTML文件轉換爲PHP腳本。 – 2010-05-15 11:18:45
你沒有一個獨特的方法來做到這一點...
hello world!可以從A N Y PHP腳本創建!它可能是MySQL查詢的結果,或者簡單地命令echo「 hello world ...」...對於XML - > XSL同樣的行爲! – Simon 2010-05-15 11:26:52當然,沒有獨特的方式來做到這一點。但是,如果您有關於如何從源XML生成XSL的特定模式,則可以完成此操作。 – 2010-05-15 11:46:02
不,但您可以使用一些解決方案來幫助您更輕鬆地創建XSL文件。例如。 Altova XMLSpy
- 1. Android應用程序是否有任何菜單生成器?
- 2. 是否有爲Windows Store應用程序生成映像的應用程序?
- 3. 是否有任何應用程序使用嚮導生成Excel文件?
- 4. 是否有可能捕獲由Python應用程序生成的任何回溯?
- 5. 當一個iphone應用程序安裝時,是否有任何包生成?
- 6. 如何在C#.net web應用程序中使用XML和XSL生成itextsharp PDF?
- 7. 是否有任何簡單的程序爲Windows 8應用程序生成JSON數據綁定的類?
- 8. 是否有任何symfony2 tutorail爲複雜的web應用程序
- 9. 是否有任何工具從xml自動生成C#類?
- 10. 生成xml和xsl從php
- 11. 是否有從PDF生成HTML表單的應用程序?
- 12. 是否有Java/Spring Web應用程序的表單生成器?
- 13. EJB應用程序啓動時是否發生任何事件?
- 14. 是否有任何教程在Heroku上放置應用程序
- 15. 如何檢測是否有任何原生應用程序在Android中啓動
- 16. 從應用程序商店出售應用程序是否有任何限制?
- 17. 使用XSL XML模板生成的Gradle任務
- 18. 如何將iAds集成到應用程序中是否有任何示例?
- 19. 離子應用程序開發是否有效?在Ionic Framework中是否有任何Android應用程序開發?
- 20. 是否有任何演示應用程序可用於iPhone + MGTwitterEngine Twitter集成?
- 21. 使用xml和xsl生成JavaScript
- 22. Android應用程序生成器否Conden
- 23. 是否有任何IIS應用程序池使用指南?
- 24. 是否有任何通用CRUD客戶端應用程序?
- 25. 是否有任何包使用Ruby驅動Excel應用程序?
- 26. 是否有任何使用FriendFeed API的應用程序?
- 27. 是否有任何API以編程方式生成XSD?
- 28. 是否有任何iOS 4.0應用程序生命週期的圖形描述?
- 29. 是否有能夠從Office XML文檔(如DOCX,XLSX)生成XSL-FO的庫?
- 30. 是否有任何跨平臺工具可以將響應式網站變成原生移動應用程序?
「XSL」 == XML樣式表語言,它本身具有兩個部分:變換(XSLT)和佈局(XSL格式化Ob的項目,XSL-FO)。你在說什麼?或者更具體地說:您是否希望XSLT創建XSL-FO?或者創建一個XSLT來創建其他內容? – Richard 2010-05-15 10:03:19
我正在尋找一個爲xml文件生成xsl-fo的應用程序。 – user338292 2010-05-15 18:29:34
其實我必須將XML轉換爲PDF。但最糟糕的是,XML上有svg標籤,並且使XML非常糟糕,所以我必須編寫一個xsl-fo來讀取SVG標籤。所以這就是我的咖啡館,任何一個解決方案的問題? – user338292 2010-05-15 18:32:06