深入XSLT第二章--- 构造结果树概述

深入XSL--- 构造结果树概述

XSL 是表达样式表(stylesheet)的语言.每一个样式表描述了呈现一类XML源文档的规则.呈现的过程包括两部分:第一,由源树建立结果树 (result tree);第二,结果树被解释并在显示器、纸张或以语音等其他的媒体的格式化形式输出. 第一步,构造结果树,是将模式(pattern)与模板(template)相结合实现的. 模式与源树中的元素相匹配.模板被实例化产生部分结果树.结果树与源树是分离的.结果树的结构可以和源树截然不同.在结果树的构造中,源树可以可以被过滤 和重新排序,还可以增加任意的结构.第二步,格式化,是用该XSL文档规定的格式化词表实现结果树的构造.正规来说,这个词表是一个XML的名域 (namespace).词汇表中的每一种元素类型对应一个格式化对象类.一种格式化对象类表达一种特定的格式化表现方式.例如,块(block)格式化 对象类表示将一段的内容拆成一行一行.词汇表的每个属性对应一种格式化特性.格式化对象类有一特殊的格式化特性集合,这样能够更好地控制格式化对象类的表 现方式;例如,在集合各行之前或之后控制行的缩进,行间距.一个格式化对象能拥有内容,而它的格式化表现应用于其内容.

XSL 可以不需要结果树使用格式化词库,这样能够被用作通用的XML传输.例如,XSL能被用来将XML转化为结构良好的HTML,即为采用HTML定义的元素 类型和属性的XML.当结果树采用了格式化词库,相遵循的XSL实现必须能够根据在该文件中定义的格式化词库的语义解释结果树;它也能将结果树具体化为 XML,但没有必要能这样做.

样 式表包含了一套模板的规则集合.一个模板规则有两个部分:匹配源树中节点的模式(pattern)以及实例化(instantiated)后组成部分结果 树的模板(template).它允许一个样式表可用于有类似源树结构的一大类文档.一个模板包含一些元素,它们规定了文字结果的元素结构.一个模板还可 以包含作为产生结果树片段的指令元素.当一个模板实例化后, 执行每一个指令并置换为其产生的结果树片段.指令能够选择并处理后代的元素. 通过查找可应用的模板规则然后实例化其模板,后代的元素处理后产生了结果树片段.元素只有在被执行的指令选中才作处理.在搜索可用模板规则过程中,不止一 个模板规则可能匹配给定元素的模式.然而,仅应用一个模板的规则.决定采用哪一规则的方法在"模板规则的冲突决定"中说明.XSL用XML的名域(namespaces)来区别属于XSL处理器指令的元素和规定文字结果的树结构的元素.指令元素属于XSL名域.在文档中采用前缀xsl:表示XSL名域中的元素.一个XSL样式表包含了一个xsl:stylesheet稳当元素.该元素可以包含xsl:template元素来规定模板的规则.下面的例子是一个简单的XSL样式表,它为包含emphasis元素的para元素序列构造结果树.result-ns="fo"属性表明正在构造使用格式化对象词库的树.para元素成为了块格式化对象,字体大小为10pt,之前的空格为12pt.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns:fo="http://www.w3.org/TR/WD-xsl/FO" result-ns="fo">
<xsl:template match="/">
<fo:page-sequence font-family="serif">
<xsl:process-children/>
</fo:page-sequence>
</xsl:template>
<xsl:template match="para">
<fo:block font-size="10pt" space-before="12pt">
<xsl:process-children/>
</fo:block>
</xsl:template>
</xsl:stylesheet>

xsl:stylesheet元素也能包含由其他XSL的样式表导入的元素,定义宏的元素,定义全局常量的元素,以及识别源属性为个别元素标记的元素.

时间: 2024-10-25 23:40:41

深入XSLT第二章--- 构造结果树概述的相关文章

Docker概述 第二章

本文讲的是Docker概述 第二章,[编者的话]在本次介绍Docker的迷你系列第一章中,我们了解了什么使Docker如此特别.虚拟机与容器之间的区别和组成Docker的主要组件.在本博文中,我们将直接与一些容器接触.尤其是,我们将展示如何启动一个容器,如何使用Dockerfile构建镜像,如何与注册服务(registries)打交道,并介绍数据卷(data volumes)的基本概念. 启动容器 在启动一个容器之前,你需要先从注册服务中拉取 $ docker pull alpine 启动容器执

设备树概述【转】

转自:http://docs.oracle.com/cd/E38902_01/html/E38873/kernelovr-64300.html 设备树概述 Oracle Solaris OS 中的设备表示为互连的设备信息节点树.设备树描述特定计算机的已装入设备的配置. 设备树组件 系统将会生成树结构,其中包含有关引导时连接到计算机的设备的信息.此外,系统正常运行时也可以动态重新配置设备树.设备树从表示平台的根设备节点开始. 根节点下面是设备树的分支.分支由一个或多个总线结点设备和一个终止叶设备组

