XML初学进阶学习笔记(2)

2016-02-19 17:19 9 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享XML初学进阶学习笔记(2)教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

  15、

  !ELEMENT 联系人(姓名, EMAIL)

  !ELEMENT 姓名(#PCDATA)

  !ELEMENT EMAIL(#PCDATA)

  如果我们使用逗号,来分隔两个子元素,那么XML文件中,元素姓名就必须出现在元素EMAIL前面。反之,可以无序。

  16、XML正则表达式的匹配原则不允许循环逻辑。所以,OR的意思是或者选这个或者选那个,但不能两个都选,也不能两个都不选。

  17、注意:在一个组中,只允许使用一种连接符(例如,或|)。因此,象下面这样定义的DTD是不合法的:

  !ELEMENT 联系人(姓名,电话|EMAIL) 

  要想使用多种连接符,只有通过创建子组的方式,使用

  !ELEMENT 联系人(姓名,(电话|EMAIL)) 

  前面我们已经介绍了所有可能用到的子元素的排列状况。不过,还有一种情况没有说,那就是,一个元素中不包含任何子元素,也不包含纯文本。

  对于这种情况,我们可以定义一个空标记。当然,定义这样一个标记很简单,你只需要使用关键字EMPTY就可以了,例如:

  !ELEMENT HR EMPTY 

  这样,在你的XML文件中,就可以使用一个空元素HR/。

  18、IDREF类型允许一个元素的属性使用文件中的另一个元素,方法就是把那个元素的ID标识值作为该属性的取值。

  19、参数实体专门用在DTD中。定义方式是:

  !ENTITY % 实体名 "实体内容" 

  或: schema

  !ENTITY % 实体名 SYSTEM "外部文件名" 

  引用方式为:

  %实体名; 

  20、使用参数实体,可以方便元素和属性的声明。例如:

  !ENTITY % TAG_NAMES "姓名 | EMAIL | 电话 | 地址"

  !ELEMENT 个人联系信息 (%TAG_NAMES; | 生日)

  !ELEMENT 客户联系信息 (%TAG_NAMES; | 公司名) 

  21、dt:type

  dt:type指定所声明属性的数据类型,它除了支持DTD中包含的全部十大数据类型外,还支持一些扩展属性,在下一小节会详细讲述。

  Schema中的十个基本属性与DTD中属性的对应关系请见下表:

  Schema中基本类型    DTD中数据类型 

  string          #PCDATA 

  enumeration       ENUMERATED 

  id            ID 

  idref          IDREF 

  idrefs          IDREFS 

  nmtoken         NMTOKEN 

  nmtokens         NMTOKENS 

  entity          ENTITY 

  entities         EMTITIES 

  notation         NOTATION 

  注意,当dt:type取值为"enumeration"时,后面的dt:value必须列出所有可能的取值。

  22、attribute实际上是对该Schema中AttributeType声明的引用,而具体引用什么属性类型,

  关键就要靠type属性了。type唯一指定了要引用的属性类型,

  因此其取值必须同某个AttributeType元素中name属性的取值严格一致。

  其它两个属性与AttributeType中相应属性的含义相同,

  default指定该属性类型的缺省取值,

  required指定该属性对于引用它的元素是否是必须的。

  如果和同一个属性相对应的AttributeType和attribute中都对default和required给出了定义,

  则在attribute中的取值具有更高的优先级。

  23、XML较之HTML最根本的差别在于XML是定义置标语言的元语言,

  而HTML仅仅是由SGML元置标语言定义的一个实例语言。利用XML元置标语言,

  定义各种各样的XML实例的活动是相当开放的。针对不同的应用方向,

  每设计一个XML的DTD,一种新的置标语言便随之诞生。

  在各种各样XML实例置标语言如雨后春笋般不断涌现的过程中,

  将会产生这样一种应用需求,即在一个XML文档中,包含由多个DTD描述的元素。

  这个想法显然是达到物尽其用的一个好办法,它帮助我们最大程度地利用了现有的资源,

  正所谓海纳百川,有容乃大。

  24、CSS和XSL均属于样式单的一种,都可以用来设定文档的外观。那么,它们有什么区别呢?

  比较起来,它们主要有以下几个大的不同: 

  用途不同

  CSS最早是针对于HTML提出的,后来又将其应用于XML之中,

  它既可以为HTML文档中的各个成分设定样式,又可以为XML中的成分设定样式。

  XSL是专门针对XML提出的,它不能处理HTML文档。但它有一个CSS无法达到的功能,

  即用一个命令行将一个XML文档转换为另一个文档并存盘。 

  处理结果不同

  XSL采用的是一种转换的思想,它将一种不含显示信息的XML文档转换为另一种可以用某种浏览器浏览的文档,

  转换后的输出码或者存为一个新的文档,或者暂存于内存中,但都不修改源代码。而CSS则没有任何转换动作,

  只是针对结构文档中的各个成分,依照样式规定一一设定外观式样,再由浏览器依据这些式样显示文档,在整个过程中没有任何新码产生。 

  表现能力不同

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  在XSL中定义的90%的样式规定,实际上在CSS中都有定义。但仍然有一些效果是CSS无法描述的,

  必须使用XSL不可。这些功能包括文本的置换,例如将一个美国的时间表示格式转换为一个中国的时间表示格式;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  根据文本内容决定显示方式,例如将60分以上的分数用黑色显示,60分以下的分数用红色显示;

  将文档中的成分按照某一个子成分的值进行排序,例如将商品按售价进行排序。

  此外,还有对于超链接的支持,对于FRAME的支持,对于某些语种文字从上到下,

  行从右到左的排列格式的支持等,都是XSL所独有的。 

  语法不同

  XSL是根据XML的语法进行定义的,实际上又是XML的一种应用。而CSS的语法自成体系,

  且比较简单,易学易用。 

  综上所述,一个XML文档的显示方式可以归纳为三种:即利用CSS显示,

  利用XSL转化为FO显示,以及利用XSL转化为HTML文档显示(这个HTML文档中可包含CSS样式)。

来源:http://www.tulaoshi.com/n/20160219/1614944.html

延伸阅读
标签: Web开发
Preface:本文是W3CSchools上《Schema指南》的学习笔记。其中大部分内容是对指南的翻译总结。由于原文的例子更详尽生动,如果各位想阅读原文可以到这个网址http://www.w3schools.com/schema/default.asp。 同时,W3CSchools提供了测试,大家可以测试一下自己的理解程度。 首先简单的说一下,Schema中的简单类型(SimpleType)有三种:SimpleE...
标签: Web开发
五. XML和HTML的区别 XML和HTML都来自于SGML,它们都含有标记,有着相似的语法,HTML和XML的最大区别在于:HTML是一个定型的标记语言,它用固有的标记来描述,显示网页内容。比如 H1表示首行标题,有固定的尺寸。相对的,XML则没有固定的标记,XML不能描述网页具体的外观,内容,它只是描述内容的数据形式和结构。 这是一个质...
标签: Web开发
前言 XML越来越热,关于XML的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的: 第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学...
    第二天:Microsoft基本类库应用程序框架 ◎MFC是C++的Microsoft Windows API,如果想要开发WINDOWS的应用程序当然VC/MFC是开发环境的首选。 ◎MFC产生的应用程序使用了标准化的结构。(我现在还体会不出这点的优势所在,请高手指点) ◎MFC产生的应用程序短而运行速度快。这应该说的是可以很容易的建立动态连接,其实程...

经验教程

678

收藏

31
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部