分享
 
 
 

XML语法

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

与HTML不同,XML对于语法有着严格的规定,只有当一个XML文档符合"格式良好"的基本要求时,处理程序才能对它加以分析和处理。"格式良好的"这一标准通过对XML文档的各个逻辑成分和物理成分进行语法规定,保证了XML严密的条理性、逻辑性和良好的结构性,从而大大提高了XML应用处理程序处理XML数据的准确性和效率。实际上,格式良好的要求就是XML规范的语法要求,一个简单的检验方法就是用Internet Explorer4.01以上版本打开正在编辑的XML文档,如果报错,这个文档就不是"格式良好的"。

---- XML文档的结构包括逻辑结构和物理结构。

一、逻辑结构

---- 一个XML文档通常以一个XML声明开始,通过XML元素来组织XML数据。XML元素包括标记和字符数据。为了组织数据更加方便、清晰,还可以在字符数据中引入CDATA数据块,并可以在文档中引入注释。此外,由于有时需要给XML处理程序提供一些指示信息,XML文档中可以包含处理指令。具体说来,各个逻辑元素的作用和形式如下:

---- 1. XML声明

---- XML声明是处理指令的一种,一个XML文档最好以一个XML声明作为开始。下面是一个完整的XML声明:

<?xml version = "1.0" encoding = "GB2312" standalone = "no"?>

---- 在一个XML的处理指令中必须包括version属性,指明所采用的XML的版本号,而且它必须在属性列表中排在第一位。standalone属性表明该XML文档是否和一个外部文档类型定义DTD配套使用。encoding属性则指明了数据所采用的编码标准。

---- 2.元素

---- 元素是XML文档内容的基本单元。从语法上讲,一个元素包含一个起始标记、一个结束标记以及标记之间的数据内容。其形式是:

<标记>数据内容</标记>

---- 对于标记有以下语法规定:

---- (1) 标记必不可少。任何一个格式良好的XML文档中至少要有一个元素。

---- (2) 大小写有别。

---- (3) 要有正确的结束标记。结束标记除了要和起始标记在拼写和大小写上完全相同,还必须在前面加上一个斜杠"/"。当一对标记之间没有任何文本内容时,可以不写结束标记,而在起始标记的最后冠以斜杠"/"来确认。这样的标记称为"空标记"。

---- (4) 标记要正确嵌套。

---- (5) 标记命名要合法。标记名应该以字母、下划线"_"或冒号":"开头,后面跟字母、数字、句号". "、冒号、下划线或连字符"-",但是中间不能有空格,而且任何标记名不能以"xml"(或者"xml"大小写的任何组合,如"XML"、"xML"、"xmL"等等)起始。

---- (6) 有效使用属性。标记中可以包含任意多个属性,属性以名称/取值对出现,属性名不能重复,名称与取值之间用等号"="分隔,且取值用引号引起来。

---- 3.CDATA节

---- 在标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当作字符数据看待。CDATA的形式如下:

<![CDATA[ 文本内容 ]] >

---- CDATA的文本内容中不能出现字符串"]]>",另外,CDATA不能嵌套,

---- 4.注释

---- 有些时候,人们希望在XML文档中加入一些用作解释的字符数据,并且希望XML处理器不对它们进行任何处理。这种类型的文本称作注释(COMMENT)文本,在XML中,注释的方法与HTML完全相同,用"<!--"和"-->"将注释文本引起来。对于注释还有以下规定:

---- (1) 在注释文本中不能出现字符"-"或字符串"--"

---- (2) 不要把注释文本放在标记之中,类似地,不要把注释文本放在实体声明之中或之前。

---- (3) 注释不能被嵌套。

---- 5.处理指令PI

---- 处理指令是用来给处理XML文档的应用程序提供信息的,XML分析器把这些信息原封不动地传给应用程序,由应用程序来解释这个指令,遵照它所提供的信息进行处理。处理指令应该遵循下面的格式:

<?处理指令名 处理指令信息 >

---- 下面是一个例子,它是描述辞典信息的XML文档:

[1] <?xml version="1.0" encoding="GB2312" standalone="no"?>

[2] <?xml-stylesheet type="text/xsl" href="mystyle.xsl"?>

[3] <辞典>

[4] <词条>

[5] <词目>XML</词目>

[6] <解释>XML是一种可扩展的元置标语言,它可用以规定新的置标规则,并根据这个规则组织数据。</解释>

[7] <示例>

[8] <!-- 一个XML的例子 -->

[9] <![CDATA[

[10] <学生>

[11] <学号>001</学号>

[12] <姓名>张三</姓名>

[13] </学生>

[14] ]]>

[15] </示例>

[16] </词条>

[17]</辞典>

---- 这个例子中出现的逻辑要素有:

---- [1] 是XML声明。

---- [2] 是处理指令。

---- [3]--[17] 是文档中的各个元素。在[5]行的"<词目>XML</词目>"中,"<词 ---- 目>""</词目>"是标记,"XML"是字符数据。

---- [8] 是注释。

---- [9]--[14] 是CDATA节。

---- 二、物理结构

---- 从物理结构上讲,XML文档是由一个或多个存贮单元构成的,这些存贮单元就是所谓的实体。所有的XML文档都包含了一个"根实体",又称作"文档实体"。这个实体是由XML本身给出的,无须显式定义就可以使用,它指的其实就是整个文档的内容,是XML语法分析器处理的起点。除此之外,可能还需要用到其他一些实体,这些实体都用名字来标识,在文件类型定义DTD中给出定义。

---- 简单地说,实体充当着和别名类似的角色,即,一个简单的实体名称可以用来代表一大段文本内容。象任何计算机别名系统一样,实体引用简化了录入工作,因为每当要使用同样一大段文本时,只须使用它的别名就可以了,处理器会自动把这个别名替换为相应的文本。

---- 实体分为两大类,如下表所示:

类型

通用实体

参数实体

使用场合

用在XML文档中

只用在DTD中元素和属性的声明中

声明方式

内部

<!ENTITY 实体名 "文本内容">

<!ENTITY % 实体名 "文本内容">

外部

<!ENTITY 实体名SYSTEM"外部文件URL地址">

<!ENTITY % 实体名SYSTEM"外部文件URL地址">

引用方式

&实体名;

%实体名;

下面例子中定义了一个描述单位地址的通用实体:

<!ENTITY address "北京市海淀区学府路88号,100000">

---- 在XML文件中可以如下使用这个实体:

<客户> <姓名> 王五</姓名> <电话> (010)62626666</电话> <联系地址> &address;</联系地址> </客户>

---- 实体引用有以下几点规则:

除了XML标准规定的预定义实体以外,在XML文档引用一个实体之前,必须已经对此实体进行过声明。

实体引用中不能出现空格。

尽管在一个实体中可以再引用其他实体,但是不能出现循环引用。

实体引用的文档必须符合XML语法的种种要求

任何一个独立的逻辑要素,比如元素、标记、注释、处理指令、实体引用等等,都不能开始于一个实体,而结束于另一个实体。

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

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

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

请输入查找文章的

关键词

在线系列刊物

计算机世界

微电脑世界

IT经理世界

家用电脑世界

数字财富

友情链接网站 奥迪坚通讯 希网网络 北京测评中心 3Com公司 Foundry公司 朗讯公司 宏碁联网 网络文明工程

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有