1.XML
语法
1.1
文档声明
一个完整的XML
文档必须包含一个XML
文档声明,且这个声明须位于文档的第一行。最简单的声明语法如下:
<?xml version=”1.0” ?>
注意:
在”<”
和”?”
之间、”?”
和”>”
之间以及第一个”?”
和xml
之间不能有空格。
W3C
的XML1.0
规范规定,所有XML
解析器都必须接受UTF-8
和UTF-16
编码的Unicode
字符,所以只要符合XML
规范的工具都支持这两种编码。
<?xml version=”1.0” encoding=”utf-8” standalone=”yes”?>
Standalone
属性用于说明文档是否独立,如果设为“yes
”,则表示该文档没有依赖外部任何文件。
注意:
如果同时设置了encoding
和standalone
属性,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
个预定义实体,它们与其转义字符序列的对照关系如表:
特殊字符
|
替代符号
|
&
|
&
|
<
|
<
|
>
|
>
|
“
|
"
|
‘
|
'
|
<!---->1.6
<!---->处理指令
处理指令是Processing Instruction
的中文翻译,通常简称PI
,用来为处理XMl
文档的应用程序提供指示信息。处理指令以“<?
“作为开头,以”?>
“作为结尾,XML
声明语句就是最常见的一种处理指令。XML
分析器把处理指令原封不动地传给应用程序来解释。如下示例:
<?xml-stylesheet type=”text/css” href=”book.css”?>
<!---->1.
<!---->DTD
一个DTD
文件中可以包含元素和元素之间的关系的定义,元素的属性定义,以及实体和符号的定义。DTD
文件是文本格式的文件,后缀名通常为.dtd
。XML
文档通过使用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
文件的标识名称,它只在使用关键字PUBLIC
的DOCTYPE
声明语句中出现。对于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
>
]>
…
©right;
4.7.2
参数实体
参数实体被DTD
文件自身使用,语法格式如下:
<!ENTITY %
实体名称
“
实体内容”>
对参数实体进行引用的方式为:%
实体名称;
e.g.
<!ENTITY % TAG_NAMES “
姓名
| EMAIL |
电话 |
地址”>
<!ELEMENT
个人信息
(%TAG_NAMES; |
生日)>
<!ELEMENT
客户信息 (%TAG_NAMES; |
公司名)>
分享到:
相关推荐
学习XML基础教程与实验指导,应掌握以上基本概念,并通过实践操作加深理解。PPT.rar 文件可能包含了关于这些主题的演示文稿,可以帮助深入学习和讲解XML的相关知识。通过实际编写和解析XML文档,以及使用XPath进行...
在本教程中,"Xml基础教程 高怡新 ppt 源码",我们将深入探讨XML的基本概念、语法以及它在IT领域的应用。 首先,XML的全称“可扩展标记语言”意味着它允许用户自定义标签,这与HTML(超文本标记语言)不同,HTML...
### XML基础知识详解 #### 一、XML概述 **XML**(可扩展标记语言,Extensible Markup Language)是一种标记语言,其设计目的是为了传输和存储数据。与HTML相比,XML更侧重于数据的描述而非展示。XML的核心优势在于...
通过这个“xml基础教程”PPT,你将能够学习到XML的基础语法、数据组织方式以及如何利用相关技术处理XML文档。实践是检验真理的唯一标准,建议结合提供的源码进行实际操作,以巩固理论知识。同时,持续学习和理解XML...
在本“XML基础教程PPT”中,我们将深入探讨XML的基本概念、语法以及它在IT领域的广泛应用。 首先,让我们了解XML的起源。XML是从HTML发展而来的,但与HTML的主要区别在于XML不包含任何预定义的标签。在XML中,你...
XML,全称为eXtensible Markup Language,可扩展标记语言,是互联网上数据交换与存储的重要..."XML基础教程"电子书将涵盖这些内容,帮助初学者掌握XML的使用,从而能够有效地在各种项目中利用XML进行数据管理和交换。
通过学习这个XML基础教程,你可以掌握XML的基本概念、结构和使用方法,为更深入的XML应用,如Web服务、数据交换和配置文件等奠定基础。实际操作中的例子能帮助你更好地理解和运用这些知识。记得实践是检验真理的唯一...
在本套“学习XML基础的课件”中,你将深入理解XML的核心概念及其在不同领域的应用。 首先,让我们从基础开始。`ch01_1.doc`可能涵盖XML的基本介绍,包括XML的起源、它与HTML的区别,以及XML文档的基本结构。XML文档...
在这个“XML基础教程|源码”中,我们将深入探讨XML的基本概念、语法以及如何通过源码来学习和操作XML。 1. XML基本概念: - **定义**:XML是一种自描述性的标记语言,允许用户自定义标签来描述数据。 - **结构**...
在提供的"范春梅-XML基础教程源码-code"中,你可以找到关于XML处理的实例代码,可能包括创建、解析、修改XML文档等操作。通过这些源码,你可以更好地理解XML在实际开发中的应用。 总之,XML作为一种数据交换和存储...
高怡新版的XML基础教程是针对初学者设计的,旨在帮助读者快速掌握XML的基本概念、语法和应用。 XML的基础部分包括以下几个方面: 1. **XML概述**:XML的设计目标是为了传输和存储数据,而不是为了显示数据。与HTML...
**第一章 XML基础** XML的设计目标是传输和存储数据,而不是显示数据。它强调的是结构和语义,而不是外观。XML文档由元素、属性、实体、注释等构成。元素是XML文档的基本构建块,它们以尖括号包围,如`<element>`。...
在本“XML基础教程”中,我们将深入探讨XML的基本概念、语法、验证以及它在网络应用中的作用。 首先,让我们从“第1章 XML概述.ppt”开始。这一章将介绍XML的基本理念,包括为什么需要XML,它与HTML的区别,以及XML...
学习XML基础教程PPT,你将掌握XML的基本语法和应用,了解如何利用XML增强PPT的功能,以及如何进行数据的导入和导出。通过实践和源代码的学习,你能够更好地理解XML在实际项目中的作用,并能灵活地应用于各种场景。
在高职高专的计算机应用、网络和数据库等专业中,XML基础课程是重要的知识模块,因为它在数据交换、数据存储、配置文件、Web服务等领域有着广泛的应用。 XML的主要特点包括: 1. **可扩展性**:XML的设计允许用户...
耿祥义教授编写的《XML基础教程》第二版,旨在深入浅出地介绍XML的基本概念、语法规范及其应用技术。下面将根据提供的压缩包文件名,详细阐述各个章节的知识点。 第一章:XML简介 这一章会介绍XML的起源,作为HTML...
在本教程“XML基础及实践开发教程”中,唐琳主编结合丰富的教学经验,为学习者提供了深入浅出的XML理论知识与实践操作指导。以下是该教程可能涵盖的关键知识点: 1. **XML基本概念**:XML起源于HTML,但更注重结构...
xml基础,xml语言的定义,xml的数据岛,xml结点的设置、获取。
这个“XML基础教程课件习题答案源代码”资源是为初学者提供了一个全面学习XML的平台,涵盖了理论知识、实践操作和问题解决。 1. **XML基础知识**:XML的设计目标是为了传输和存储数据,而不是为了显示数据。它通过...