第22章可扩展标记语言(XML 第22章可扩展标记语言(XML 可扩展标记语言( Extensible Markup Language,XML是万维网协会(W3C)推荐的一个开 放标准,它是构造Web上的文档和数据的通用格式。XML有着越来越广泛的应用前景。它 的应用范围包括数据库系统、搜索引擎、数据编辑器、文档编辑器、Web网页、电子商务 Java新闻、公共对象请求代理体系结构( Common Object Request Broker Architecture, CORBA) 等 XML是一大技术系列,除了XML本身之外还涉及很多技术规范,例如, CSS( cascading style sheets):级联样式语言 XSL( Extensible Stylesheet Language):可扩展样式语言 XSLT( XSL Transformation):可扩展的样式语言转换语言。 DID( Document Type Definition):文档类型定义。 XML Schemas:XML模板语言 DOM( Document Object Model):文档对象模型 ⅪLink( XML Linking Language:XML链接语言。 XPointer( XML Pointer Language):XML指针语言。 XPath( XML Path Language):XML路径语言。 WAP( Wireless Application Protocol):无线应用协议。 SOAP( Simple Object Access Protocol):简单对象存取协议。 WSDL( Web Services Description Language):Web服务描述语言 本章主要介绍XML的基本概念,目的是为进一步学习、应用和开发Web标准打基础 由于标准文件写得很精炼,读懂它需要时间和比较广泛的知识,仅有本章介绍的知识离理解 标准还很不够,因此在本章的最后列出了很多非常优秀的参考文献和站点,[7~[12尤其适 合初学者。在本章介绍的例子中,许多例子都没有使用中文,一方面是笔者用的计算机没有 安装更新的应用软件,另一方面是有些执行规范的软件暂时还不支持中文 221XML是什么 221.1XML不是标记语言 标记( markup)是组织和标注文档内容的一套字符集,是写在待排版原稿上的详细的格式 说明。用作标记的标签(tag)用于标记元素、实体引用、声明、注释、处理指令和段落的开始 与结束。标记语言( markup language是用于表示和组织数据的一套规则,用标签来编写文本 的一种符号。标签用来表示文本的结构,标签有名称和属性,标签还可包含部分的文本。标 记语言提供许多构造文档的方法,如使用元素对文档的局部作标记、使用文档类型定义(DTD) 来强制文档的结构以及使用实体引用来输入数据 XML名为标记语言,但它本身不是标记语言,而是用于创建标记语言的一套规则,是 一种元语言。所谓元语言是用来描述另一种语言的语言。例如,我们用名词、动词、副词和 形容词等来描述自然语言中句子的结构,因此这些词是用于描述一种语言的语言。XML定 义的是各种标签以及它们之间关系的一套规则,用来描述数据(或称信息),定义数据是什么 样的数据。因此从这个意义上说,XML是用来定义另一种语言的元语言,是一种构造语言 和分析语言的语言 XML使用与HIML类似的标签结构。它们之间主要差别是,HTML定义如何显示文档 元素,而XML定义包含什么文档元素:HIML使用预先定义的标签,而XML允许网页开 发人员定义自己的标签 把XML看成标记语言是一种误解,认为XML要取代HIML也是一种误解。实际上 HIML已经在努力用XML格式重写,重写后的HIML认为是下一代的标记语言,叫做 XHTML(可扩展超文本标记语言)。也许XML不会用来创作未来的网页,但 XHTML将肩负 这个重任 221.2XML文档什么样
第 22 章 可扩展标记语言(XML) 1 第 22 章 可扩展标记语言(XML) 可扩展标记语言(Extensible Markup Language,XML)是万维网协会(W3C)推荐的一个开 放标准,它是构造 Web 上的文档和数据的通用格式。XML 有着越来越广泛的应用前景。它 的应用范围包括数据库系统、搜索引擎、数据编辑器、文档编辑器、Web 网页、电子商务、 Java、新闻、公共对象请求代理体系结构(Common Object Request Broker Architecture,CORBA) 等。 XML 是一大技术系列,除了 XML 本身之外还涉及很多技术规范,例如, CSS (cascading style sheets):级联样式语言。 XSL (Extensible Stylesheet Language):可扩展样式语言。 XSLT (XSL Transformation):可扩展的样式语言转换语言。 DTD (Document Type Definition):文档类型定义。 XML Schemas:XML 模板语言。 DOM (Document Object Model):文档对象模型。 XLink (XML Linking Language):XML 链接语言。 XPointer (XML Pointer Language): XML 指针语言。 XPath (XML Path Language):XML 路径语言。 WAP (Wireless Application Protocol):无线应用协议。 SOAP (Simple Object Access Protocol):简单对象存取协议。 WSDL (Web Services Description Language):Web 服务描述语言。 本章主要介绍 XML 的基本概念,目的是为进一步学习、应用和开发 Web 标准打基础。 由于标准文件写得很精炼,读懂它需要时间和比较广泛的知识,仅有本章介绍的知识离理解 标准还很不够,因此在本章的最后列出了很多非常优秀的参考文献和站点,[7]~[12]尤其适 合初学者。在本章介绍的例子中,许多例子都没有使用中文,一方面是笔者用的计算机没有 安装更新的应用软件,另一方面是有些执行规范的软件暂时还不支持中文。 22.1 XML 是什么 22.1.1 XML 不是标记语言 标记(markup)是组织和标注文档内容的一套字符集,是写在待排版原稿上的详细的格式 说明。用作标记的标签(tag)用于标记元素、实体引用、声明、注释、处理指令和段落的开始 与结束。标记语言(markup language)是用于表示和组织数据的一套规则,用标签来编写文本 的一种符号。标签用来表示文本的结构,标签有名称和属性,标签还可包含部分的文本。标 记语言提供许多构造文档的方法,如使用元素对文档的局部作标记、使用文档类型定义(DTD) 来强制文档的结构以及使用实体引用来输入数据。 XML 名为标记语言,但它本身不是标记语言,而是用于创建标记语言的一套规则,是 一种元语言。所谓元语言是用来描述另一种语言的语言。例如,我们用名词、动词、副词和 形容词等来描述自然语言中句子的结构,因此这些词是用于描述一种语言的语言。XML 定 义的是各种标签以及它们之间关系的一套规则,用来描述数据(或称信息),定义数据是什么 样的数据。因此从这个意义上说,XML 是用来定义另一种语言的元语言,是一种构造语言 和分析语言的语言。 XML 使用与 HTML 类似的标签结构。它们之间主要差别是,HTML 定义如何显示文档 元素,而 XML 定义包含什么文档元素;HTML 使用预先定义的标签,而 XML 允许网页开 发人员定义自己的标签。 把 XML 看成标记语言是一种误解,认为 XML 要取代 HTML 也是一种误解。实际上, HTML 已经在努力用 XML 格式重写,重写后的 HTML 认为是下一代的标记语言,叫做 XHTML(可扩展超文本标记语言)。也许 XML 不会用来创作未来的网页,但 XHTML 将肩负 这个重任。 22.1.2 XML 文档什么样
第22章可扩展标记语言(XML) 认识XML文档并不难,首先让我们看一个简单的例子。 【例22.1】一个简单的XML文档 1: <?xml version=1. 0"?> 2:<!-一个简单的XML文档-→> <to>Student</to> 5: <from>Teacher </from> 6: <subject>lntroduction to XML</subject> 7: body>Welcome to XML!</body> 在这个例子中,XML文档由下面三个部分组成: (1)XML声明(第1行):说明使用的XML版本号。这是XML文档最先要声明的。 (2)文档注释(第2行):说明该文档是“一个简单的XML文档” (3)文档元素(第3~8行):这些是XML文档的基本的构造块。其中,< message… < message是“大”元素, message元素中还包含像to,form, subject和body这样的“小元 222XML元素 2221什么是XML元素 XML元素是由一对标签界定的一个数据单位。标签由尖括号(<>)和包含在尖括号里的 含有意义的文字组成,因此它是一种有语义的标签。一个XML元素由开始标签、结束标签 和它们之间的数据组成。开始标签和结束标签用来描述它们之间的数据,并把数据作为这个 元素的值。例如,一个名为 doctor的XML元素, <doctor>Jiamin Lis/doctor 其中,“ Jiamin li”是XML数据,也称 doctor元素的值。< doctor>是开始标签,而</ docto> 是结束标签 给元素赋予有含义的名称是值得重视的事情,这样就容易区别数据相同而标签不同的元 素。在我们的日常生活中,也有许多类似的情况。例如,有一个教师的姓名也叫做“ Jianmin Li”,我们就可以用< teacher>标签来表示, teacher> Jiamin Lis/teacher> 这样就从语义上给具有相同姓名的人做了标记,一个是“ doctor”,另一个是“ teacher” 在XML标签内,字母的大小写是有区别的。例如, <internet>, <Internet>, <INTERNET> 是三个不同的标签 ML元素可以嵌入到其他的元素中。例如 <slideshow> slide> My Name</slide> <slide> My topic</slide </slideshow>> 其中, slideshow元素包含两个 slide元素。 2222XML元素的命名规则 XML元素的名称必需遵照如下的命名规则: (1)名称可以包含字母、数字和其他字符。 (2)名称不能用数字或标点符号开始。 (3)名称不能用xm,XML或Xml文字开始 (4)名称不能包含空格 在对XML元素命名时,还须要注意 (1)可以使用任何名称,没有保留字。但希望起的名称要有一定的含义,与说明的内容 比较贴近:多个词组成的名称最好用下划线“”隔开,如< first name>,< ast name>,避 免使用“一”和
第 22 章 可扩展标记语言(XML) 2 认识 XML 文档并不难,首先让我们看一个简单的例子。 【例 22.1】 一个简单的 XML 文档: 1: <?xml version="1.0"?> 2: <!--一个简单的 XML 文档--> 3: <message> 4: <to>Student</to> 5: <from>Teacher</from> 6: <subject>Introduction to XML</subject> 7: <body>Welcome to XML!</body> 8: </message> 在这个例子中,XML 文档由下面三个部分组成: ⑴ XML 声明(第 1 行):说明使用的 XML 版本号。这是 XML 文档最先要声明的。 ⑵ 文档注释(第 2 行):说明该文档是“一个简单的 XML 文档” ⑶ 文档元素(第 3~8 行):这些是 XML 文档的基本的构造块。其中,<message>… </message>是“大”元素,message 元素中还包含像 to, form, subject 和 body 这样的“小元 素”。 22.2 XML 元素 22.2.1 什么是 XML 元素 XML 元素是由一对标签界定的一个数据单位。标签由尖括号(< >)和包含在尖括号里的 含有意义的文字组成,因此它是一种有语义的标签。一个 XML 元素由开始标签、结束标签 和它们之间的数据组成。开始标签和结束标签用来描述它们之间的数据,并把数据作为这个 元素的值。例如,一个名为 doctor 的 XML 元素, <doctor>Jiamin Li</doctor> 其中,“Jiamin Li”是 XML 数据,也称 doctor 元素的值。<doctor>是开始标签,而</doctor> 是结束标签。 给元素赋予有含义的名称是值得重视的事情,这样就容易区别数据相同而标签不同的元 素。在我们的日常生活中,也有许多类似的情况。例如,有一个教师的姓名也叫做“Jianmin Li”,我们就可以用<teacher>标签来表示, <teacher>Jiamin Li</teacher> 这样就从语义上给具有相同姓名的人做了标记,一个是“doctor”,另一个是“teacher”。 在 XML 标签内,字母的大小写是有区别的。例如, <internet>,<Internet>,<INTERNET> 是三个不同的标签。 XML 元素可以嵌入到其他的元素中。例如, <slideshow> <slide> My Name</slide> <slide>My topic</slide> </slideshow> 其中,slideshow 元素包含两个 slide 元素。 22.2.2 XML 元素的命名规则 XML 元素的名称必需遵照如下的命名规则: ⑴ 名称可以包含字母、数字和其他字符。 ⑵ 名称不能用数字或标点符号开始。 ⑶ 名称不能用 xml,XML 或 Xml 文字开始。 ⑷ 名称不能包含空格。 在对 XML 元素命名时,还须要注意: ⑴ 可以使用任何名称,没有保留字。但希望起的名称要有一定的含义,与说明的内容 比较贴近;多个词组成的名称最好用下划线“_”隔开,如<first_name>,<last_name>,避 免使用“-”和
第22章可扩展标记语言(XML) (2)名称的长度没有具体限制,但希望赋予的名称短一点,简单一点,不要太长。例如 书(book)元素名称使用< book title>,而不使用< cthe title of the book> (3)XML元素的名称允许非英文字符,但需要注意应用软件是否支持非英文字符集。 (4)冒号“:”是保留符号,在XML元素名称中不允许使用。 2223XML元素的特性 XML元素具有可扩展性、父子关系、一个元素可包含不同内容和一个元素可包含不同 属性等四种特性 1.可扩展性 XML元素可以扩展,使ⅩML文档包含更多的信息。 【例22.2】一个 XML note文档为, <note <from>Lin</from> <body> Dont forget me this weekend! </body> 在这个文档中,可把日期信息(如<date>2002-07-15<date>)添加进去,如下所示, <date>2002-07-15</date> <from>Lin</from> <heading>Reminder</heading> <body> Don't forget me this weekend! </body> </note> 2.父子关系 XML元素具有“父子”关系。为便于理解XML元素之间的关系,先举例说明XML元 素如何命名和描述元素的内容。 【例22.3】用ⅹML描述一本书的前两章: Book Title: Multimedia fundamentals Chapter 1: Introduction to Multimedia What is multimedia What is Web Chapter What is Color Space Color Space Conversion 用XML描述这本书时,其文档如下所示 <title> Multimedia Fundamentals </title> <prod isbn="7-302-03933"media="paper"></prod> <chapter> Introduction to Multimedia <para> What is Multimedia </para> <para> What is Web </para> </chapter <chapter> Color Space para> What is Color Space </para> <para> Color Space Conversion </para> </chapter> </book> 其中,book是根元素。t,prod和 chapter都是book元素的子元素,bok是tle,prod和 chapter的父元素。 title,prod和 chapter是姐妹元素,因为它们的父母亲是相同的
第 22 章 可扩展标记语言(XML) 3 ⑵ 名称的长度没有具体限制,但希望赋予的名称短一点,简单一点,不要太长。例如, 书(book)元素名称使用<book_title>,而不使用<the_title_of_the_book>。 ⑶ XML 元素的名称允许非英文字符,但需要注意应用软件是否支持非英文字符集。 ⑷ 冒号“:”是保留符号,在 XML 元素名称中不允许使用。 22.2.3 XML 元素的特性 XML 元素具有可扩展性、父子关系、一个元素可包含不同内容和一个元素可包含不同 属性等四种特性。 1. 可扩展性 XML 元素可以扩展,使 XML 文档包含更多的信息。 【例 22.2】 一个 XML note 文档为, <note> <to>Lucy</to> <from>Lin</from> <body>Don't forget me this weekend!</body> </note> 在这个文档中,可把日期信息(如<date>2002-07-15</date>)添加进去,如下所示, <note> <date>2002-07-15</date> <to>Lucy</to> <from>Lin</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> 2. 父子关系 XML 元素具有“父子”关系。为便于理解 XML 元素之间的关系,先举例说明 XML 元 素如何命名和描述元素的内容。 【例 22.3】 用 XML 描述一本书的前两章: Book Title: Multimedia Fundamentals Chapter 1: Introduction to Multimedia What is Multimedia What is Web Chapter 2: Color Space What is Color Space Color Space Conversion 用 XML 描述这本书时,其文档如下所示: <book> <title> Multimedia Fundamentals </title> <prod isbn="7-302-03933" media="paper"></prod> <chapter> Introduction to Multimedia <para> What is Multimedia </para> <para> What is Web </para> </chapter> <chapter> Color Space <para> What is Color Space </para> <para> Color Space Conversion </para> </chapter> </book> 其中,book 是根元素。title, prod 和 chapter 都是 book 元素的子元素,book 是 title, prod 和 chapter 的父元素。title, prod 和 chapter 是姐妹元素,因为它们的父母亲是相同的
可扩展标记语言(XM 3.一个元素可包含不同内容 个XML元素可以有不同类型的内容。其内容可以是元素内容、混合内容、简单内容 复杂内容或无内容。例如,例22.3中的book元素含有元素内容,因为它包含其他元素; chapter 元素含有混合内容,因为它包含文本和其他元素:para含有简单内容,因为它仅包含文字 prod包含的内容是空的,因为ibn和meda是元素的属性,不是元素的内容 4.一个元素可包含不同属性 两种不类组的运,且有位秀图然为:0:72素为m 的属性值为 paper22.4节将对属性作更多的介绍 2224XML元素的属性 属性是ⅹML标签的一个修饰词,用来提供元素的附加信息。属性用属性名、等号和属 性值表示。例如,<book>标签的属性 <book isbn ="7-302-03933"> 属性名 "属性值”-> XML元素的属性有如下几个特性 1.属性只能指定一次 例如,个ⅪML元素可包含一个或多个属性,但每个属性值只能指定一次,其次序不分先后。 ,一个side元素如下所示 <slide title="XML Tutorial"> 在这个标签中, title=" XML Tutorial"是属性。其中, title是属性名, XML Tutorial是属 性值。在一个文档中, title的属性值只能是" XML Tutorial"。 2.属性不是元素数据 个元素的属性不是元素数据的一部分,而是说明数据的。例如, <file type="jpg">Ronaldo. jpg</file> 在这个XML元素中,标签中的type属性是与 Ronaldo. jpg数据无关的,但对处理这个 元素的软件来说是重要的 3.属性值要用引号 属性值必需要用引号表示。表示属性值的引号可以是单引号,也可以是双引号。例如, 一个人的性别标签可以写成 或者 person sex=" female"> ≤ person sex= female> 最常用的是双引号,但有时(如属性值本身包含引号的情况下)必需使用单引号 4.属性可存放数据 XML元素的数据可以存储在子元素中,也可存储在属性中 【例22.4-1】假设 female是数据,它可存储在属性中。 <person sex"female"> <first name>Lucy</first name> <last name> Zhao</last name> 【例22.4-2】假设 female是数据,它可存储在子元素中 <sex>female</sex> <first name>Lucy</first name> <last name>Zhao</last n 例22.4-1和例224-2都提供相同的信息。至于什么时候使用属性存储数据,什么时候 使用子元素存储数据,还没有看到有规则可循。如果感到信息像一种数据(如罗纳尔多助巴
第 22 章 可扩展标记语言(XML) 4 3. 一个元素可包含不同内容 一个 XML 元素可以有不同类型的内容。其内容可以是元素内容、混合内容、简单内容 复杂内容或无内容。例如,例 22.3 中的 book 元素含有元素内容,因为它包含其他元素;chapter 元素含有混合内容,因为它包含文本和其他元素;para 含有简单内容,因为它仅包含文字; prod 包含的内容是空的,因为 isbn 和 media 是元素的属性,不是元素的内容。 4. 一个元素可包含不同属性 一个 XML 元素可以包含不同类型的属性。例如,例 22.3 中的 prod 元素有 isbn 和 media 两种不同类型的属性,而且都有值。属性名为 isbn 的属性值为 7-302-03933,属性名为 media 的属性值为 paper。22.2.4 节将对属性作更多的介绍。 22.2.4 XML 元素的属性 属性是 XML 标签的一个修饰词,用来提供元素的附加信息。属性用属性名、等号和属 性值表示。例如,<book>标签的属性, <book isbn = "7-302-03933"> <--! 属性名 = "属性值" --> XML 元素的属性有如下几个特性。 1. 属性只能指定一次 一个 XML 元素可包含一个或多个属性,但每个属性值只能指定一次,其次序不分先后。 例如,一个 slide 元素如下所示, <slide title="XML Tutorial"> 在这个标签中,title="XML Tutorial"是属性。其中,title 是属性名,XML Tutorial 是属 性值。在一个文档中,title 的属性值只能是"XML Tutorial"。 2. 属性不是元素数据 一个元素的属性不是元素数据的一部分,而是说明数据的。例如, <file type="jpg">Ronaldo.jpg</file> 在这个 XML 元素中,标签中的 type 属性是与 Ronaldo.jpg 数据无关的,但对处理这个 元素的软件来说是重要的。 3. 属性值要用引号 属性值必需要用引号表示。表示属性值的引号可以是单引号,也可以是双引号。例如, 一个人的性别标签可以写成, <person sex="female"> 或者 <person sex='female'> 最常用的是双引号,但有时(如属性值本身包含引号的情况下)必需使用单引号。 4. 属性可存放数据 XML 元素的数据可以存储在子元素中,也可存储在属性中。 【例 22.4-1】 假设 female 是数据,它可存储在属性中。 <person sex="female"> <first_name>Lucy</first_name> <last_name>Zhao</last_name> </person> 【例 22.4-2】 假设 female 是数据,它可存储在子元素中。 <person> <sex>female</sex> <first_name>Lucy</first_name> <last_name>Zhao</last_name> </person> 例 22.4-1 和例 22.4-2 都提供相同的信息。至于什么时候使用属性存储数据,什么时候 使用子元素存储数据,还没有看到有规则可循。如果感到信息像一种数据(如罗纳尔多助巴
第22章可扩展标记语言(XML) 西第五次捧世界杯),则通常使用子元素。仅当提供的信息与数据无关的情况下,才考虑用 属性。这是因为属性不能包含多个值,而子元素则可以;属性不能描述结构,而子元素则可 以:处理程序处理属性相对于处理子元素比较困难等因素。总而言之,关于数据的数据,称 为元数据( metadata),应该存储在属性中,而数据本身则应该存储在子元素中。 223XML文档和语法 223.1XML文档的基本结构 个基本的XML文档就是一个XML元素,其嵌套XML元素可有可无。XML文档使 用文档类型定义(DID)或者XML模式( XML Schema)来描述数据。使用DID或者XML Schema的XML文档叫做自描述文档,XML文档的文件扩展名用xml表示 【例22.5】下面是一个使用自描述的XML文档: 1: <?xml version="1. 0"encoding="ISO-8859-1"?> 2: <note> 3: <to>Lucy</to> 4: <from>Lin</from> 5: <heading> Reminder</heading> 6: <body> Don't forget me this weekend! </body> 7: <note> 第1行是XML声明( XML declaration), ?xml version="1.0"encoding="ISO-8859-1"2> 用来说明ⅹML的版本号和在文档中使用的字符编码。在这个XML文档中,说明该文档使 用XML1.0规范和ISO-859-1(拉丁文-1/西欧)字符集 第2行描述文档的根元素( root element) <note> 其含义为“这是一个备忘录”。 第3~6行描述根元素(note)的4个子元素( child element为to(送给)、from(来自) heading(标题)和body(主体) <to>Lucy</to> <from>Lind/from> <heading> Reminder </heading> <body> Don't forget me this weekend! </body 第7行表示根元素结束 </note> 223.2XML语法 XML文档是一个自描述的文档。通过分析例22.5,我们可以看到XML的一些基本语 法规则。 (1)在XML文档中,所有XML元素必需要使用一个开始标签(或称打开标签)和一个结 束标签(或称关闭标签)。在本教材中,这一对标签称为开闭标签。例如, p>这是一个段<p> p>这是另外一段<p> 而在HIML文档中,不一定要使用开闭标签。例如, p>这是一个段 p>这是另外一段 注意:在例22.5中,第一行的ⅹML声明没有使用开闭标签,即 <?xml version="1.0"encoding="ISO-8859-1"2> 这是因为XML声明不是XML元素,它不是XML文档本身的一部分,因此不应该有开闭 标签 (2)在XML文档中,XML标签区分字母的大小。例如, Message和 message是不同的, 因此 Message>标签和< message>标签是两个不同的标签
第 22 章 可扩展标记语言(XML) 5 西第五次捧世界杯),则通常使用子元素。仅当提供的信息与数据无关的情况下,才考虑用 属性。这是因为属性不能包含多个值,而子元素则可以;属性不能描述结构,而子元素则可 以;处理程序处理属性相对于处理子元素比较困难等因素。总而言之,关于数据的数据,称 为元数据(metadata),应该存储在属性中,而数据本身则应该存储在子元素中。 22.3 XML 文档和语法 22.3.1 XML 文档的基本结构 一个基本的 XML 文档就是一个 XML 元素,其嵌套 XML 元素可有可无。XML 文档使 用文档类型定义(DTD)或者 XML 模式(XML Schema)来描述数据。使用 DTD 或者 XML Schema 的 XML 文档叫做自描述文档,XML 文档的文件扩展名用.xml 表示。 【例 22.5】 下面是一个使用自描述的 XML 文档: 1:<?xml version="1.0" encoding="ISO-8859-1"?> 2:<note> 3: <to>Lucy</to> 4: <from>Lin</from> 5: <heading>Reminder</heading> 6: <body>Don't forget me this weekend!</body> 7:</note> 第 1 行是 XML 声明(XML declaration), <?xml version="1.0" encoding="ISO-8859-1"?> 用来说明 XML 的版本号和在文档中使用的字符编码。在这个 XML 文档中,说明该文档使 用 XML 1.0 规范和 ISO-8859-1(拉丁文-1/西欧)字符集。 第 2 行描述文档的根元素(root element), <note> 其含义为“这是一个备忘录”。 第 3~6 行描述根元素(note)的 4 个子元素(child element)为 to(送给)、from(来自)、 heading(标题)和 body(主体), <to>Lucy</to> <from>Lin</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> 第 7 行表示根元素结束, </note> 22.3.2 XML 语法 XML 文档是一个自描述的文档。通过分析例 22.5,我们可以看到 XML 的一些基本语 法规则。 ⑴ 在 XML 文档中,所有 XML 元素必需要使用一个开始标签(或称打开标签)和一个结 束标签(或称关闭标签)。在本教材中,这一对标签称为开闭标签。例如, <p>这是一个段</p> <p>这是另外一段</p> 而在 HTML 文档中,不一定要使用开闭标签。例如, <p>这是一个段 <p>这是另外一段 注意:在例 22.5 中,第一行的 XML 声明没有使用开闭标签,即 <?xml version="1.0" encoding="ISO-8859-1"?> 这是因为 XML 声明不是 XML 元素,它不是 XML 文档本身的一部分,因此不应该有开闭 标签。 ⑵ 在 XML 文档中,XML 标签区分字母的大小。例如,Message 和 message 是不同的, 因此<Message>标签和<message>标签是两个不同的标签