张银的博客


Eat to live, but do not live to eat.

导航

《XML基础教程与实验指导》 第2章 XML语法

Posted on 2009-04-02 20:18  张银  阅读(867)  评论(0编辑  收藏  举报

第2章  XML语法

  XML被设计用来描述数据,其重点是数据的内容;而HTML被设计用来显示数据,其重点是数据的样式。在未来的Web开发中XML将会无所不在。在本章将详细介绍XML的基础语法知识,为以后的学习打下坚实的基础。

本章知识要点:
熟练掌握XML文件的基本结构
掌握XML文档元素的使用
理解CDATA段的作用
理解XML命名空间的作用
掌握XML元素内容与属性的差异

2.1  XML文档结构

  XML是一种为各种领域应用而设计的元标记语言。每个XML应用程序都有自身的语法和词汇,但这些语法和词汇都必须服从XML的基本语法规则。在本节将介绍XML文件的整体结构。

2.1.1  XML文档组成与声明

  XML文档由声明、元素、注释、字符引用和处理指令组成。在文档中,所有这些XML文档的组成部分都是通过元素标记来指明的。XML元素标记包括开始标记,结束标记、空标记、实体引用、字符引用、注释、CDATA段定界符、文档类型声明、处理指令(XML声明也是处理指令)、文本声明以及空白。

2.1.2  XML文档注释

  通过使用注释标记在XML文档添加附加信息以便阅读和理解文档。适当的注释可以提高文档的阅读性尽管XML解析器通常会忽略文档中的注释,但位置适当且有意义的注释可以大大提高文档的可读性。所以XML文档中不用于描述数据的内容都可以包含在注释中,注释以“<!--”开始,以“-->”结束,在起始符和结束符之间为注释内容,注释内容可以输入符合注释规则的任何字符串。

2.2  XML文档元素

  XML元素是XML文档的主体,它被用来容纳和组织数据。本节将向读者详细介绍元素相关知识,以及如何使用元素构建创建规范的XML文档。

2.2.1  元素介绍

  元素标识命名的信息节,并使用标记构建标识元素的名称、开始和结束。元素还可以包含属性名称和值,用于提供有关内容的其他信息,并指出了这些信息的逻辑结构。

2.2.2  XML元素综合实例

  在本节通过下面实例介绍如何定义元素以及如何使用元素。

2.2.3  XML元素属性

  在有些情况下,可能要将某些额外的说明信息加于元素上,而这些信息与元素本身包含的信息内容又有所不同,那么该如何办呢?元素的属性可以很方便的解决此类问题。在本节将介绍有关元素属性方面的知识。

2.3  CDATA段

  在XML文档中,所有文本将被解释器进行解析,而左尖括号“<”、右尖括号“>”、连接符号“&”、单引号“'”或双引号“"”等符号被作为特定的用途来使用而不能直接在XML文档中使用。如果需要在XML文档内使用这些特殊符号或显示某些文本内容时,该如何办呢?在本节将通过实体引用和对CDATA段的学习来解决。

2.3.1  特殊字符使用

  在XML文档中,开始和结束标记之间出现的所有合法字符都被有效地传给XML处理程序。如果在文本中使用了单引号等特殊字符,那么解析器将会出现错误。为了避免把字符数据和标记中需要用到的一些特殊符号相混淆,XML还提供了一些实体引用。实体引用的作用是:当在字符数据中需要使用这些特殊符号时,可以使用实体引用来代替这些特殊符号。实体必须以符号“&”开头,以符号“;”结尾。

实体引用

特殊字符

意义

&lt;

< 

小于号

&gt;

> 

大于号

&amp;

&

和或连接符

&apos;

'

单引号

&quot;

"

双引号

2.3.2  CDATA格式

  CDATA段以“<![CDATA[”作为段的开始,以“]]>”作为段的结束,段开始和段结束之间的内容称为CDATA段的内容。解析器不对CDATA段的内容做分析处理,因此,CDATA段中的内容可以包含任意字符。W3C规定,CDATA段中不可以嵌套另一个CDATA段。

<?xml version="1.0" encoding="utf-8" ?>
<root>
  
<script>
    
<![CDATA[
      var iFirst = 3;
      var iSecond = 4;
      var result = 0;
      if ( iFirst > iSecond )
         result = iFirst - iSecond;
      if (iFirst < iSecond )
         result = iFirst * iSecond;
       else
          result = iFirst & iSecond;
      alert("<br>");
    
]]>
    
</script >
</root>


2.3.3  CDATA位置

  在XML文档中,只能在根元素中文本内容中使用CDATA段。在XML标记中则不能使用CDATA段,否则出现解释错误,CDATA段也不能出现在其他非文本内容的文档元素中。

<?xml version="1.0" encoding="utf-8"?>
<root>
  
<![CDATA[
  这是第一个CDATA段
  
]]>
</root>


2.4  XML命名空间

  由于XML允许自定义标记,因此XML文件中就有可能出现重名标记。如果需要区分这些标记,那么使用命名空间就可以区分重名标记。命名空间的目的是有效地区分名字相同的标记。在本节将介绍命名空间的有关知识。

2.4.1  命名空间概念

  命名空间是XML文档的基本成分,是确保元素唯一性的限定名称。例如,可以将一个班的学生姓名作为一个命名空间,也可以把一组学生的姓名作为一个命名空间。命名空间就是在逻辑上相关的任何一组名称,而且在同一命名空间中的元素名称必须具有惟一性。通过XML命名空间,我们可以区分来自不同的XML应用的具有相同名称的元素和属性。

2.4.2  定义命名空间

  命名空间是通过使用一系列保留属性进行声明。这一系列保留属性的名称必须是xmlns或以“xmlns:”作为前缀。与其它任何XML属性一样,这些属性可以直接或缺省方式给定。

<?xml version="1.0" encoding="utf-8"?>
<books xmlns:subject=http://www.itzcn.com/xmlns-booksubject    xmlns:content="urn:xml_book:bookcontent">
  <subject:book bookname="Oracle DBA快速入门">
    <subject:description>从零基础开始学习Oracle DBA知识,30天可以系统掌握DBA知识</subject:description>
  </subject:book>

  <content:book bookname="XML基础教程">
       
<content:description>讲述XML基本知识的入门级教程</content:description>
       
<content:page>460 pages</content:page>
  </content:book>
</books>


2.4.3  默认命名空间

  在默认命名空间中,可以把标记名称作为元素名称,而不必显式使用命名空间前缀。默认命名空间就是一个没有命名空间属性前缀的XML命名空间声明,其作用域应用于声明此默认命名空间的元素,以及在该元素之下嵌套的无前缀元素,其主要目的就是缩短使用命名空间的XML文档。

<?xml version="1.0" encoding="utf-8"?>
<books xmlns=http://www.itzcn.com  xmlns:subject="http://www.itzcn.com/xmlns-booksubject">
  <subject:book bookname="Java高级编程">
    
<subject:description>讲述Java程序开发的高级知识</subject:description>
  
</subject:book>
  
  
<book bookname="ASP.net基础入门">
    
<description>讲述ASP.net编程基础知识</description>
    
<price>83.6RMB</price>
    
<page>800 pages</page>
  
</book>
</books>


2.5  格式良好XML文档

  格式良好的XML是遵循 XML文档基本语法规则的XML文档。这些规则规定了元素和元素内容之间的关系、如何按层次嵌套元素以及如何自定义元素和属性等准则。在本节将介绍如何创建格式良好的XML文档。

2.5.1  创建格式良好XML文档

  创建XML文档时,必须遵循一些基本的指导原则,这样创建出的文档才是“格式良好的”。格式良好的XML文档表示XML元素遵循XML文档的基本规则。

2.5.2  有效XML文档

  每一份XML文档都必须是格式良好的。这意味着XML文档必须符合XML语法规则的最小集合。如果XML文档格式不正确,那么它不能被视为XML文件。一个有效的XML文档一定是格式良好的XML文档,而格式良好的XML文件不一定是有效的XML文档。但符合另两项额外要求时,一个格式良好的XML文件符合下面两项要求时,才可以成为是一个有效的XML文档。

books
car
char
score
book
class
2-1
gb2312
simple
element
note
extend
school
simple
program
student
1-6
1-60
1-61
test