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

gy69shatan

gy69shatan

2016-02-19 17:19

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

  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 "外部文件名" 

  引用方式为:

  %实体名; 

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

  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属性的取值严格一致。

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

  其它两个属性与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则没有任何转换动作,

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

  表现能力不同

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

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

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

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

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

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

  语法不同

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

  且比较简单,易学易用。 

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

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

展开更多 50%)
分享

猜你喜欢

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

Web开发
XML初学进阶学习笔记(2)

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

Web开发
XML初学进阶学习笔记(4)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

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

Web开发
XML初学进阶学习笔记(1)

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

Web开发
XML初学进阶学习笔记(6)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

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

Web开发
XML初学进阶学习笔记(5)

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

Web开发
XML初学进阶学习笔记(3)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Win32Asm 教程

Win32Asm 教程

OOP: 理解类和对象

OOP: 理解类和对象
下拉加载更多内容 ↓