当前位置:首页 > 第三节 XML文档基本语法
第三节 XML文档基本语法
XML文档由字符数据和标记组成,语法较为简单,其编写方式与HTML很相似,但语法比HTML更为严格。
1. XML元素
XML元素是XML文档的主体,它用来存放和组织数据。
(1) 定义元素
在XML文档中,元素分为空元素和非空元素两种类型。
非空元素
一个非空元素由开始标记、结束标记以及标记之间的数据构成。
非空元素的语法结构如下: <开始标记>元素内容结束标记>
例如:<产品>牙膏产品>是一个非空元素。
空元素
空元素就是不包含任何内容的元素,即开始标记和结束标记之间没有任何数据的元素。
空元素的语法结构如下: <开始标记> 结束标记> <开始标记/> 根元素
每个XML文档都有一个且只能有一个根元素,而其他元素则都要包含在这个根元素中。在描述产品信息的XML文档中,根元素为“<产品信息>…产品信息>”。
定义元素时,需要遵守一些基本规则,如下所示:
1 一个XML文档至少要有一个元素,○否则该文档就是一份空文档,没有任何作用。 2 定义元素的标记必须成对出现,开始标记和结束标记的名称要完全相同,而且○
要求大小写一致,因为XML文档是严格区分大小写的。
这点与HTML不一样,HITML没有严格要求标记必须成对出现,而且HTML的标记是不区分大小写的。
3 一个XML文档有且只有一个根元素,○其他元素都属于此根元素的子元素。这是
因为XML是一个树状结构,在这棵树中有且只能有一个根结点。
(2) 元素的内容
以描述产品信息的XML文档为例来说明的元素的内容构成。
<产品>
<名称>牙膏名称> <价格>3.5价格> <数量>10数量> 产品> <产品>
<名称>牙刷名称> <价格>2.0价格> <数量>10数量> 产品> 产品信息>
1 只包含字符数据的元素 ○
元素的内容为纯字符数据,例如:<名称>牙刷名称>。
2 只包含子元素的元素 ○
元素的内容是由其他元素所构成的,例如:
上述XML文档的主体部分包含一个“产品信息”根元素,“产品信息”元素包含两个“产品”元素,每个“产品”元素又包含“名称”、“价格”和“数量”这3个元素。通过元素之间的这种包含关系构成了XML文档的主体。
3 既包含子元素又包含字符数据的元素 ○
元素的内容既含有其他元素,又有字符数据,例如:
<联系人>张三
“联系人”元素既包含字符数据“张三”,又包含子元素“ID”。
(3) 元素的嵌套
一个元素中又包含了其他的元素,这就构成了元素的嵌套。元素的嵌套在XML文档中使用比较频繁,因为,元素的合理嵌套,能够清晰地描述出XML文档的逻辑结构。
例如:在上面描述产品信息的XML文档中,两个“产品”元素嵌套在根元素“产品信息”中,“名称”、“价格”、“数量”这3个元素嵌套在“产品”元素中。
不难看出,XML文档的逻辑结构可以用树的形式来表示,即XML文档的树状结构。 在XML文档的树状结构中: ? 根结点是指根元素;
? 非叶结点是指除了根元素之外那些包含了其他子元素的元素; ? 叶子结点是指除了根元素之外那些不包含其他子元素的元素。
上面描述产品信息的XML文档的树状结构,如下图所示:
产品信息产品产品名称价格数量名称价格数量
2. XML属性
HTML属性往往用来帮助标记更加精确地控制内容在网页上的显示方式。HTML中的属性同标记一样也是预定义好的,很多标记都有自己特定的属性。要记住所有标记的属性及这些属性的使用有一定的困难。
与HTML不同,XML中的属性起提供附加信息的作用,而且是可以自定义的。很多时候,我们希望给元素提供更多的说明信息,但不希望这些信息作为元素的内容出现
时,可以将这些辅助性的说明信息作为属性附加在元素上。
属性由一个“名—值”对构成,并附加在元素上。
一个元素可以有多个属性,多个属性之间通过空格分割开。
在非空元素上定义属性的基本语法如下:
<标记名 属性名1=“属性值1” 属性名2=“属性值2”...>元素内容标记名>
在空元素上定义属性的基本语法如下:
<标记名 属性名1=“属性值1” 属性名2=“属性值2”...>标记名>
每一个属性都由属性名和属性值构成,属性值必须包含在引号(双引号或单引号)内,一般使用双引号。
在上面描述产品信息的XML文档中,对于“产品”元素,添加了一个名为“产品编号”的属性,如下所示:
<产品 产品编号=“001”> <名称>牙膏名称> <价格>3.5价格> <数量>10数量> 产品>
<产品 产品编号=“002”> <名称>牙刷名称> <价格>2.0价格> <数量>10数量> 产品> 产品信息>
定义属性时,应该特别注意以下几个问题:
? 属性可以出现开始标记中,绝不能出现在结束标记中。 ? 属性必须既有名称又有值。
? 同一个元素中,不能具有两个或两个以上的同名属性。
如下属性的使用是错误的:
共分享92篇相关文档