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

ok少年不年少

ok少年不年少

2016-02-19 17:19

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享XML初学进阶学习笔记(1)吧。

  简体中文码:GB2312

  繁体中文码:BIG5

  西欧字符: UTF-8

  1、一般实体

  我们前面说到的那个信件署名就是一般实体。定义一般实体的格式如下: 

  !ENTITY 实体名 "文本内容"〉 

  关于刚才的信件署名的实体定义如下:

  !ENTITY lettersign

  "张三

  某网络公司销售部门

  北京市海淀区中关村88号,100000"〉 

  另外,你也可以指定一个实体代替一个外部文件的内容,此时要使用SYSTEM这个关键字。例如:

  !ENTITY lettersign

  SYSTEM "http://www.mydomain.com/lettersign.xml"〉 

  在这个例子中,XML处理器将用指定文件的内容来替换实体指示。

  2、参数实体 

  与一般实体相同,参数实体既可以是内部的也可以是外部的。不过,参数实体只用在DTD中。

  参数实体的格式与一般实体很类似,只不过中间要加上%符。

  !ENTITY % 实体名 "文本内容"〉 

  3、实体的使用包括两部分:实体声明和实体引用。 

  4、实体声明 

  对于实体的声明应该放在文件类型DOCTYPE中。DOCTYPE一般放在文件头(即XML声明和DTD)之后,

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

  XML元素之前。这样一来,XML文件就变为下面的形式:

  ?xml version="1.0"?

  !DOCTYPE 文件根元素名 [ 

  实体声明部分

  ]

  文件根元素名

  具体数据内容

  /文件根元素名

  

  5、实体引用 

  说到实体引用,大家可能想起前面我们曾用代表字符〈。不错,这就是一个实体引用。

  简而言之,实体引用指的是引用一个在实体声明中已经声明过的一个实体。实体引用的形式很简单:

  &实体名; 

  6、实体引用有以下几点规则一定要注意: 

  在引用XML实体之前,必须已经在XML文件中对此实体进行过声明; 

  在实体引用中不能出现空格。也就是说,& lettersign;和&letterhead ;的用法都会引起错误。 

  尽管在一个实体中可以再引用其它实体,但是不能出现循环引用。也就是说,一个实体不能引用它自己;

  同样,也不能出现实体A引用实体B,然后实体B再反过来引用实体A的情况。 

  实体引用不能在DOCTYPE声明中出现。 

  实体引用的文本必须是形式良好的XML。 

  同样,参数实体的引用与一般实体的引用大同小异,只是要把实体前的符号&换为%就可以了,形式是:

  %实体名;

  

  7、实体引用不仅可以出现在字符数据中,还可以出现在标记的属性中。例如下面这个例子:

  联系人 公司=B公司 地址=&B公司地址; 

  如果在属性中出现实体引用,不但要遵守前面所述的实体引用的种种规则,还要注意以下两点: 

  在标记属性中不能引用一个外部实体。 

  引用的文本中不能出现字符,否则替换后就不再是一个形式良好的XML文件了。 

  通过这一节的讲述,想必大家已然了解:实体主要是用来代替字符数据的,它可以节省大量的录入工作。

  8、使用外部DTD时,要在DOCTYPE中使用关键字SYSTEM。实际上,SYSTEM不是引用外部DTD的唯一方法,

  这个关键字主要用于引用一个作者或组织所编写的众多XML文件中通用的DTD。还存在一种外部DTD,

  它是一个由权威机构制订的,提供给特定行业或公众使用的DTD。因此,另一个引用外部DTD的办法是使用关键字PUBLIC,

  引用这一类公开给公众使用的DTD。

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

  当使用关键字PUBLIC进行引用时,这个外部DTD还需要得到一个标识名。引用公共DTD的形式为:

  !DOCTYPE 根元素 PUBLIC "DTD名称" "外部DTD的URL"

  9、这个DTD标识的命名规则和XML文件的命名规则稍有不同。具体地说,DTD名称只能包含字母、

  数字、空格和下面的符号:_%$#@()+:=/!*;?。同时,DTD名称还必须符合一些标准的规定。

  例如,ISO标准的DTD以ISO三个字母开头;被改进的非ISO标准的DTD以加号+开头;未被改进的非ISO标准的DTD以减号-开头。

  无论是哪一种情况,开始部分后面都跟着两个斜杠//及DTD所有者的名称。在这个名称之后又是两个斜杠//,

  再然后是DTD所描述的文件的类型。最后,在又一对斜杠之后是语言的种类(参见ISO 639)。例如下面这个公用DTD的引用:

  !DOCTYPE 联系人列表 PUBLIC "-//Luna Dong//Contact Data//CN"

  "http://www.mydomain.com/dtds/fclml.dtd" 

  10、除了根元素外,在定义其它元素时使用关键字ANY都是不好的习惯。一般来说,在写一个XML文件时需要严格遵循DTD的规则,

  这时,一个定义明确的DTD,虽然表面上似乎充满了条条框框,但实际上会使你在书写XML文件时有规可循,

  反而方便了你的工作和语法分析器的工作。相反,一个在元素定义中充满了ANY的DTD,反而可能会搞得你不知所措,一头雾水。

  11、在定义元素时,ETD的顺序是无关紧要的。因此

  !ELEMENT 姓名(#PCDATA)  

  !ELEMENT 联系人列表 ANY

  !ELEMENT 联系人(姓名)

  和

  !ELEMENT 联系人列表 ANY

  !ELEMENT 联系人(姓名)

  !ELEMENT 姓名(#PCDATA)  

  所定义的文件结构是完全相同的。 

  12、还有一点要注意,不能对不同的元素使用相同的元素名,即便这些元素的内容、包含的子元素不同也不行,

  因为它只会引起文件各个元素的混淆,使文件的可读性大打折扣。例如:

  !ELEMENT 联系人列表 ANY

  !ELEMENT 联系人(姓名)

  !ELEMENT 联系人(EMAIL)

  !ELEMENT 姓名(#PCDATA)

  !ELEMENT EMAIL(#PCDATA)

  在这个例子中,对联系人的重复定义,会引起错误。

13、最后再次强调一下元素的命名。元素名的第一个字母必须是字母、或下划线(_)、或冒号(:),

  后跟字母、数字、句号(.)、冒号、下划线、连结号(-)的组合,并且不能包含空白符,不能以xml开头。

  另外,尽管元素的第一个字母使用冒号是合法的,但最好避免这样做,因为它会引起混淆。再有需要注意的是,

  尽管XML1.0标准允许使用任何长度的文件名,但是实际的XML处理器常常会限制标记名的长度。

展开更多 50%)
分享

猜你喜欢

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

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

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

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

s8lol主宰符文怎么配

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

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

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

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

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

lol偷钱流符文搭配推荐

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

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

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

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

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

lolAD刺客新符文搭配推荐

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

XML简明教程(6)什么是XML Schema

XML简明教程(6)什么是XML Schema

TScreen类

TScreen类
下拉加载更多内容 ↓