第三章第三章 XMLXML基本语法基本语法• •XMLXML文档的整体结构文档的整体结构• •构成构成XMLXML文档的主要成分文档的主要成分• •XMLXML文档的文档的“ “格式良好格式良好” ”与与“ “有效性有效性” ”• •名称空间的定义与引用名称空间的定义与引用• •名称空间的作用域名称空间的作用域• •数据岛与数据源对象数据岛与数据源对象XMLXML语言语言Tom Wolfe1 XML文档的整体结构(1)一个XML文档在结构上可以看成是一个有层次的树形结构:Tom WolfeThe Right Stuff $6.00 authortitletitlepricebookThe Right Stuff$6.00第三章第三章 XMLXML基本语法基本语法1 XML文档的整体结构(2)例1 一个XML文档:一个XML文件最基本的构成是:●XML声明●处理指令●注释●XML元素在本例中,[1] 是一个XML声明[3]——[17] 是文件中的各个元 素[1][2] 是处理指示[8] 是注释 [9]——[14] 是CDATA 节 [1] [2] [3] [4] [5] XML [6] XML是一种可扩展的元标记语言, 它可用 以规定新的标记规则,并根据这个规则组织数据。
[7] [8] [9] [11] 张三 [12] zhang@ [13] [14] ]] [15] [16] [17]第三章第三章 XMLXML基本语法基本语法2 构成XML文档的主要成分(1)•XML声明:通知处理软件这是一个XML文档,并通知XML的版本号、字符编码、是否 为独立文档XML声明由“”结束XML声明中要求必须指定 “version”的属性值同时,声明中还有两个可选属性,分别是 “encoding”和 “standalone” 一个最简单的XML声明:一个完整的XML声明:xml version=“1.0” encoding=“GB2312” standalone=“no”?第三章第三章 XMLXML基本语法基本语法2 构成XML文档的主要成分(2)版本属性(version) 这个属性指明所采用的XML的版本号它必须在属性列表中排在第一位 ,通常为1.0字符编码属性(encoding) 这个属性表明该XML文件的字符编码常见的有:简体中文码:GB2312繁体中文码:BIG5Unicode字符:UTF-8独立文档属性(standalone) 这个属性表明该XML文件是否和一个独立的标记声明文件配套使用。
yes为没有,no为有(也可能没有)第三章第三章 XMLXML基本语法基本语法2 构成XML文档的主要成分(3)2. 处理指令:处理指令(Process Instruction, 简称 PI)是用来给处理XML文件的应 用程序提供信息的处理指令应该遵循下面的格式:例:该处理指令来指定与XML文件配套使用的样式单的类型及文件名3. 注释:与HTML一样,XML的注释以 结束注释可以出现在文档的任何位置,但不要把注释文本放在文档的第一行或标记之中注释 也不能被嵌套注释内的任何标记都被忽略例: 第三章第三章 XMLXML基本语法基本语法2 构成XML文档的主要成分(4)例: Hello, World! 例: 前进大街2699号长春吉林4. 元素®标记是“”之间的文本标记以字母或下划线开始的字符串字符串中可包含字母、数字、连字符、点和下划线为开始标记,为结束标记 ®元素是开始标记、结束标记以及位于二者之间的所有内容元素中还可 以包含子元素 形式:数据®属性是一个元素的开始标记中的名称-值对一个元素可有多个属性第三章第三章 XMLXML基本语法基本语法2 构成XML文档的主要成分(5)根元素:XML 文档必须包含在一个单一元素中。
这个单一元素称为根元素,它 包含文档中所有文本和所有其它元素正确的XML例:Hello, World! 错误的XML例:Hello, World! Hola, el Mundo! X XOO第三章第三章 XMLXML基本语法基本语法2 构成XML文档的主要成分(6)XML元素不能交叉重叠:子元素的开始标记必须在父元素的开始标记之后,子元素的结束标记必 须在父元素的结束标记之前I really love XML. I really love XML. OOX X第三章第三章 XMLXML基本语法基本语法2 构成XML文档的主要成分(7)结束标记是必需的:不能省去任何结束标记Yada yada yada. Yada yada yada. .空元素: 或 X X第三章第三章 XMLXML基本语法基本语法2 构成XML文档的主要成分(8)XML元素是区分大小写的 在 HTML 中, 和 是相同的; 但是在 XML 中,它们是不同的Elements are case sensitiveElements are case sensitive X XOO第三章第三章 XMLXML基本语法基本语法2 构成XML文档的主要成分(9)属性必须有用引号括起的值XML 文档中的属性有两个规则:属性必须有值 那些值必须用引号括起 属性的引号可以是单引号,也可以是双引号,但要始终保持一致。
X XOO第三章第三章 XMLXML基本语法基本语法2 构成XML文档的主要成分(10)特殊实体:字符 、姓名张三/姓名特殊实体保留字符“ ‘ 联系人 姓名张三/姓名EMAILzhang@aaa. com/EMAIL /联系人张三 zhang@]]第三章第三章 XMLXML基本语法基本语法2 构成XML文档的主要成分(12)实体:是XML中用来指代其它复杂结构的机制一个简单的实体可以代表一 大段文本内容实体声明:实体的声明应该放在XML声明之后,XML根元素之前这样一来 ,XML文件就变为下面的形式:具体数据内容第三章第三章 XMLXML基本语法基本语法2 构成XML文档的主要成分(13)例6:实体定义]张三 A公司李四 B公司王五 B公司实体声明:实体引用:&实体名;其实,特殊实体就是一种内部预定义的实体.第三章第三章 XMLXML基本语法基本语法3 XML文档的“格式良好”与“有效性”(1 )格式良好的XML文档在编写XML文档时必须严格遵守XML的基本规定这样的XML文 档被称为格式良好的XML文档格式良好的XML文档应该满足 以下几个主要条件:§文档必须包含一个或多个元素;§文档中只存在一个根元素;§元素必须正确关闭;§元素间不得交叉重叠;§元素中的属性名不能重复;§属性值必须加引号。
第三章第三章 XMLXML基本语法基本语法3 XML文档的“格式良好”与“有效性”(2 )有效的XML文档一个XML文档被称为有效的XML文档,首先它必须是格式良好的,并且还 要对标记集和文档结构进行约束这种约束是通过DTD或XML Schema来 进行的格式良好的XML文档可以保证文档的结构清晰、完整,减轻XML应用程序的 负担而有效的XML文档又可以根据不同的应用领域对标记集和文档结 构进行约束,并以此验证文档内容的有效性检查和验证XML文档的最简单的方法之一是用 IE XML TOOLS 打开要验证的 XML文档可以从下面的网站下载 IE 的 XML 有效性验证工具∶ XMLXML基本语法基本语法4 4 XMLXML名称空间名称空间第三章第三章 XMLXML基本语法基本语法起源:XML是一种元标记语言,允许用户定义自己的标记,因此, 很可能产生名字重复的情况为了解决这个问题,W3C在1999年1月颁布了名称空间( NameSpace)标准该标准将XML文档和URI引用标识的名称相结合,来限定其 中的元素和属性名这就解决了XML文档中标记重名的问题,从而确保任何一篇 XML文档中使用的名字都是全球范围内独一无二的。
“张三张三 001ID001A A公司公司 EMAILzhang@zhang@EMAIL(010)62345678(010)62345678 五街五街12341234号号 北京市北京市 北京北京 王五王五 (010)62345678(010)62345678 1360123456713601234567 4 4 XMLXML名称空间名称空间——一个一个例例子子第三章第三章 XMLXML基本语法基本语法如何定义名称空间如何定义名称空间 名称空间是用保留属性来声明的例子里的头一条语句中,以名称空间是用保留属性来声明的例子里的头一条语句中,以““xmlnsxmlns:”:” 为前缀的两个属性,就是名称空间的声明为前缀的两个属性,就是名称空间的声明 其中,等号前的属性名部分定义了其中,等号前的属性名部分定义了名称空间前缀名称空间前缀,如,如““联系人联系人””和和““企业企业 经理经理”” 等号后的属性值部分定义了等号后的属性值部分定义了名称空间名名称空间名,如,如 ““http:// /企业经理企业经理. .dtddtd””名称空间前缀和名称空间名通过名称空间前缀和名称空间名通过 名称空间声明联系起来。
名称空间声明联系起来特别需要指出的是,这个特别需要指出的是,这个名称空间名名称空间名并不是一个真实的地址,而只是一个并不是一个真实的地址,而只是一个 修饰例如:修饰例如: 前述的前述的 http:// 完全可以写作完全可以写作 http://http://jlu.eee.ccjlu.eee.cc 虽然这里并没有虽然这里并没有 jlu.eee.ccjlu.eee.cc 这个真实的地址这个真实的地址4 4 XMLXML名称空间名称空间----定义名称空间定义名称空间第三章第三章 XMLXML基本语法基本语法直接定义方式与缺省定义方式直接定义方式与缺省定义方式 名称空间声明的属性名部分由两部分组成,即保留属性名前缀名称空间声明的属性名部分由两部分组成,即保留属性名前缀“ “xmlnsxmlns:“:“和名称空间和名称空间 前缀,且名称空间前缀是一个合法的前缀,且名称空间前缀是一个合法的XMLXML名称例如,名称例如,“ “xmlnsxmlns: : 联系人联系人“ “、、“ “xmlnsxmlns: : 企业企业 经理经理“ “都是合法的名称空间声明的属性名都是合法的名称空间声明的属性名。
名称空间声明的属性值部分是一个名称空间声明的属性值部分是一个URIURI引用,其功能是区分不同的名称空间,因此引用,其功能是区分不同的名称空间,因此 ,这个,这个URIURI引用被称为引用被称为““名称空间名名称空间名””,它应该具有唯一性和持久性它应该具有唯一性和持久性 名称空间声明有两种方式名称空间声明有两种方式: :直接定义方式直接定义方式和和缺省定义方式缺省定义方式: : 直接定义直接定义 xmlnsxmlns: :名称空间前缀名称空间前缀 = = ““名称空间名名称空间名” ” 缺省定义缺省定义 xmlnsxmlns = “ = “名称空间名名称空间名” ” 在缺省方式下,在缺省方式下,名称空间声明的属性名部分仅有保留属性名名称空间声明的属性名部分仅有保留属性名xmlnsxmlns,,属性值部分与直接定义方属性值部分与直接定义方 式相同例如例如: :“ 缺省方式4 4 XMLXML名称空间名称空间----定义名称空间定义名称空间第三章第三章 XMLXML基本语法基本语法合法名称可以用于合法名称可以用于。