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

深入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>

时间: 2024-10-25 19:53:59

深入XSLT第六章--- 联合样式表的相关文章

深入XSL(5)---联合样式表(转)

样式表   深入XSL(5)---联合样式表翻译:孙一中  XSL提供两种机制来联合样式表: 1.样式表导入,允许样式表之间相互引用2.样式表包含,允许样式表被原文组合. 样式表导入一个XSL样式表可以包含xsl:import元素.所有xsl:import元素必须出现在样式表的开头. xsl:import元素有一个 href 属性,它的值就表示要导入的样式表的URI. 相对URI是指相对于xsl:import元素的基URI. <xsl:stylesheet xmlns:xsl="http:

样式表概述:CSS实用代码介绍

css|样式表 CSS(Cascading Stylesheets,层叠样式表)是一种制作网页的新技术,现在已经为大多数的浏览器所支持,成为网页设计必不可少的工具之一.使用CSS能够简化网页的格式代码,加快下载显示的速度,也减少了需要上传的代码数量,大大减少了重复劳动的工作量.尤其是当你面对的是有数百个网页的站点时,CSS简直象是神对我们的恩赐! 前言 CSS(Cascading Stylesheets,层叠样式表)是一种制作网页的新技术,现在已经为大多数的浏览器所支持,成为网页设计必不可少的工

深入XSLT第三章 --- 样式表结构

深入XSLT第三章 --- 样式表结构 在XML文件中样式表用元素xsl:stylesheet来表示. XSL处理器处理源文件和样式表时都必须采用XML的名域(Namespace)机制[W3C XML Names].所有XSL定义的元素(在文件中带有前缀xsl)只有是属于URI为http://www.w3.org/TR/WD-xsl中的某一个名域时才会被XSL识别; XSL 定义的元素只是在样式表中才认得,而并不是在源文件中.  xsl:stylesheet元素有一项可选的属性result-ns

如何让xslt样式表接受参数

我们经常会有这样的需求:有多份数据,需要共享一份样式表来转换.他们的 区别可能就在于顶部会有一些小的差异,那么如何解决这个事情呢? 1. 在XSLT中定义参数 <?xml version="1.0" encoding="utf- 8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:m

运行时将数据与XSLT样式表集成

本文描述了一种用于进行下列操作的机制:分别开发应用程序业务数据和表示数据,然后使用通用的 XSLT 样式表将它们组合在一起.应用程序业务数据被格式化成 XML 形式,而表示数据可以用传统工具来创建.附加属性增强了表示数据,样式表使用这些属性来将表示细节应用于实际内容.对于最终格式的创建,不需要专门的编程,因为这个过程是由 XSLT 处理器完成的. 为最充分地理解本文,您应该了解 XML 和 XSLT 的基础知识.请参阅 参考资料一节,以获得至可作为这些主题介绍的教程和文章的链接.这里显示的所有示

将XSLT作为HTML的样式表的使用方法示例

 简介 当听到样式表这个词时,您可能会想到 CSS 样式表.XSLT 样式表通常用于 XML 转换,比如在 Web 服务之间映射数据.因为 XSLT 非常适合此用途,所以创建了顶层元素 <stylesheet> 的 <xsl:transform> 别名,虽然这很少使用.这种 XSLT 转换的输入结构与输出结构有很大的不同.最重要的是,命名空间的不同. XSLT 样式表的输入结构与输出结构相似,但却更简单些.其中已经扩充了一些标记,但大部分标记只是原样复制到输出.输入和输出的命名空间

利用客户端XSLT样式表转换xml文档

源xml文档和那两个xslt样式表我没有提供哦,大家自己写写算了<html><head><style type="text/css">body {font-family:Tahoma,Verdana,Arial,sans-serif; font-size:14px}.head {font-family:Tahoma,Verdana,Arial,sans-serif; font-size:18px; font-weight:bold}</styl

第六章——根据执行计划优化性能(2)——查找表/索引扫描

原文:第六章--根据执行计划优化性能(2)--查找表/索引扫描 前言:       在绝大部分情况下,特别是从一个大表中返回少量数据时,表扫描或者索引扫描并不是一种高效的方式.这些必须找出来并解决它们从而提高性能,因为扫描将遍历每一行,查找符合条件的数据,然后返回结果.这种处理是相当耗时耗资源的.在性能优化过程中,一般集中于: 1.  CPU 2.  Network 3.  磁盘IO 而扫描操作会增加这三种资源的开销.   准备工作: 下面将创建两个表来查看不同的物理关联操作的不同影响.创建脚本

第四章 在MVC4.0中对脚本以及样式表的引用变化

原文:http://www.cnblogs.com/xdotnet/archive/2012/07/21/aspnet40_webpage20.html 一.可以直接使用"~",而无需使用Href对象实例 这个是一大变化,给我们ASP.NET MVC开发人员带来了很便捷的代码书写方式,提高不少效率.在MVC3.0中加入我们需要加入一张图片时,需要在IMG标签的SRC属性加上 Url.Content或Href对象方法等来对路径进行解析.在WebPage 2.0中Razor模板引擎能够自动