深入XSL(6)---對象格式化(轉(zhuǎn)---對象格式化)
發(fā)表時(shí)間:2023-08-13 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]深入XSL(6)---對象格式化翻譯:孫一中簡介在構(gòu)造結(jié)果樹的時(shí)候可以采用格式化詞庫的中定義的對象來生成結(jié)果.我們已經(jīng)在XSL概述中了解了格式化對象的基本概念,通常格式化詞庫是一個(gè)XML的名域.其中...
深入XSL(6)
---對象格式化
翻譯:孫一中
簡介
在構(gòu)造結(jié)果樹的時(shí)候可以采用格式化詞庫的中定義的對象來生成結(jié)果.我們已經(jīng)在XSL概述中了解了格式化對象的基本概念,通常格式化詞庫是一個(gè)XML的名域.其中的每一個(gè)元素的類型對應(yīng)一類格式化對象.最新的XSL草案已經(jīng)定義了一些這樣的格式化對象。雖然它還在完善之中,但我們不妨把它的基礎(chǔ)和精髓介紹給大家。
格式化對象及其屬性
表明為non-core 的對象不必在XSL中實(shí)現(xiàn).已經(jīng)定義的格式化對象有下列這些.
布局格式化對象(Layout Formatting Objects)
page-sequence:提供這樣的機(jī)制,可以定義主序列(sequences),然后將內(nèi)容和這些主序列相結(jié)合.
simple-page-master:描述網(wǎng)頁的普通布局或布局序列(打印或在線狀態(tài)).
內(nèi)容流對象(Content Flow Objects)
queue:集中在頁序列中被替代的內(nèi)容.
sequence:將內(nèi)容分組并允許分配共享繼承屬性.
list:將所有項(xiàng)組成一個(gè)列表.
list-item:為每個(gè)列表中項(xiàng)目組合其列表項(xiàng)標(biāo)簽和主體.
list-item-label:保存一個(gè)列表項(xiàng)的數(shù)字或標(biāo)簽.
list-item-body:保存列表項(xiàng)的主體內(nèi)容.
block:用以表示段落、標(biāo)題、說明等.
character:格式化程序的原子單位.在需要明確重載有具體表現(xiàn)字體的字符或字符串時(shí)使用它.
rule-graphic:可用于繪制一圖形線將網(wǎng)頁劃分為幾個(gè)區(qū)域.
graphic:保存一個(gè)圖片或矢量圖象. 在XSL可能替代為行內(nèi)或塊層次.graphic的內(nèi)容可能是內(nèi)部流或外部的連接.
score:突出的文本.產(chǎn)生下劃線、橫透線、上標(biāo)線等.
Boxes:設(shè)置底色和邊框.
inline-box:突出的文本或圖象.產(chǎn)生邊框和背景.控制內(nèi)容間距.
block-level-box:突出的文本或圖象.產(chǎn)生邊框和背景.控制內(nèi)容間距.
Building Blocks:指示格式化程序在內(nèi)容流的當(dāng)前位置構(gòu)造文本對象.
page-number:使得格式化程序產(chǎn)生頁碼.
Online Flow Objects
link:網(wǎng)頁瀏覽器鏈接.
link-end-locator:鏈接的目標(biāo)或?qū)ο?
附:XSL完整實(shí)例
下面是一個(gè)簡單但完整的樣式表例子.
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"
xmlns:fo="http://www.w3.org/TR/WD-xsl/FO" result-ns="fo" indent-result="yes">
<xsl:template match='/'>
<fo:page-sequence font-family="serif">
<fo:simple-page-master name='scrolling'/>
<fo:queue queue-name='body'>
<xsl:process-children/>
</fo:queue>
</fo:page-sequence>
</xsl:template>
<xsl:template match="title">
<fo:block font-weight="bold">
<xsl:process-children/>
</fo:block>
</xsl:template>
<xsl:template match="p">
<fo:block>
<xsl:process-children/>
</fo:block>
</xsl:template>
<xsl:template match="emph">
<fo:sequence font-style="italic">
<xsl:process-children/>
</fo:sequence>
</xsl:template>
</xsl:stylesheet>
XML的源文件是
<doc>
<title>An example</title>
<p>This is a test.</p>
<p>This is <emph>another</emph> test.</p>
</doc>
它將生成下面的結(jié)果:
<fo:page-sequence xmlns:fo="http://www.w3.org/TR/WD-xsl/FO" font-family="serif">
<fo:simple-page-master name="scrolling"/>
<fo:queue queue-name="body">
<fo:block font-weight="bold">An example</fo:block>
<fo:block>This is a test.</fo:block>
<fo:block>This is <fo:sequence font-style="italic">another</fo:sequence> test.</fo:block>
</fo:queue>
</fo:page-sequence>
-----------------------------------------------------------------------------