`
sqe_james
  • 浏览: 264897 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

XML基础

    博客分类:
  • XML
阅读更多

1.XML 语法

1.1 文档声明

一个完整的XML 文档必须包含一个XML 文档声明,且这个声明须位于文档的第一行。最简单的声明语法如下:

<?xml version=”1.0” ?>

注意: ”<””?” 之间、”?””>” 之间以及第一个”?”xml 之间不能有空格。

 

W3C XML1.0 规范规定,所有XML 解析器都必须接受UTF-8UTF-16 编码的Unicode 字符,所以只要符合XML 规范的工具都支持这两种编码。

<?xml version=”1.0” encoding=”utf-8” standalone=”yes”?>

Standalone 属性用于说明文档是否独立,如果设为“yes ”,则表示该文档没有依赖外部任何文件。

注意: 如果同时设置了encodingstandalone 属性,standalone 属性要位于encoding 属性之后。

<!---->1.2  <!---->  元素定义

XML 元素标记名称中可以包含字母、数字以及其他一些可见字符,但必须遵守以下规范:

<!---->l         <!---->区分大小写

<!---->l         <!---->不能以数字或“_ ”(下划线)开头

<!---->l         <!---->不能以字符组合xml(XML 、或Xml) 开头

<!---->l         <!---->不能包含空格

<!---->l         <!---->名称中间不能包含冒号(:)

<!---->1.3  <!---->  属性的定义

一个标签可以有多个属性,每个属性都有名称和取值,如下示例:

< 重量 单位 =” 千克 ”>100</ 重量 >

注意: XML 中,属性值一定要用双引号(“)、单引号(‘)引起来,否则将被视为错误。属性不易被扩充和被程序操作,但程序处理的速度比使用子元素快。XML 处理所有空格和换行。

<!---->1.4  <!---->  CDATA

CDATA character data 的简写,即字符数据。表示一片不想被解析的程序,以”<![CDATA[“ 开始,以”]]>” 结束。

注意: CDATA 区内部不能出现字符串“]]> “,还须留意起始和结束处的空格、换行等空白字符的影响。

<!---->1.5  <!---->  特殊字符

XML 文档中,有些特殊字符需要用转义字符序列表示其原始字面意义。这类字符在XML 中称为预定义实体。当解析器碰到这样的字符时,不是把它当作一般的字符按其原始意义来处理。在XML 中有5 个预定义实体,它们与其转义字符序列的对照关系如表:

特殊字符

替代符号

&

&amp;

&lt;

&gt;

&quot;

&apos;

 

<!---->1.6  <!---->处理指令

处理指令是Processing Instruction 的中文翻译,通常简称PI ,用来为处理XMl 文档的应用程序提供指示信息。处理指令以“<? “作为开头,以”?> “作为结尾,XML 声明语句就是最常见的一种处理指令。XML 分析器把处理指令原封不动地传给应用程序来解释。如下示例:

<?xml-stylesheet type=”text/css” href=”book.css”?>

 

<!---->1.      <!---->DTD

一个DTD 文件中可以包含元素和元素之间的关系的定义,元素的属性定义,以及实体和符号的定义。DTD 文件是文本格式的文件,后缀名通常为.dtdXML 文档通过使用DOCTYPE 声明语句(文档类型定义语句)来指明它所遵循的DTD 文件。DOCTYPE 声明语句紧跟在XML 文档声明语句后面,有两种格式:

1). <!DOCTYPE 文档类型名称 SYSTEM “DTD 文件的 URL”>

2). <!DOCTYPE 文档类型名称 PUBLIC “DTD 名称 ” “DTD 文件的 URL”>

各部分的意义和作用如下:

文档类型名称 可以由XML 文档编写者自己定义,一个通用的习惯使用XML 文档的根元素名称来作为文档类型名称。

关键字SYSTEM 表明XML 文件所遵循的是一个本地或组织内部所编写和使用的DTD 文件; 关键字PUBLIC 表明该XML 文件所遵循的是一个由权威机构制定的、公开提供给特定行业或公众使用的DTD 文件。

DTD 名称 “用于指定该DTD 文件的标识名称,它只在使用关键字PUBLICDOCTYPE 声明语句中出现。对于ISO 标准的DTD 以“ISO ”三个字母开头,被改进的非ISO 标准的DTD 以“+ 开头,未被改进的非ISO 标准的DTD- 开头。紧跟”//”DTD 所有者的名称”//”DTD 描述文件说明”//” 语言种类

XML 文档中,还可以使用另外一种形式的DOCTYPE 声明语句来直接包含DTD 定义语句,基格式为:

<?xml version=”1.0” encoding=”utf-8” standalone=”yes”?>

<!DOCTYPE 根元素名 [

DTD 定义语句

……

]>

并可以在引入外部文件的同时嵌入DTD 定义语句。

4. DTD 的语法细节

4.1 元素定义

DTD 定义中,每条<!ELEMENT…> 语句用于定义一个元素,通用语法格式为:

<!ELEMENT 元素名称 使用规则>

元素的使用规则定义了元素中包含的组成成分,以及每种组成成分出现的次数、次序,还可以是某些成分进行某种关系组合后出现的次数、次序。在DTD 的元素定义中,可以有以下一些形式:

<!---->l         <!---->(#PCDATA ) 表示元素中嵌套的内容是普通文本字符串,特殊字符需要用相应的预定义实体表示

<!---->l         <!---->用一对() 将元素中要嵌套的一组子元素括起来,e.g. ( 书名,作者,售价)

<!---->l         <!---->元素中也可以嵌套文本字符串与其他子元素的混合,e.g. ( 书名,#PCDATA)

<!---->l         <!---->关键字EMPTY 表示元素中不包含任何子元素和普通文本字符串

<!---->l         <!---->关键字ANY 表示元素中可以有任何类型的子元素和普通文体字符串,以及它们的混合,还可以不饮食任何内容。

 

对于DTD 文件中的元素定义,还有下面的一些补充细节说明:

1). 注释方式与XML 文档相同

2). 每条元素定义语句的顺序是无关紧要的

3). XML 文档结构中具有不同用途的元素不能使用相同的元素名,这样会引起文件各个元素的混淆,使文件的可读性变差

4). 一个元素的各个组成成分可以以任意顺序出现,也可以强制遵循一定的顺序。若元素的使用空白符分隔,那么它们的出现顺序没有严格要求;若各元素使用(,) 分隔,那它们在XML 文档中的出现顺序须与它们的排列顺序一致;若元素使用(|) 分隔,那在XML 文档中只能出现它们之中的任何一个。

5). 在元素的使用规则中可以通过正则表达式来定义子元素出现的次数。”+” 表示出现一次或多次,”?” 只能出现一次,“*” 表可不出现,也可出现一次或多次,不使用任何元字符表示该成分必须且只能出现一次。

6). 一对() 可用于将括在其中内容组合成一个可统一操作的分组,分组中可以嵌套更小的分组。

4.2 属性定义

XML 文档中可以为元素设置属性,语法格式:

<!ATTLIST 元素名

属性名1 属性类型 设置说明

属性名2 属性类型 设置说明

e.g. 有一个名为 < 电子 > 的元素,它在 XML 文档中的定义如下:

< 电子 类别 =” 笔记本 重量 =”2.1kg”>……</ 电子 >

可以使用如下形式的 DTD 定义:

<!ATTLIST 电子

类别 CDATA #REQUIRED

颜色 CDATA #IMPLIED

其中, CDATA 为一种属性类型,表示值为普通文本字符串: #REQUIRED #IMPLIED 为属性设置说明信息。

DTD 中定义元素的属性时,可有以下几种设置:

1>. #REQUIRED 说明必须设置该属性

2>. #IMPLIED 说明可有可无

3>. #FIXED 说明该属性的取值固定为一个默认值

4>. 直接使用默认值

如果在属性设置说明部分没有使用上面任何一种关键字,而是直接指定一个默认值的话,那么在 XML 文件中可以设置,也可以不设置该属性。

DTD 定义元素的属性时,可以将属性设置成下面 10 种类型

1. CDATA 表普通文体字符

2. ENUMERATED 枚举类型,属性的中以是一组取值的列表,在 XML 文件中设置的属性值只能是这个列表中的某个值。注意:在 DTD 定义中并不会出现关键字 ENUMERATED

e.g.

<?xml version=”1.0” encoding=”utf-8” standalone=”yes”?>

<!DOCTYPE 购物篮 [

<!ENEMENT 购物篮 ANY>

<!ELEMENT EMPTY>

<!ATTLIST 品种 ( 鸡肉 | 牛肉 | 猪肉 | 鱼肉 ) “ 鸡肉 ”>

!>

< 购物篮>

< 肉 品种=” 鱼肉”/>

< 肉 品种=” 牛肉”/>

</ >

</ 购物篮>

在上面这个例子中,给 品种 这个属性定义的默认值是 鸡肉 ,所以,即使< 购物篮> 元素中的第三个子元素没有显式定义 品种 这个属性,但它实际也具有 品种 这个属性,且该属性的取值为 鸡肉

4.3 ID

使用关键字ID 作为属性类型时,它表示属性的设置值将用于惟一标识一个XML 文件中的某个元素。它只由字母、数字或下划线开始,其中不能出现空白字符。ID 类型的属性通常使用#REQUIRED 作为设置说明,如果应用并不要求每个元素都有自己的标识时,那也可以使用#IMPLIED 作为属性说明。

e.g.

<!ATTLIST 联系人 编号 ID #REQUIRED>

< 联系人 编号=”1”/>

 

4.4 IDREF IDREFS

一个元素的IDREF 类型的属性设置值将是同一个XML 文件中的另一个元素的ID 类型的属性的设置值。如下示例:

<!xml version=”1.0” encoding=”utf-8” standalone=”yes”?>

<!DOCTYPE 联系人列表 [

<!ELEMENT 联系人 姓名 ,EMAIL >

<!ELEMENT 姓名 (#PCDATA)>

<!ELEMENT EMAIL(#PCDATA)>

<!ATTLIST 联系人 编号 ID #REQUIRED>

<!ATTLIST 联系人 上司 IDREF #IMPLIED>

]>

 

< 联系人列表 >

< 联系人 编号 =”2”>

< 姓名 > 张三 </ 姓名 >

<EMAIL>test@test.com</EMAIL>

</ 联系人 >

< 联系人 编号 =”1” 上司 =”2”>

< 姓名 > 李四 </ 姓名 >

<EMAIL>testsf@sun.com</EMAIL>

</ 联系人 >

</ 联系人列表 >

 

IDREFS 关键字表示IDREF 的列表类型,一个元素的IDREFS 类型的属性设置值可以是同一个XML 文件中的另外多个元素的ID 类型的属性的设置值,每个ID 属性值之间用空格分隔。

 

4.5. NMTOKEN NMTOKENS

NMTOKEN(Name Token, 名称记号), 它表示由一个或多个字母、数字、句点(.) 、连字号(-) 、或底线(_) 所组成的一个名称。除第一个字符位置外,NMTOKEN 属性的设置值中也可以包含(:)NMTOKENS 表示一种列表类型,一个元素的NMTOKENS 类型的属性设置值可以是同一个XML 文件中的另外多个元素的NMTOKEN 类型的属性的设置值,每个NMTOKEN 属性值之间用空格分隔。

e.g:

<!ELEMENT 用户 EMPTY>

<!ATTLIST 用户 姓名 NMTOKEN #REQUIRED>

<!ELEMENT 数据 (#PCDATA)>

<!ATTLIST 数据 授权用户 NMTOKENS #IMPLIED>

 

< 用户 姓名=”sam”/>

< 用户 姓名=”lisa”/>

< 数据 授权用户=”sam lisa”>

这里是一些授权访问的数据

</ 数据>

 

4.6 NOTATION ( 符号)

为了对图像、声音、影像等提供支持,XML 并不直接提供支持,但通过设置NOTATION 类型的属性来让一个外部应用程序进行处理。NOTATION 类型的属性值为在DTD 中使用<!NOTATION…> 语句定义的一个notation( 符号) ,这对使用非XML 格式的数据非常有用。Notation 定义语句分为两种情况:

<!NOTATION 符号名 SYSTEM “MIME 类型”>

<!NOTATION 符号名 SYSTEM “URL 路径名”>

第一种指定数据的MIME 类型,第二种指定处理程序的URL 路径

e.g.

<?xml version=”1.0” encoding=”utf-8” standalone=”yes”?>

<!DOCTYPE 文件 [

<!NOTATION mp SYSTEM “movplayer.exe”>

<!ELEMENT 文件 ANY>

<!ELEMENT 电影 EMPTY>

<!ATTLIST 电影 演示设备 NOTATION (mp | gif) #REQUIRED>

]>

 

< 文件 >

< 电影 演示设备 =”mp”/>

</ 文件 >

上例为< 电影> 元素指定了两种可选的演示设备:一种是movplayer.exe ,另一种则用来绘制GIF 图像的应用程序。

4.7 ENTITY/ENTITYS ( 实体定义)

实体是为一段文本内容创建一个别名,以后在XML 文档中就可以多次引用这个别名,XML 解析器程序将把XML 文档中出现的别名引用转变成其所对应的文本内容。

两种实体定义类型:引用实体和参数实体

 

4.7.1 引用实体

有两语法格式:

<!ENTITY 实体名称 实体内容”>

<!ENTITY 实体名称 SYSTEM “外部XML 文档的URL”>

引用实体在XML 中的引用方式如下:& 实体名称;

若实体名称是通过第一种语法定义的,它将直接转变成实体内容;若实体名称是通过第二种语法格式定义的,它将被替换成外部XML 文档中的内容。

e.g. 在一个xml 文档中引入另外一个包含版权信息的XMl 文档

<!DOCTYPE copyright[

<!ENTITY copyright SYSTEM http://www.sun.com/copyright.xml >

]>

&copyright;

 

4.7.2 参数实体

参数实体被DTD 文件自身使用,语法格式如下:

<!ENTITY % 实体名称 实体内容”>

对参数实体进行引用的方式为:% 实体名称;

e.g.

<!ENTITY % TAG_NAMES “ 姓名 | EMAIL | 电话 | 地址”>

<!ELEMENT 个人信息 (%TAG_NAMES; | 生日)>

<!ELEMENT 客户信息 (%TAG_NAMES; | 公司名)>

分享到:
评论
2 楼 chenahiwu 2008-10-17  
   转了
1 楼 Ethip 2008-06-01  
很基础的总结!很好。

相关推荐

    XML基础教程与实验指导

    学习XML基础教程与实验指导,应掌握以上基本概念,并通过实践操作加深理解。PPT.rar 文件可能包含了关于这些主题的演示文稿,可以帮助深入学习和讲解XML的相关知识。通过实际编写和解析XML文档,以及使用XPath进行...

    Xml基础教程 高怡新 ppt 源码

    在本教程中,"Xml基础教程 高怡新 ppt 源码",我们将深入探讨XML的基本概念、语法以及它在IT领域的应用。 首先,XML的全称“可扩展标记语言”意味着它允许用户自定义标签,这与HTML(超文本标记语言)不同,HTML...

    xml基础.pdf

    ### XML基础知识详解 #### 一、XML概述 **XML**(可扩展标记语言,Extensible Markup Language)是一种标记语言,其设计目的是为了传输和存储数据。与HTML相比,XML更侧重于数据的描述而非展示。XML的核心优势在于...

    xml基础教程(ppt)

    通过这个“xml基础教程”PPT,你将能够学习到XML的基础语法、数据组织方式以及如何利用相关技术处理XML文档。实践是检验真理的唯一标准,建议结合提供的源码进行实际操作,以巩固理论知识。同时,持续学习和理解XML...

    xml基础教程ppt

    在本“XML基础教程PPT”中,我们将深入探讨XML的基本概念、语法以及它在IT领域的广泛应用。 首先,让我们了解XML的起源。XML是从HTML发展而来的,但与HTML的主要区别在于XML不包含任何预定义的标签。在XML中,你...

    XML基础教程电子书(XML学习)

    XML,全称为eXtensible Markup Language,可扩展标记语言,是互联网上数据交换与存储的重要..."XML基础教程"电子书将涵盖这些内容,帮助初学者掌握XML的使用,从而能够有效地在各种项目中利用XML进行数据管理和交换。

    XML基础教程(自己整理的)

    通过学习这个XML基础教程,你可以掌握XML的基本概念、结构和使用方法,为更深入的XML应用,如Web服务、数据交换和配置文件等奠定基础。实际操作中的例子能帮助你更好地理解和运用这些知识。记得实践是检验真理的唯一...

    学习XML基础的课件

    在本套“学习XML基础的课件”中,你将深入理解XML的核心概念及其在不同领域的应用。 首先,让我们从基础开始。`ch01_1.doc`可能涵盖XML的基本介绍,包括XML的起源、它与HTML的区别,以及XML文档的基本结构。XML文档...

    xml基础教程|源码

    在这个“XML基础教程|源码”中,我们将深入探讨XML的基本概念、语法以及如何通过源码来学习和操作XML。 1. XML基本概念: - **定义**:XML是一种自描述性的标记语言,允许用户自定义标签来描述数据。 - **结构**...

    XML基础教程源码-code

    在提供的"范春梅-XML基础教程源码-code"中,你可以找到关于XML处理的实例代码,可能包括创建、解析、修改XML文档等操作。通过这些源码,你可以更好地理解XML在实际开发中的应用。 总之,XML作为一种数据交换和存储...

    Xml基础教程 高怡新版 源代码 ppt(传错了 勿下载)

    高怡新版的XML基础教程是针对初学者设计的,旨在帮助读者快速掌握XML的基本概念、语法和应用。 XML的基础部分包括以下几个方面: 1. **XML概述**:XML的设计目标是为了传输和存储数据,而不是为了显示数据。与HTML...

    xml基础教程(xml入门绝佳实例)

    **第一章 XML基础** XML的设计目标是传输和存储数据,而不是显示数据。它强调的是结构和语义,而不是外观。XML文档由元素、属性、实体、注释等构成。元素是XML文档的基本构建块,它们以尖括号包围,如`&lt;element&gt;`。...

    XML基础教程-电子教案

    在本“XML基础教程”中,我们将深入探讨XML的基本概念、语法、验证以及它在网络应用中的作用。 首先,让我们从“第1章 XML概述.ppt”开始。这一章将介绍XML的基本理念,包括为什么需要XML,它与HTML的区别,以及XML...

    xml基础教程PPT

    学习XML基础教程PPT,你将掌握XML的基本语法和应用,了解如何利用XML增强PPT的功能,以及如何进行数据的导入和导出。通过实践和源代码的学习,你能够更好地理解XML在实际项目中的作用,并能灵活地应用于各种场景。

    高职高专《XML基础》课件

    在高职高专的计算机应用、网络和数据库等专业中,XML基础课程是重要的知识模块,因为它在数据交换、数据存储、配置文件、Web服务等领域有着广泛的应用。 XML的主要特点包括: 1. **可扩展性**:XML的设计允许用户...

    XML基础教程第2版教学课件

    耿祥义教授编写的《XML基础教程》第二版,旨在深入浅出地介绍XML的基本概念、语法规范及其应用技术。下面将根据提供的压缩包文件名,详细阐述各个章节的知识点。 第一章:XML简介 这一章会介绍XML的起源,作为HTML...

    XML基础及实践开发教程(唐琳-主编)习题答案

    在本教程“XML基础及实践开发教程”中,唐琳主编结合丰富的教学经验,为学习者提供了深入浅出的XML理论知识与实践操作指导。以下是该教程可能涵盖的关键知识点: 1. **XML基本概念**:XML起源于HTML,但更注重结构...

    xml基础知识文档

    xml基础,xml语言的定义,xml的数据岛,xml结点的设置、获取。

    xml基础教程课件习题答案源代码

    这个“XML基础教程课件习题答案源代码”资源是为初学者提供了一个全面学习XML的平台,涵盖了理论知识、实践操作和问题解决。 1. **XML基础知识**:XML的设计目标是为了传输和存储数据,而不是为了显示数据。它通过...

Global site tag (gtag.js) - Google Analytics