【HTML/XML 8】XSL,可扩展样式表语言
导读:上篇博客说了在XML文档中实现表现形式的一种形式:CSS层叠样式表,本篇博客将接着说明其另一种实现方式XSL,并将分析XSL和CSS之间的 关系。
一、XSL简介
XSL(eXtensible Stylesheet Language,可扩展样式表语言):是为XML文档定义的一种标识语言。简单的XML可以被CSS解释,但是面对复杂的高度结构化的XML数据或者是XML文档,则只能依赖XSL极强的格式化的能力而展现给用户。
XSL是包含了一套元素集的XML语法规范,二改语法规范将被用来把XML文档转换为HTML文档。一个XSL样式表集合了一系列设计规则,以用于将信息从XML文档中提取出来。并将其转换为其他格式,例如:HTML。XSL能使web浏览器直接根据用户的不同需求改变文档的表示法,从而不需要再与服务器进行交互通信。XSL介于CSS和SGML的DSSSL(Document style semantics and
specification Language,文档样式语义和规范语言)之间,DSSSL定义格式化对象的全特征模式,但是由于DSSSL使用框架语法,而且特别复杂,并未得到推广。
可扩展样式表语言包括两个部分:转换语言和格式化语言。每种语言都是一种XML应用,转换语言提供定义规则的元素,如何将XML文档转换为另一个XML文档,转换的文档可以使用源文档的标记和DTD,也可以使用一组完全不同的标记。甚至可能使用XSL的格式化对象定义的标记。
二、XSL的编程思想
对于作为表现对象的XML文档,XSL把它看做是一颗由许多节点组成的树,这棵树称为源树。其中的根元素和子元素都是源树的节点。当设计XSL文件来表现XML文档时,从源树中将相应的数据取出,利用这些数据形成一棵新树,称为结果树。
注意:结果树和源树是相互分离的,对结果树中的数据进行操作并不会影响源树中的数据,XSL正是通过这样的方式实现了XML文档的内容和表现形式彻底分离。
组成的结果树,存放在XSL的模板中,通常使用HTML来制作放置结果树的模板,这个模板称作HTML模板。通过设置HTML标记的style属性来定义需要的样式。
XSL思想:设计者编写XSL文件,实际上是在编写某种格式的模板,这个模板将用来存放XML文档提取出的数据,完成由源树构造结果树的工作。
三、XSL和CSS的比较
3.1,CSS:HTML的样式表语言
HTML使用预先确定的标记,所以这些标记的含义都很好理解。比如<P>元素定义一段,<H1>元素定义一个标题。使用CSS向HTML元素增加显示格式是一个简单的过程,很容易告诉浏览器用某种字体或颜色去显示某个元素,浏览器知道如何显示这些元素。
3.2,XSL:XML的样式表
XML不使用预先确定的标记,因此标记的含义并不能被直接理解。比如<table>可以表示一个HTML表格,也可以表示为一个家具,为了显示XML文档,必须有一个机制来描述如何显示文档。这些机制之一是CSS,但是作为XML文档的首选,是XSL。
3.3,XSL:不仅是一个样式表
XSL包含3个部分:
XSLT:一种用于转换XML文档的语言
XPath:一种用于在XML文档中导航的语言
XSL-FO:一种用于格式化XML文档的语言
四、XSL转换XML格式的方式
4.1,客户端
XML文档和相关的样式单都是用户客户端的,然后客户端程序按照样式单中指定的格式变换文档,并将它呈现给用户。
4.2,服务端
服务器将XSL样式单应用于XML文档,以便此文档能够变换成其他格式(通常为HTML),并将变换后的文档发送到客户端程序。
4.3,通过HTML
将原XML文档变换成其他格式后,才把此文档放置在服务器上,服务器和客户程序只处理变换后的文档。
4.4,综述
这三种方法,虽然都使用相同的XML文档和XSL样式,但每一种都使用不同的软件。将XML文档发送到Internet explorer的普通web服务器使用第一种方法。使用IBM alphawork的XML功能将文档应用于与applet兼容的web浏览器使用第二种方法。使用命令行XT程序来将XML文档变换成HTML文档,然后将HTML文档放置在web服务器上,采用的是第三种方法。
注:这三种方法,都使用相同的XSL语言。
五、总结
对于XSL也从整体上了解了,但是CSS之前用过,而这个XSL文档,也就是在之前的例子中,写过一次,还不是很熟练,还需要多加练习。
【HTML/XML 8】XSL,可扩展样式表语言的更多相关文章
- XSLT可扩展样式表语言转换 System.Xml.Xsl、XslCompiledTransform类
XML文件 books.xml: <?xml version="1.0" encoding="utf-8" ?> <bookstore> ...
- XML XSD XSL区别与联系
XML: XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准 ...
- XML、XSL、XSLT、DTD、XSD的区别
前言: 在众神的努力之下,js已经可以跨出浏览器走向不同的领域了 也因为这个,对前端工程师的要求也不仅仅是会写写h5页面做交互.前端涉及的领域越来越广,对开发人员对素质能力要求越高. 以前因设备不同导 ...
- 使用 XSLT 作为 HTML 的样式表
简介 当听到样式表这个词时,您可能会想到 CSS 样式表.XSLT 样式表通常用于 XML 转换,比如在 Web 服务之间映射数据.因为 XSLT 非常适合此用途,所以创建了顶层元素 <styl ...
- WebService错误:使用 XSL 样式表无法查看 XML 输入
在浏览器中输入URL: 'http://localhost/test.aspx' 出现下面错误提示信息: 无法显示 XML 页. 使用 XSL 样式表无法查看 XML 输入.请更正错误然后单击 刷新 ...
- 微软BI 之SSIS 系列 - XML Task 中XSLT 样式表转换错误记录
开篇介绍 此文章专门记录 XSLT 样式表转换过程中的语法问题 错误一 值与属性的倒置 修改了几次样式表,但还是一如既往的报错,报错信息如下: [XML Task] Error: An error o ...
- htm,html,xhtml,xml,xsl,dhtml,shtm和shtml的区分
介绍一下htm,html,xhtml,xml,shtml的区分,以下内容来自百度后的知识整理. HTML和htm: HTML(Hypertext Markup Language)超文本传输语言,是ww ...
- XML通过XSL格式化的那点事(XML到自定义节点折叠显示)
引言 有时我们想看下系统生成的XML文件(如XML格式的Project文件),如果文件结构简单,我们浏览器看起来还比较方便,但是随着XML schema复杂后就变得让人头疼啦,单独写一个程序去做展现又 ...
- CSS样式----图文详解:css样式表和选择器
主要内容 CSS概述 CSS和HTML结合的三种方式:行内样式表.内嵌样式表.外部样式表 CSS四种基本选择器:标签选择器.类选择器.ID选择器.通用选择器 CSS三种扩展选择器:组合选择器.后代选择 ...
随机推荐
- 黄聪:MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法(转)
转自:http://www.cnblogs.com/susuyu/archive/2013/05/28/3104249.html 环境:linux,mysql5.5.21 错误:Host is blo ...
- JQuery validate 在IE兼容模式下出现 js错误(成员找不到)的修正:
JQuery validate 在IE兼容模式下 下出现 js错误(成员找不到)的修正: // Add novalidate tag if HTML5. //this.attr( "nova ...
- Report_SRW在RDF中初始化的重要性(案例)
2015-02-01 Created By BaoXinjian 一.摘要 在开发oracle report(report 6i)的时候,常常会用到fnd_global或fnd_profile来获取当 ...
- php 预定义接口
Traversable Traversable { } 作用:检测一个类是否可以使用 foreach 进行遍历的接口. php代码中不能用.只有内部的PHP类(用C写的类)才可以直接实现Travers ...
- vim使用快捷键
vim使用快捷键 索引 1. 关于Vim 1.1 Vim的几种模式 2. 启动Vim 3. 文档操作 4. 光标的移动 4.1 基本移动 4.2 翻屏 4.3 标记 5. 插入文本 5.1 基本插入 ...
- C API 连接MYSQL
#include <iostream> #include <mysql.h> #include <string> #include <assert.h> ...
- C++学习2
命名空间(Namespace)主要为了避免命名冲突,其关键字为namespace 在多人代码整合过程中常用到: namespace Li{ //小李的变量声明 ; } namespace Han{ / ...
- TFS如何设置在客户端独占签出
步骤:1.打开源代码管理资源管理器,点击“工作区”的下拉框,选择,“工作区”2.选择编辑3.选择“高级”4.进入编辑工作区,tfs中“位置”选项中,默认的时本地,如果想独占签出,这里我们就必须设置成“ ...
- buildbot 自动启动
buildbot的master或者slave,一般配置好了之后, 总希望永久可用,即使机器因为某些原因重启了,也会自动启动. 官网文档不推荐使用root启动master. 而是使用用户级别的cront ...
- jQuery.loadTemplate客户端模板
jQuery.Template虽然用起来没有Mustache简洁和方便,还是学习了解一下,做个笔记. 模板可以定义在页面script标签,如下 <script type="text/h ...