一、逻辑结构
----一个XML文档通常以一个XML声明开始,通过XML元素来组织XML数据。XML元素包括标记和字符数据。为了组织数据更加方便、清晰,还可以在字符数据中引入CDATA数据块,并可以在文档中引入注释。此外,由于有时需要给XML处理程序提供一些指示信息,XML文档中可以包含处理指令。具体说来,各个逻辑元素的作用和形式如下:
----1. XML声明
----XML声明是处理指令的一种,一个XML文档最好以一个XML声明作为开始。下面是一个完整的XML声明:
<?xml version = "1.0" encoding = "GB2312" standalone = "no"?> |
----2.元素
----元素是XML文档内容的基本单元。从语法上讲,一个元素包含一个起始标记、一个结束标记以及标记之间的数据内容。其形式是:
<标记>数据内容</标记> |
----3.CDATA节----在标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当作字符数据看待。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文件了。
在线系列刊物 计算机世界 微电脑世界 IT经理世界 家用电脑世界 数字财富 |