一、 XML基础
(一)XML概述
- 目标:了解XML的概念,能够知道HTML用于做什么
1、XML
- XML是EXtensible Markup Language的缩写,它是一种类似于HTML的标记语言,称为可扩展标记语言。XML用于提供数据描述格式,适用于不同应用程序之间的数据交换,而且这种交换不以预先定义的一组数据结构为前提,增强了可扩展性。
- 在现实生活中,很多事物之间都存在着一定的层次关系,例如中国有很多省份,每个省份下又有很多城市,这些中国与所辖省、市之间的层次关系可以通过一张树状结构图描述。
- 在XML文档中,通过元素的嵌套关系可以很准确地描述具有树状层次结构的复杂信息,因此,越来越多的应用程序都采用XML格式存放相关的配置信息,以便于读取和修改配置信息。
2、XML与HTML的比较
(1)HTML用于显示数据,XML用于传输和存储数据。
(2)HTML标签不区分大小写,而XML标记严格区分大小写。
(3)HTML可以有多个根元素,而格式良好的XML有且只能有一个根元素。
(4)在HTML中,空格是自动过滤的,而在XML中,空格不会自动过滤。
(5)HTML中的标签是预定义的标签,而XML中的标记可以根据需要自己定义,并且可扩展。
(二)XML语法
1、XML文档的声明
- 从XML 1.1开始,在一个完整的XML文档中,必须包含一个XML文档的声明,并且该声明必须位于文档的第一行。
- XML文档声明的语法格式:
<?xml version="version" encoding="value" standalone="value"?>
属性 | 说明 |
---|---|
version | 用于指定遵循XML规范的版本号。在XML声明中必须包含version属性,且该属性必须放在XML声明中其他属性之前。 |
encoding | 用来指定XML文档所使用的编码集。 |
standalone | 用来指定该XML文档是否和一个外部文档嵌套使用,取值为yes或no。如果设置属性值为yes,说明是一个独立的XML文档,与外部文件无关联;如果设置属性值为no,说明XML文档不独立。 |
2、XML元素的定义
- XML文档中的主体内容都是由元素(Element)组成的,元素是以树形分层结构排列的,一个元素可以嵌套在另一个元素中。XML文档中有且仅有一个顶层元素,称为文档元素或根元素。元素一般是由开始标签、属性、元素内容和结束标签构成。
3、XML属性的定义
- 在XML文档中,可以为元素定义属性。属性是对元素的进一步描述和说明。在一个元素中,可以自定义多个属性,属性是依附于元素存在的,并且每个属性都有自己的名称和取值。
- 需要注意的是,在XML文档中,属性的命名规范与元素相同,属性值必须要用双引号(“”)或者单引号(‘’)引起来,否则被视为错误。
4、XML注释的定义
- 注释是为了便于阅读和理解,如果想在XML文档中插入一些附加信息,比如作者姓名、地址或电话等,这些信息是对文档结构或文档内容的解释,不属于XML文档的内容,因此XML解析器不会处理注释内容。XML文档的注释以字符串“
<!--
”开始,以字符串“–>”结束。
(三)DTD约束
1、什么是XML约束
- XML文档中的标签是可以随意定义的,同一本书出现了两种售价,如果仅根据标签名称区分哪个是原价,哪个是会员价,这是很难实现的。为此,在XML文档中,定义了一套规则对文档中的内容进行约束,这套规则称为XML约束。对XML文档进行约束时,同样需要遵守一定的语法规则,这种语法规则就形成了XML约束语言。
2、什么是DTD约束
- DTD约束是早期出现的一种XML约束模式语言,根据它的语法创建的文件称为DTD文件。在一个DTD文件中,可以包含元素的定义、元素之间关系的定义、元素属性的定义以及实体和符号的定义。
3、DTD约束文档的解释
(1)<!ELEMENT …>语句定义了一个元素,其中“书架”是元素的名称,“(书+)”表示书架元素中有一个或者多个名称为“书”的元素,其中字符“+”表示它所修饰的元素必须出现一次或者多次。
(2)“书”是元素名称,“(书名,作者,售价)”表示元素书包含书名、作者、售价这三个子元素,并且这些子元素要按照顺序依次出现。
(3)“书名”、“作者”和“售价”都是元素名称,“(#PCDATA)”表示元素中嵌套的内容是普通的文本字符串。
4、DTD的引入
- 在XML文档中引入外部DTD文件有两种方式
第1种方式: <!DOCTYPE 根元素名称 SYSTEM "外部DTD文件的URI">
第2种方式: <!DOCTYPE