xml程序设计 第二章

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.1.3 XML的元素
合法的元素标记:
<x123></x123> <student_name></student_name> <Name></Name> <person></person> <student_no></student_no> <学号></学号> <姓名></姓名>
2.1.3 XML的元素
2.1.2 XML声明
1、XML声明
XML声明的格式为:
<?xml version=”1.0” encoding=”” standalone=””?>
一 般 情 况 下 , 上 面 格 式 中 可 以 省 去 encoding 和 standalone。如下面的程序:
【例2.2】不带encoding和standalone的XML文档。
(3) 在XML文档中被直接或间接引用的每 一个实体也是结构良好的。 其中关于XML文档的定义如下: ◆它包含至少一个元素。 ◆有一个叫做根或文档的元素,它不能 作为任何其他元素的内容出现。
2.1.1 结构良好性
是什么原因使W3C对结构良好性如此重视, 以至于在XML1.0规范的开篇之处就讨论结构良 好的问题?这是因为,过去几年来,WWW在 Internet上取得了巨大成就,但是,用于描写 WWW的基本编程语言是HTML。相当数量的人在 书写HTML时的不规范性和随意性,使得HTML文 件的可读性大大降低,甚至出现混乱的局面,
2.1.2 XML声明
外部标记声明,则取值为“no”。如果不存在 外部的标记声明,standalone声明没有意义。 如果存在外部标记声明而又没有写明 standalone的取值,则系统取值为“no”。
注意,外部的标记声明仅只表示外部声明 的存在。在一个文档中,当实体在内部声明时, 存在对于外部实体的引用不会改变文档的
【例2.5】字符集为GB2312的XML文档。
<?xml version="1.0" encoding="GB2312"?>
<hello>你好,世界!</hello>
请读者用浏览器浏览,看看结果怎样。如果删 除encoding = "GB2312",情况又会怎样?读 者可以自己试一试。
2.1.2 XML声明
2.1.3 XML的元素
级子元素<b>、<c>,<b>、<c>元素书写正确。
<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)错误。
2.1.2 XML声明
standalone状态。
任何有standalone=”no” 声明的XML文档, 可以在算法上转变成可独立(standalone)文 档,这种文档对某些网络发布应用可能是需要 的。下面是 standalone声明的示例:
<?xml version="1.0" standalone="yes"?>
2.1.2 XML声明
文字符。如果使用其它国家的代码,如拉丁文 字,中文、朝鲜文、日文,则必须使用 Unicode字符集来定义XML文档将要使用的特定 字符。
为了解决不同语言标准互不兼容的问题, Unicode为每一个字符提供一个唯一的编号。 Unicode用16位二进制代码对字符进行编码,
2.1.2 XML声明
2.1.2 XML声明
<?xml version="1.0" encoding="ISO-8859-1"?> <hello>Good morning!</hello>
【例2.4】字符集为ISO-8859-1的XML文档。
<?xml version="1.0" encoding="ISO-8859-1"?>
为了便于理解上述定义,下面是一些合法和非 法的标记名示例。
不合法的元素标记:
<123></123> <Name></name> 数字开头 大小写不匹配
<person></PERSON>
大小写不匹配
使用非法字符 没有结束标记
<STUDENT?NO></STUDENT?NO> <press>高等教育出版社<press>
2.1 XML的语法基础
【例2.1】一个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>
这样可以产生65536个可能的不同字符。
ASCII字符集在Unicode中只占很小的一 点 。 目 前 常 见 的 字 符 集 有 UTF-8 、 UTF-16 、 Windows-1252、ISO-8859-n、ISO-10646-UCS2。下面是用几种不同的字符集对XML文档进行 定义和改写例2.2后的代码。 【例2.3】字符集为ISO-8859-1的XML文档。
2.1.3 XML的元素
符号“<”后紧跟符号“/”。如上例中的<book>, <name>是开始标记,它们的结束标记分别是 </book>,</name>。
在开始标记和结束标记中包含的任意字符串 称为元素值。除了包含元素值以外,在开始标 记和结束标记还可以包含下一级子元素。如, <name>数据通信与计算机网络</name>定义了
元素可以包含值,可以为空值,还可以有下 层子元素。 某元素的子元素写在该元素的开始标记之后 和结束标记之前,如每一个<book>元素下的所有 子元素写在<book>之后和</book>之前,这种结 构称为元素嵌套。元素嵌套子元素,子元素可以 嵌套下一级子元素。这种嵌套必须严格。图2.1 是几种嵌套情况,在(a)中的<a>元素有两个平
第二章 XML的语法基础
2.1 XML的语法基础 2.2 XML的文档结构 2.3 名称空间 2.4 语言标识 习题二
2.1 XML的语法基础
XML语法由XML1.0规范确定,XML1.0规范 到目前已经出了三个版本,每一个新版本只 是对原来版本中不完善的部分和一些错误进 行修改。本章的所有内容来源于XML1.0规范 第三版本。 为了便于讨论,先给出一个XML文档的样 本,通过分析,逐渐展开。
ቤተ መጻሕፍቲ ባይዱ
2.1.3 XML的元素
一个图书书名的元素,元素值是“数据通信 与 计 算 机 网 络 ” 。 而 <book>……</book> 包 含的就是多个下一级子元素。
标记的一般命名规则要求具有确切含义, 如booklist定义了图书列表,author定义了 作者元素,press定义了出版社元素等。除 此之外,还有如下要求:
<?xml version="1.0"?> <hello>Good morning!</hello>
2.1.2 XML声明
XML的解析程序可以正确地得到上面文本的正 确结果。对于其它的字符集合,必须事先声明。
2、XML的字符选择 XML文档的默认字符系统是UTF-8,与传统的 ACSII字符集一致,如果处理的是英文字符, 这已经满足了需要。此时XML文档可以使用英
2.1.3 XML的元素
(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>不是空元素,因为它包含了两个 子元素,虽然其子元素为空。
最后两个标记,使用了中文字符,这是合法的 XML元素标记。
2、元素嵌套 每个XML文档必须有一个且只能有一个称之 为 “ 根 ” ( root ) 的 元 素 , 如 例 2.1 中 的 <booklist>。其他元素必须写在一对根元素 <booklist>和</booklist>之间。
2.1.3 XML的元素
2.1.1 结构良好性
和标准,他们不希望几年后,XML的使用也象 HTML一样出现任何问题。 所以,把结构良好 性写在了XML1.0规范的重要位置,用以强调 XML文档中的所有词素和语法必须是定义明确 的,结构良好的。
2.1.2 XML声明
在 例 2.1 中 的 第 一 行 出 现 的 <?xml version=”1.0”?>是XML规范规定的所有XML 文件必须具有的一行,称为XML声明,并规定, 这个声明必须写在每一个XML文档的第一行, 以标记这是一个XML文档,否则它就不是一个 XML文档,并依此来区别于其他文档。
2.1.3 XML的元素
①首字符是英文、汉字字符或其他字符,后跟数 字或其他符号。
②严格区分英文字母的大小写。 ③不能使用XML或xml作为元素名称。 ④不能独立使用数字作为元素名。
⑤在元素名中可以使用“_”、“.”等符号。
⑥不能使用“<、>、?、/、&、+、*”等符号作 为元素名。
2.1.3 XML的元素
2.1.3 XML的元素
1. 元素标记
元素标记简称标记(tag)。XML的标记与 HTML中的标记一样,所不同的是HTML的标记由 HTML规范规定,XML的标记由用户自己规定。
在XML中,标记分为开始标记和结束标记。 开始标记由小于符号“<”和“>”大于符号把标 记名括起来。结束标记是在开始标记的小于
2.1 XML的语法基础
这是一个描述图书信息的XML文档。根元 素是booklist,下面有若干个子元素book, 在 book中有表示具体数据的子元素name、 author、press、pubdate、price 五个元素。 另外,book元素还包含一个附属于它的属性 isbn。
2.1.1 结构良好性
当元素为空值时,其表示可以简化成用“<” 和“/>”包括元素名。如:<name></name>
2.1.3 XML的元素
简化成<name/>,<phone></phone>可以简写成 <phone/>。
结构良好性(well-formedness)是XML 规范中特别强调的重要概念,XML文档的书写 必须满足“结构良好(well-formed)”的原 则。所谓的结构良好的必要条件是: (1) 它总体是一个XML文档。 (2)它满足所有在XML1.0规范中提出的关 于结构良好性的约束。
2.1.1 结构良好性
<hello>早上好!</hello>
要想使用其他字符集,可以如法炮制。读 者可以编辑这些程序,然后用IE浏览器浏览, 查看其结果如何?以理解XML的代码集合的正 确使用。如果要使用中文字符集,必须有
2.1.2 XML声明
encoding = "GB2312"声明。因为,GB2312中列出了 基本的汉字交换标准。如下的字符声明。
2.1.1 结构良好性
如写标签时不写结束标签,写属性值时不用引 号(”或’),不区分大小写等。尽管浏览器 非常宽宏大量,几乎所有的不规范都可以勉强 通过解析并显示出来,使得一部分编程人员可 以继续这种不规范行为和随意性,客观上更加 剧了这种不规范和随意性的泛滥。W3C的专家 们期望XML规范是下一代的WWW的主要编程语言
3、standalone属性
独立文档声明(standalone),以XML声 明的成分出现,告诉文档是否存在一个外部的 文 档 实 体 或 参 数 实 体 。 即 , 在 XML 声 明 中 的 standalone 属性用来定义是否存在外部的标 记声明。如果不存在外部的标记声明, standalone 取值为“yes”。如果可能存在这 类
相关文档
最新文档