深入XSLT第六章--- 联合样式表

简介: 深入XSLT第六章--- 联合样式表XSL提供两种机制来联合样式表:1.样式表导入,允许样式表之间相互引用2.样式表包含,允许样式表被原文组合.


深入XSLT第六章--- 联合样式表



XSL提供两种机制来联合样式表:

1.样式表导入,允许样式表之间相互引用
2.样式表包含,允许样式表被原文组合.

样式表导入

一个XSL样式表可以包含xsl:import元素.所有xsl:import元素必须出现在样式表的开头. xsl:import元素有一个 href 属性,它的值就表示要导入的样式表的URI. 相对URI是指相对于xsl:import元素的基URI.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:import href="article.xsl"/>
<xsl:import href="bigfont.xsl"/>
<xsl:define-attribute-set name="note-style">
<xsl:attribute-set font-posture="italic"/>
</xsl:define-attribute-set>
</xsl:stylesheet>

导向的样式表中的规则和定义比任何被导入样式表中的规则和定义都要重要.同样,一被导入的样式表中的规则和定义比之前导入的样式表中的规则和定义都要重要.一般来说,更重要的规则或定义比次重要的规则或定义要优先.每一类的规则和定义都会详细规定它.

样式表包含

一个样式表中可以用xsl:include元素来包含另一个XSL样式表. xsl:include也有href 属性,它的值就表示被包含的样式表的URI. 相对URI是指相对于xsl:include元素的基URI. xsl:include元素可以作为xsl:stylesheet元素的子元素,出现在任何xsl:import之后.XML树的层次在上该包含生效.href属性值定位的资源内容作为一个XML文档解析,在该文档中的xsl:stylesheet元素的子元素替代包含文档的xsl:include元素.同时在被包含的文档的xsl:import元素在包含文档中移上至任一存在的xsl:import元素之后不象xsl:import,被包含的规则或定义不影响他们被处理的方式.

嵌入样式表

通常一个样式表就是一个完整的XML文档,xsl:stylesheet元素作为文档的元素然而一个XSL样式表也可以嵌入在其它文档内容之中.内嵌的方式可能有两种:XSL样式表可以原文嵌入在一个非XML文档中或者xsl:stylesheet不作为文档元素出现在一个XML文档中.在第二种情况增加了出现内嵌样式,即自己规定样式的文档的可能. XSL还没有为之定义相应的机制.这是由于可以采用把样式表结合文档的通用方式来实现,只要满足

1. 该方式允许一部分内容可以规定为样式表,例如使用有片段标识符URI 
2. 该方式本身能被嵌入在文档中比如作为一个处理指令.定义这样的方式不在XSL的范围之内

下例表明了怎样用xml:stylesheet处理指令将样式表和文档结合来实现内嵌样式其中的URI在片段标识符中使用了一个Xpointer来确定xsl:stylesheet元素的位置.

<?xml version="1.0"?>
<?xml:stylesheet type="text/xsl" href="#id(style1)"?>
<!DOCTYPE doc SYSTEM "doc.dtd">
<doc>
<head>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" id="style1">
<xsl:import href="doc.xsl"/>
<xsl:template match="id(foo)">
<fo:block font-weight="bold"><xsl:process-children/></fo:block>
</xsl:template>
</xsl:stylesheet>
</head>
<body>

<para id="foo">
...
</para>

</body>
</doc>


相关文章
|
XML 数据格式
深入XSLT第三章 --- 样式表结构
深入XSLT第三章 --- 样式表结构 在XML文件中样式表用元素xsl:stylesheet来表示. XSL处理器处理源文件和样式表时都必须采用XML的名域(Namespace)机制[W3C XML Names].
592 0
|
XML 数据格式
深入XSLT第五章--- 模板
深入XSLT第五章--- 模板 1 概述 当应用于源元素的规则被确定后,就要具体实现该规则的模板.一个模板能包含文字结果的元素, 字符数据和产生结果树部分的指令.
546 0
|
前端开发 JavaScript Web App开发
|
XML 数据格式
XSLT轻松入门第三章:XSLT的元素语法
XSLT轻松入门第三章:XSLT的元素语法   通过前面两章的介绍,我们已经对XSLT的基本概念和它的转换过程有了一些了解。下面我们一起来学习XSLT的具体语法。
637 0
|
XML 前端开发 数据格式
XSLT轻松入门第一章:XSLT的概念
XSLT轻松入门第一章:XSLT的概念      1.XSLT的概念  1.1 什么是XSLT  1.2 为什么要用XSLT  1.3 XSLT的历史  1.4 什么是XPath  1.5 XSLT和CSS的比较  1.6 XSLT和IE5  1.XSLT的概念 我 们首先来澄清一个概念,大家可能听说过XSL(eXtensible Stylesheet Language),XSL和我们这里说的XSLT从狭义上理解是一样的,而按照W3C的标准,XSLT的说法更严格些,因此我们在文章中统一使用 XSLT的称法。
839 0
|
前端开发 JavaScript 容器
如何用 CSS 和 D3 创作一组摆线
效果预览 在线演示 按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。 https://codepen.io/comehope/pen/vavZPx 可交互视频 此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。
844 0
|
Web App开发 移动开发 前端开发
《HTML 5与CSS 3 权威指南(第3版·上册)》——3.1 新增的主体结构元素
F#入门 第四节 词法闭包 lambda表达式可以创建词法闭包...(文章正文)
1190 0
|
XML 数据格式
深入XSLT第四章 --- 模板规则和模式
深入XSLT --- 模板规则和模式 模板规则 模板规则由xsl:template元素来规定."match"属性标识了规则应用的源节点(集).xsl:template. 例如:一个XML文档可能包含下面的内容: This is an important point. 下列的模板规则匹配emph类型的元素,另有一个模板产生一fo:sequence 格式化对象,其font-weight属性为粗体(bold). xsl:process-children元素会递归处理”父”元素的“子”节点。
634 0