Mur*_*rph 36
我想知道这个问题的基础,因为我觉得这很容易回答,但是一旦你去了这里:http://www.w3.org/TR/xsl/很明显它实际上是个好问题 -因为页面上的第一件事就是这句话:
此规范定义了可扩展样式表语言(XSL)的功能和语法,XSL是一种表达样式表的语言.它由两部分组成:
- 用于转换XML文档(XSLT)的语言
- 用于指定格式化语义的XML词汇表.
然而,回到现实世界,XSLT(这也是大多数人会认为你的意思是XSL)是一种将XML文档转换成其他东西的方法 - 其他东西往往不是另一个结构良好的文档,可能也被格式化为XML(尽管我使用XSLT将XML呈现为csv和plain(ish)文本).
另一方面,XSL-FO是关于格式化 - 关于以相当严格的方式在页面或一系列页面上布置内容.它非常有用,因为它允许您管理分布在多个页面上的内容,它相对简单地指定页面(甚至是奇数页面)的格式,包括页眉,页脚,边框,列等,并让您的内容流入.因此,人们可以在XML格式中加载大量数据,然后使用XSLT将该数据转换为由XSL-FO组成的文档,而XSL-FO又使用PDF中的适当工具进行渲染以进行打印或其他分发方式.
我的用例是获取一堆表格数据,将该数据导出为XML,将其呈现为XSL-FO,然后从那里转换为PDF,然后转到打印机,将打印机转换为500页目录.一个在XSL-FO中指定一个人想要页码,在特定情况下分页,有一个目录和一个索引(每个都基于特定的元素)和渲染过程(到PDF)处理填写页码全面的.
希望你现在不那么困惑了..
Mad*_*sen 19
除了首字母缩写词中的相似之处,这两种技术曾经是同一W3C规范的一部分(草案形式).后来决定将XSL(XSL-fo)和XSLT分成两个单独的规范.
XSL-FO是正式命名的XSL
为什么会这么混乱?XSL-FO和XSL是一回事吗?
是的,但我们会给你一个解释:
样式是关于转换和格式化信息.当万维网联盟(W3C)制定了他们的第一个XSL工作草案时,它包含了转换和格式化XML文档的语言语法.
之后,W3C的工作组将原始草案分成了单独的建议书:
Run Code Online (Sandbox Code Playgroud)* XSLT, a language for transforming XML documents * XSL or XSL-FO, a language for formatting XML documents * XPath, a language for navigating in XML documents
年代表的详细注释可以在Dave Pawson的主页上找到:http: //www.dpawson.co.uk/xsl/sect1/history.html
XSL是用于转换和呈现XML文档的语言系列
XSLT(XSL转换):用于将XML文档转换为其他XML文档或其他格式(如用于网页,纯文本或XSL格式对象的HTML)的语言,后者可能随后转换为其他格式,如PDF,PostScript和PNG.
转型可以做到以下三种方式:
<xsl:processing-instruction>例如:
XSL-FO(XSL格式化对象):Web浏览器不支持它,因为它专为打印输出而非在线查看而设计.(来自@Hobbes)
目前支持的输出格式包括PDF,PCL,PS,AFP,TIFF,PNG,SVG,XML(区域树表示),Print,AWT和TXT.主要输出目标是PDF.Soruce
示例代码:
<fo:table-row height=".5cm">
<fo:table-cell>
<fo:block></fo:block>
</fo:table-cell>
</fo:table-row>
Run Code Online (Sandbox Code Playgroud)
XSLT用于转换,XSL(与XSL-FO相同)用于格式化.
http://www.w3schools.com/xslfo/xslfo_intro.asp