第二章 XML的语法基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章 XML的语法基础
2.1 2.2 2.3 2.4 XML的语法基础 XML的文档结构 名称空间 语言标识
2.1 XML的语法基础
为了便于讨论,先给出一个XML文档的样本,通过分析,逐渐展开。
<?xml version="1.0" encoding="GB2312"?> <booklist> <book isbn="7-04-008653-0"> <name>数据通信与计算机网络</name> <author>王震江</author> <press>高等教育</press> <pubdate>2000.7</pubdate> <price>23.9</price> </book> <book isbn="7-113-05310-6/TP.956"> <name>操作系统</name> <author>薛智文</author> <press>中国铁道</press> <pubdate>2003.6</pubdate> <price>32.00</price> </book> </booklist>
2.1 XML的语法基础
这是一个描述图书信息的XML文档。根元素是booklist, 下面有若干个子元素book,在 book中有表示具体数据的子 元素 name 、 author 、 press 、 pubdate 、 price 五个元素。 另外,book元素还包含一个附属于它的属性isbn。
2.1.1 结构良好性
不用引号(”或’),不区分大小写等。W3C的专家们期望 XML规范是下一代的WWW的主要编程语言和标准,他们不希望 几年后,XML的使用也象HTML一样出现任何问题。 所以,把 结构良好性写在了XML1.0规范的重要位置,用以强调XML文档 中的所有词素和语法必须是定义明确的,结构良好的。
encoding = "GB2312"声明。因为,GB2312中列出了基本的汉字 交换标准。如下的字符声明。 【例2.5】字符集为GB2312的XML文档。
<?xml version="1.0" encoding="GB2312"?> <hello>你好,世界!</hello>
请读者用浏览器浏览,看看结果怎样。如果删除encoding = “GB2312”,情况又会怎样? 3、standalone属性
2.1.1 结构良好性
(3) 在XML文档中被直接或间接引用的每一个实 体也是结构良好的。 其中关于XML文档的定义如下: ◆它包含至少一个元素。 ◆有一个叫做根或文档的元素,它不能作为任何 其他元素的内容出现。
2.1.1 结构良好性
是什么原因使W3C对结构良好性如此重视,以至于在 XML1.0规范的开篇之处就讨论结构良好的问题?这是因为, 过去几年来,WWW在Internet上取得了巨大成就,但是,用 于描写WWW的基本编程语言是HTML。相当数量的人在书写 HTML时的不规范性和随意性,使得HTML文件的可读性大大降 低,甚至出现混乱的局面,如写标签时不写结束标签,写属 性值
标记的一般命名规则要求具有确切含义,如booklist定义 了图书列表,author 定义了作者元素,press 定义了出版社元 素等。除此之外,还有如下要求: ①首字符是英文、汉字字符或其他字符,后跟数字或其他 符号。
2.1.3 XML的元素
②严格区分英文字母的大小写。
③不能使用XML或xml作为元素名称。 ④不能独立使用数字作为元素名。
2.1.3 XML的元素
2、元素嵌套
每 个 XML 文 档 必 须 有 一 个 且 只 能 有 一 个 称 之 为 “ 根 ” (root)的元素,如例2.1中的<booklist> 。其他元素必须写 在一对根元素<booklist>和</booklist>之间。 元素可以包含值,可以为空值,还可以有下层子元素。 某元素的子元素写在该元素的开始标记之后和结束标记 之前,如每一个<book>元素下的所有子元素写在<book>之后 和</book>之前,这种结构称为元素嵌套。
2.1.3 XML的元素
元素嵌套子元素,子元素可以嵌套下一级子元素。这种 嵌套必须严格。图2.1是几种嵌套情况,在(a)中的<a>元素 有两个平级子元素 <b>、 <c> ,<b>、 <c> 元素书写正确。 (b) 中<a>元素有两级子元素<b>、<c>,其中<c>又是<b>的子元素, <c>元素书写正确。(c)中<a>元素有<b>、<c>,但<b>、<c> 元素交叉嵌套,因此错误。(d)中<a>和<b>是同级元素,但 交叉嵌套,因此错误。
2.1.3 XML的元素
3、空元素
当元素标记之间没有元素值时,这样的元素叫空元素。如 图2.1 (a)中的元素 <b>、 <c> 是空元素,但是 <a>不是空元素, 因为它包含了两个子元素,虽然其子元素为空。 当元素为空值时,其表示可以简化成用“<”和“/>”包 括 元 素 名 。 如 : <name></name> 简 化 成 <name/> , <phone></phone>可以简写成<phone/>。 对于在 XML转换文档中的出现的某些无结束元素的 HTML 元 素,如<img>、<br>、<hr>,为了满足结构良好性,在XML转换
⑤在元素名中可以使用“_”、“.”等符号。
⑥不能使用“<、 >、?、/、&、+、*”等符号作为元素名。 为了便于理解上述定义,下面是一些合法和非法的标记名 示例。
2.1.3 XML的元素
不合法的元素标记: <123></123> 数字开头 大小写不匹配 没有结束标记
<Name></name> 大小写不匹配
<?xml version="1.0" encoding="gb2312" ?>
这时XML文件必须使用“ANSI”编码保存 。 3. 如果在编写XML文件时只准备使用ASCII字符,可以将encoding属性的值设 置为“ISO-8859-1”。例如:
<?xml version="1.0" encoding= " ISO-8859-1" ?>
2.1.3 XML的元素
<a> <b></b> <c></c> </a> (a) <a> <b> <c></c> </b> </a> (b) <a> <b> <c></b> </c> </a> (c) <a> <b> </a> </b> (d)
图2.1 上述嵌套中(a)(b)正确,(c)(d)错误。
独立文档声明(standalone),以XML声明的成分出现,告
2.1.2 XML声明
诉文档是否存在一个外部的文档实体或参数实体。即,在XML 声明中的 standalone 属性用来定义是否存在外部的标记声明。 如果不存在外部的标记声明, standalone 取值为“ yes” 。如 果可能存在这类外部标记声明,则取值为“no”。如果不存在 外部的标记声明,standalone声明没有意义。如果存在外部标 记声明而又没有写明 standalone 的取值,则系统取值为“ no”。
2.1.3 XML的元素
程序中使用时应该写成<img/>、<br/>、<hr/>。这样就保证即 可以满足XML的结构良好性要求,又可以在XML应用中使用HMTL 中的既定元素。 与HTML一样,XML元素也有属性。为了便于理解XML中的属 性 , 我 们 先 看 几 个 HTML 中 几 个 元 素 的 属 性 。 如 : <font color=“” face=“” size=“”> 、 <img src=“” width=“” height=“”alt=“”>
<?xml version=”1.0” encoding=”” standalone=””?>
2.1.2 XML声明 —— version属性
一个简单的XML声明中可以只包含属性version, 目前该属性的值可以取1.0,指出该XML文件使用 的XML版本。 一般情况下,上面格式中可以省去encoding和 standalone。 XML的解析程序可以正确地得到上面文本的正确结 果。对于其它的字符集合,必须事先声明。
<?xml version="1.0" encoding="ISO-8859-1"?> <hello>早上好!</hello>
要想使用其他字符集,可以如法炮制。实验编辑这些程 序,然后用IE浏览器浏览,查看其结果如何?以理解XML的代 码集合的正确使用。如果要使用中文字符集,必须有
2.1.2 XML声明
2.1.3 XML的元素
1. 元素标记
元素标记简称标记(tag)。XML的标记与HTML中的标记一 样,所不同的是 HTML 的标记由 HTML规范规定,XML 的标记由用 户自己规定。
在 XML 中,标记分为开始标记和结束标记。开始标记由小 于符号“<”和“>”大于符号把标记名括起来。结束标记是在开 始标记的小于符号“<”后紧跟符号“/”。如上例中的<book>, <name>是开始标记,它们的结束标记分别是</book>,</name>。
2.1.3 XML的元素
在开始标记和结束标记中包含的任意字符串称为元素值。 除了包含元素值以外,在开始标记和结束标记还可以包含下一 级子元素。如, <name> 数据通信与计算机网络 </name> 定义了 一个图书书名的元素,元素值是“数据通信与计算机网络”。 而<book>……</book>包含的就是多个下一级子元素。
2018/8/7
9
2.1.2 XML声明 ——encoding属性
encoding属性规定XML文件采用哪种字符集进行编码,该属性的默认值是“UTF8” . <?xml version="1.0" encoding= "UTF-8" ?> 注: encoding属性值不同, XML文件保存时的编码要与之对应。 1. 如果 XML使用 UTF-8编码,那么标记的名字以及标记包含文本内容中就可以 使用汉字、日文、英文等, XML解析器就会识别标记的名字并正确解析标记 中的文本内容。这时XML文件必须选择“UTF-8”编码来保存 。 2. 如果在编写XML文件时只准备使用 ASCII字符和汉字, 可以将encoding属 性的值设置为“gb2312”。例:
这时XML文件也必须使用“ANSI”编码保存 。
2.1.2 XML声明
【例2.3】字符集为ISO-8859-1的XML文档。
<?xml version="1.0" encoding="ISO-8859-1"?> <hello>Good morning!</hello>
百度文库
【例2.4】字符集为ISO-8859-1的XML文档。
2.1.2 XML声明
在 例 2.1 中 的 第一 行 出 现的 <?xml version=”1.0”?> 是 XML 规范规定的所有 XML 文件必须具有的一行,称为 XML 声明, 并规定,这个声明必须写在每一个 XML 文档的第一行,以标记 这是一个XML文档,否则它就不是一个XML文档,并依此来区别 于其他文档。 1、XML声明 XML声明的格式为:
对于熟悉HTML语法的读者,很容易理解上面两个标签的含 义和用法。前者是定义字符的标签,其中color、face、size
2.1.4
属性
都是属性分别定义颜色、字体、字大小。后者定义图形,其中 src、 width 、 height 、 alt 也是属性。这说明在 HTML 中大量使 用了属性。 1. 属性的定义
2.1.1 结构良好性
结构良好性( well-formedness )是 XML 规范中 特别强调的重要概念,XML文档的书写必须满足“结 构良好(well-formed)”的原则。所谓的结构良好 的必要条件是: (1) 它总体是一个XML文档。 (2) 它满足所有在 XML1.0 规范中提出的关于结构 良好性的约束。
<person></PERSON> <STUDENT?NO></STUDENT?NO> 使用非法字符 <press>高等教育出版社<press>
2.1.3 XML的元素
合法的元素标记:
<x123></x123> <student_name></student_name> <Name></Name> <person></person> <student_no></student_no> <学号></学号> <姓名></姓名>
2.1 2.2 2.3 2.4 XML的语法基础 XML的文档结构 名称空间 语言标识
2.1 XML的语法基础
为了便于讨论,先给出一个XML文档的样本,通过分析,逐渐展开。
<?xml version="1.0" encoding="GB2312"?> <booklist> <book isbn="7-04-008653-0"> <name>数据通信与计算机网络</name> <author>王震江</author> <press>高等教育</press> <pubdate>2000.7</pubdate> <price>23.9</price> </book> <book isbn="7-113-05310-6/TP.956"> <name>操作系统</name> <author>薛智文</author> <press>中国铁道</press> <pubdate>2003.6</pubdate> <price>32.00</price> </book> </booklist>
2.1 XML的语法基础
这是一个描述图书信息的XML文档。根元素是booklist, 下面有若干个子元素book,在 book中有表示具体数据的子 元素 name 、 author 、 press 、 pubdate 、 price 五个元素。 另外,book元素还包含一个附属于它的属性isbn。
2.1.1 结构良好性
不用引号(”或’),不区分大小写等。W3C的专家们期望 XML规范是下一代的WWW的主要编程语言和标准,他们不希望 几年后,XML的使用也象HTML一样出现任何问题。 所以,把 结构良好性写在了XML1.0规范的重要位置,用以强调XML文档 中的所有词素和语法必须是定义明确的,结构良好的。
encoding = "GB2312"声明。因为,GB2312中列出了基本的汉字 交换标准。如下的字符声明。 【例2.5】字符集为GB2312的XML文档。
<?xml version="1.0" encoding="GB2312"?> <hello>你好,世界!</hello>
请读者用浏览器浏览,看看结果怎样。如果删除encoding = “GB2312”,情况又会怎样? 3、standalone属性
2.1.1 结构良好性
(3) 在XML文档中被直接或间接引用的每一个实 体也是结构良好的。 其中关于XML文档的定义如下: ◆它包含至少一个元素。 ◆有一个叫做根或文档的元素,它不能作为任何 其他元素的内容出现。
2.1.1 结构良好性
是什么原因使W3C对结构良好性如此重视,以至于在 XML1.0规范的开篇之处就讨论结构良好的问题?这是因为, 过去几年来,WWW在Internet上取得了巨大成就,但是,用 于描写WWW的基本编程语言是HTML。相当数量的人在书写 HTML时的不规范性和随意性,使得HTML文件的可读性大大降 低,甚至出现混乱的局面,如写标签时不写结束标签,写属 性值
标记的一般命名规则要求具有确切含义,如booklist定义 了图书列表,author 定义了作者元素,press 定义了出版社元 素等。除此之外,还有如下要求: ①首字符是英文、汉字字符或其他字符,后跟数字或其他 符号。
2.1.3 XML的元素
②严格区分英文字母的大小写。
③不能使用XML或xml作为元素名称。 ④不能独立使用数字作为元素名。
2.1.3 XML的元素
2、元素嵌套
每 个 XML 文 档 必 须 有 一 个 且 只 能 有 一 个 称 之 为 “ 根 ” (root)的元素,如例2.1中的<booklist> 。其他元素必须写 在一对根元素<booklist>和</booklist>之间。 元素可以包含值,可以为空值,还可以有下层子元素。 某元素的子元素写在该元素的开始标记之后和结束标记 之前,如每一个<book>元素下的所有子元素写在<book>之后 和</book>之前,这种结构称为元素嵌套。
2.1.3 XML的元素
元素嵌套子元素,子元素可以嵌套下一级子元素。这种 嵌套必须严格。图2.1是几种嵌套情况,在(a)中的<a>元素 有两个平级子元素 <b>、 <c> ,<b>、 <c> 元素书写正确。 (b) 中<a>元素有两级子元素<b>、<c>,其中<c>又是<b>的子元素, <c>元素书写正确。(c)中<a>元素有<b>、<c>,但<b>、<c> 元素交叉嵌套,因此错误。(d)中<a>和<b>是同级元素,但 交叉嵌套,因此错误。
2.1.3 XML的元素
3、空元素
当元素标记之间没有元素值时,这样的元素叫空元素。如 图2.1 (a)中的元素 <b>、 <c> 是空元素,但是 <a>不是空元素, 因为它包含了两个子元素,虽然其子元素为空。 当元素为空值时,其表示可以简化成用“<”和“/>”包 括 元 素 名 。 如 : <name></name> 简 化 成 <name/> , <phone></phone>可以简写成<phone/>。 对于在 XML转换文档中的出现的某些无结束元素的 HTML 元 素,如<img>、<br>、<hr>,为了满足结构良好性,在XML转换
⑤在元素名中可以使用“_”、“.”等符号。
⑥不能使用“<、 >、?、/、&、+、*”等符号作为元素名。 为了便于理解上述定义,下面是一些合法和非法的标记名 示例。
2.1.3 XML的元素
不合法的元素标记: <123></123> 数字开头 大小写不匹配 没有结束标记
<Name></name> 大小写不匹配
<?xml version="1.0" encoding="gb2312" ?>
这时XML文件必须使用“ANSI”编码保存 。 3. 如果在编写XML文件时只准备使用ASCII字符,可以将encoding属性的值设 置为“ISO-8859-1”。例如:
<?xml version="1.0" encoding= " ISO-8859-1" ?>
2.1.3 XML的元素
<a> <b></b> <c></c> </a> (a) <a> <b> <c></c> </b> </a> (b) <a> <b> <c></b> </c> </a> (c) <a> <b> </a> </b> (d)
图2.1 上述嵌套中(a)(b)正确,(c)(d)错误。
独立文档声明(standalone),以XML声明的成分出现,告
2.1.2 XML声明
诉文档是否存在一个外部的文档实体或参数实体。即,在XML 声明中的 standalone 属性用来定义是否存在外部的标记声明。 如果不存在外部的标记声明, standalone 取值为“ yes” 。如 果可能存在这类外部标记声明,则取值为“no”。如果不存在 外部的标记声明,standalone声明没有意义。如果存在外部标 记声明而又没有写明 standalone 的取值,则系统取值为“ no”。
2.1.3 XML的元素
程序中使用时应该写成<img/>、<br/>、<hr/>。这样就保证即 可以满足XML的结构良好性要求,又可以在XML应用中使用HMTL 中的既定元素。 与HTML一样,XML元素也有属性。为了便于理解XML中的属 性 , 我 们 先 看 几 个 HTML 中 几 个 元 素 的 属 性 。 如 : <font color=“” face=“” size=“”> 、 <img src=“” width=“” height=“”alt=“”>
<?xml version=”1.0” encoding=”” standalone=””?>
2.1.2 XML声明 —— version属性
一个简单的XML声明中可以只包含属性version, 目前该属性的值可以取1.0,指出该XML文件使用 的XML版本。 一般情况下,上面格式中可以省去encoding和 standalone。 XML的解析程序可以正确地得到上面文本的正确结 果。对于其它的字符集合,必须事先声明。
<?xml version="1.0" encoding="ISO-8859-1"?> <hello>早上好!</hello>
要想使用其他字符集,可以如法炮制。实验编辑这些程 序,然后用IE浏览器浏览,查看其结果如何?以理解XML的代 码集合的正确使用。如果要使用中文字符集,必须有
2.1.2 XML声明
2.1.3 XML的元素
1. 元素标记
元素标记简称标记(tag)。XML的标记与HTML中的标记一 样,所不同的是 HTML 的标记由 HTML规范规定,XML 的标记由用 户自己规定。
在 XML 中,标记分为开始标记和结束标记。开始标记由小 于符号“<”和“>”大于符号把标记名括起来。结束标记是在开 始标记的小于符号“<”后紧跟符号“/”。如上例中的<book>, <name>是开始标记,它们的结束标记分别是</book>,</name>。
2.1.3 XML的元素
在开始标记和结束标记中包含的任意字符串称为元素值。 除了包含元素值以外,在开始标记和结束标记还可以包含下一 级子元素。如, <name> 数据通信与计算机网络 </name> 定义了 一个图书书名的元素,元素值是“数据通信与计算机网络”。 而<book>……</book>包含的就是多个下一级子元素。
2018/8/7
9
2.1.2 XML声明 ——encoding属性
encoding属性规定XML文件采用哪种字符集进行编码,该属性的默认值是“UTF8” . <?xml version="1.0" encoding= "UTF-8" ?> 注: encoding属性值不同, XML文件保存时的编码要与之对应。 1. 如果 XML使用 UTF-8编码,那么标记的名字以及标记包含文本内容中就可以 使用汉字、日文、英文等, XML解析器就会识别标记的名字并正确解析标记 中的文本内容。这时XML文件必须选择“UTF-8”编码来保存 。 2. 如果在编写XML文件时只准备使用 ASCII字符和汉字, 可以将encoding属 性的值设置为“gb2312”。例:
这时XML文件也必须使用“ANSI”编码保存 。
2.1.2 XML声明
【例2.3】字符集为ISO-8859-1的XML文档。
<?xml version="1.0" encoding="ISO-8859-1"?> <hello>Good morning!</hello>
百度文库
【例2.4】字符集为ISO-8859-1的XML文档。
2.1.2 XML声明
在 例 2.1 中 的 第一 行 出 现的 <?xml version=”1.0”?> 是 XML 规范规定的所有 XML 文件必须具有的一行,称为 XML 声明, 并规定,这个声明必须写在每一个 XML 文档的第一行,以标记 这是一个XML文档,否则它就不是一个XML文档,并依此来区别 于其他文档。 1、XML声明 XML声明的格式为:
对于熟悉HTML语法的读者,很容易理解上面两个标签的含 义和用法。前者是定义字符的标签,其中color、face、size
2.1.4
属性
都是属性分别定义颜色、字体、字大小。后者定义图形,其中 src、 width 、 height 、 alt 也是属性。这说明在 HTML 中大量使 用了属性。 1. 属性的定义
2.1.1 结构良好性
结构良好性( well-formedness )是 XML 规范中 特别强调的重要概念,XML文档的书写必须满足“结 构良好(well-formed)”的原则。所谓的结构良好 的必要条件是: (1) 它总体是一个XML文档。 (2) 它满足所有在 XML1.0 规范中提出的关于结构 良好性的约束。
<person></PERSON> <STUDENT?NO></STUDENT?NO> 使用非法字符 <press>高等教育出版社<press>
2.1.3 XML的元素
合法的元素标记:
<x123></x123> <student_name></student_name> <Name></Name> <person></person> <student_no></student_no> <学号></学号> <姓名></姓名>