ITPub博客

首页 > 应用开发 > IT综合 > XML初学进阶学习笔记(2)(转)

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

原创 IT综合 作者:amyz 时间:2007-08-12 15:17:39 0 删除 编辑
XML初学进阶学习笔记(2)(转)[@more@]

  15、

  

  

  

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

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

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

   

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

   

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

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

   

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


。

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

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

   

  或: schema

   

  引用方式为:

  %实体名; 

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

  

  

   

  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则没有任何转换动作,

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

  表现能力不同

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

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

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

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

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

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

  语法不同

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

  且比较简单,易学易用。 

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

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10752019/viewspace-950300/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3982
  • 访问量
    7894342