第二章、进程的描述与控制

第二章.进程的描述与控制 2.1 前趋图和程序执行 2.1.1 前趋图 概念: 所谓前趋图:指一个有向无循环图(DAG),它用于描述进程之间执行的先后顺序. 2.1.2 程序顺序执行 特征: 顺序性 封闭性:指程序在封闭的环境中运行,程序运行时独占全机资源,资源的状态只有本程序才能改变,程序一旦开始执行,其执行结果不受外界因素影响 可再现性:只要条件相同还会得到相同的执行结果. 2.1.3 程序并发执行 特征: 间断性 失去封闭性 不可在现性 2.2进程的描述 2.2.1 进程的定义和特征 定义

&amp;gt; 第二章 NGWS Runtime 技术基础(rainbow 翻译) (转自重粒子空

<<展现C#>> 第二章 NGWS Runtime 技术基础(rainbow 翻译)   出处:http://www.informit.com/matter/ser0000001/chapter1/ch02.shtml 正文: 第二章  NGWS  runtime 技术基础     既然你已经具有了C#全面的印象,我也想让你了解NGWS runtime的全貌.C#依靠由NGWS提供的运行时:因此,有必要知道运行时如何工作,以及它背后所蕴含的概念.    所以,这一章分为两部分--它

《.net编程先锋C#》第二章 理论基础-公用语言 运行环境(转)

编程 第二章 理论基础-公用语言 运行环境既然你已经具有了C#全面的印象,我也想让你了解NGWS runtime的全貌.C#依靠由NGWS提供的运行时:因此,有必要知道运行时如何工作,以及它背后所蕴含的概念.所以,这一章分为两部分--它们是所有的概念和使用的基础.两部分的内容虽然有些重叠,但它有助于加深理解正在学习的概念. 2.1 NGWS RuntimeNGWS和NGWS Runtime为你提供了一种运行时环境.该运行时管理执行代码,并提供了使编程更容易的服务.只要你的编译器支持这种运行时,你

《程序设计解题策略》——第1章 利用树型数据关系的解题策略 1.1 利用划分树求解整数区间内第k大的值

第1章 利用树型数据关系的解题策略 树是一个具有层次结构的集合,一种限制前件数且没有回路的连通图.在现实生活和程序设计的竞赛试题中,许多问题的数据关系呈树型结构,因此有关树的概念.原理.操作方法和一些由树的数据结构支持的算法,一直受到编程者的重视,被广泛应用于解题过程.在本章里,我们将介绍利用树型数据关系解题的七种策略: 1) 利用划分树求解整数区间内第k大值. 2) 利用最小生成树及其扩展形式(最优比率生成树.最小k度生成树.次小生成树)计算有权连通无向图中边权和满足限制条件的最优生成树. 3

java 程序性能优化《第二章》设计优化 2.1善用设计模式 1 单例模式

java 程序性能优化<第二章>设计优化 2.1善用设计模式 1 单例模式 设计模式是前人工作的总结和提炼.通常,被人们广泛流传的设计模式都是对某一特定问题的成熟的解决方案.如果能合理的使用设计模式,不仅能使系统更容易被他人理解,同时也能使系统拥有更加合理的结构.本节总结归纳了一些经典的设计模式,并详细说明它们与软件性能之间的关系. 2.1.1 单例模式 单例模式是设计模式中使用最为普遍的模式之一.它是一种对象创建模式,用于生产一个对象的具体实现,它可以确保系统中一个类只产生一个实例.在Jav

《Cisco防火墙》一第2章Cisco防火墙系列概述2.1 ASA设备的概述

第2章Cisco防火墙系列概述 Cisco防火墙 本章包含了如下主题: ASA设备概述: 防火墙服务模块概述: 基于IOS的集成防火墙概述. 世界上最好的商品是那些容易被人掌握和理解的产品,简单易用的事物永远是最具说服力的. -笛卡尔 在本书的第 1 章中,我们介绍了防火墙设备,并阐述了其在网络安全中的重要作用.在探讨了防火墙的主要分类方法后,我们对状态化防火墙这种技术的发展历程进行了简要的说明. 本章是对第 1 章内容的补充,主要内容是对支持状态化防火墙的 Cisco 硬件平台进行介绍.为了方

《机器人操作系统ROS原理与应用》——第1章 智能机器人及其发展概述

第1章 智能机器人及其发展概述 1.1 智能机器人概念及其特点 1.1.1 智能机器人概念 1954年,美国人乔治·德沃尔制造出了世界上第一台可编程的机器人:1959年,德沃尔与美国发明家约瑟夫·英格伯格联手制造出了第一台工业机器人,自此之后,机器人大体经历了如下三个发展阶段.第一代机器人称为示教再现型机器人,它是通过计算机控制一个多自由度的机械,并通过示教存储程序和信息,在工作时读取信息,发出指令,机器人就可以根据事先示教的结果,再现出同样的动作,如汽车点焊机器人只要对其示教点焊过程,它就总是