孙鑫 XML培训视频 笔记 名称空间.doc_第1页
孙鑫 XML培训视频 笔记 名称空间.doc_第2页
孙鑫 XML培训视频 笔记 名称空间.doc_第3页
孙鑫 XML培训视频 笔记 名称空间.doc_第4页
孙鑫 XML培训视频 笔记 名称空间.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XML名称空间一个XML文档中可以包含许多元素与属性,当我们使用其他人的XML文档,或者在文档中使用多个DTD文件时,就有可能碰到名称相同的元素,而这些名称相同的元素可能代表了完全不同的含义。比如:title可以用于表示标题,也可以永远表示某个人的头衔;table可以用于表示表格,也可以用于表示桌子。当这些具有相同名称不同含义的元素混合到一个文档中时,就会造成理解和处理上的混乱。为了解决这个问题,就要用到W3C发布的另一个推荐标准XML名称空间。/TR/REC-xml-names声明名称空间名称空间通过使用一系列的保留属性来声明,这种属性的名字必须是以xmlns或以xmlns:作为前缀。与其他任何XML属性一样,这些属性可以直接或以缺省的方式给出。声明有两种形式:第一种:元素名是指你在哪一个元素上声明名称空间,在这个元素上声明的名称空间适用于声明它的元素和属性,以及该元素内容中的所有元素及其属性。xmlns:prefixname作为该元素的属性名,属性的值是一个URI引用,是表示该名称空间的名称空间名字。其中prefixname给出名称空间前缀的名字,该前缀用于将元素及属性的名字与URI关联在一起。要注意,在这样的声明中,名称空间的名字不能为空(“”)。如果有两个URI,其组成字符完全相同,可以认为它们标识了同一个名称空间。来自于XML名称空间的名字可以作为限定名(qualified names)出现,限定名包含了一个以冒号(:)分隔的名称空间前缀和一个本地部分(local part)。映射到URI引用的名称空间前缀选择了一个名称空间。名称空间前缀可以是不包含冒号的任何合法的xml名称。在声明名称空间时,有两个前缀是不允许使用的,它们是xml和xmlns。xml前缀只能用于XML1.0规范中定义的xml:space和xml:lang属性,前缀xml被定义为与名称空间名字/XML/1998/namespace绑定。前缀xmlns仅仅用于声明名称空间的绑定,它被定义为与名称空间名字/2000/xmlns绑定。名称空间推荐标准中指出,在名称空间声明中,使用相对URI引用已经被废弃了(不赞成使用)。第二种:这种声明形式没有给出名称空间的前缀名,URI所标识的是缺省的名称空间。在这样的缺省声明中,属性值可以为空(“”)。例子:表示声明了一个缺省的名称空间,hr元素及其内容中所有的没有前缀的元素都属于/hr所标识的名称空间,除非被hr元素内容中其他的缺省名称空间声明所覆盖。在声明名称空间时,选择的URI不需要指向时间的内容,在URI所标识的位置上,可以不存在任何东西。在名称空间声明中的URI,只是形式上的标识符,其唯一目的是提供一个唯一的名字。名称空间在元素和属性中的运用元素中运用: jsp深入编程 张三 作家 xml入门 李四 教师 进一步: jsp深入编程 张三 作家 xml入门 李四 教师 或 jsp深入编程 张三 作家 xml入门 李四 教师 缺省的名称空间:在具有很多元素(这些元素都在同一个名称空间中)的文档中,给每个元素名称都添加一个前缀将是很繁琐的事情。为此,可以使用没有前缀名的xmlns属性将缺省的名称空间附加给元素及其子元素,元素本身及其子元素都被认为是在缺省的名称空间中,除非它们有明确的前缀。 jsp深入编程 张三 作家 xml入门 李四 教师 缺省的名称空间声明中的URI可以设为空字符串,这样的话,在它的声明范围内,没有前缀的元素将被认为不存在任何的名称空间中,这和没有声明缺省名称空间是一样的。 jsp深入编程 张三 作家 xml入门 李四 教师 属性中运用: jsp深入编程 张三 作家 xml入门 /此次属于哪个空间? 李四 教师 一个属性想要在某个名称空间中,必须给改属性加上名称空间的前缀,没有前缀的属性不在任何的名称空间中(包括缺省的名称空间)。即使拥有属性的元素在某个名称空间中,没有前缀的属性仍然不在该名称空间或任何其他的名称空间中。在xml文档中,没有任何一个标签可以包含两个相同的属性,所谓相同的两种情况,一种是属性的名字完全相同,另一种是属性限定名的本地部分完全相同,而不同的前缀绑定到了相同的名称空间名字。/error 属性名字同/error 绑定到同样名称空间名字,而本地部分也完全相同/ok 属性名不同/ok a不属于任何名称空间,即使是缺省的名称空间。名称空间和DTDDTD和名称空间并不相关,当xml处理器在验证文档的有效性时,根本不管元素前缀的含义,只是按照DTD的规范对文档进行有效性验证。我们在声明名称空间时,使用了xmlns或xmlns:prefixname属性,而在验证时,会发现在DTD中没有声明改属性,当然验证就会失败;另外,如果在DTD中声明的是book元素,而在文档中使用的是bks:book元素,则文档也是无效的。为了让使用名称空间的文档有效,必须在DTD中像声明其他属性一样声明xmlns或xmlns:prefixname属性,此外,还有重新写所有带有前缀的元素和属性的声明。没有使用名称空间的文档:!DOCTYPE book jsp深入编程张三应用了名称空间后,要重写DTD!DOCTYPE book jsp深入编程张三为减少修改,使用缺省的名称空间!DOCTYPE book jsp深入编程张三小结为了解决多个xml文档命名冲突问题,xml名称空间。在声明名称空间时,选择的URI不需要指向实际内容。唯一目的是提供一个唯一的名字。在名称空间声明时,不能使用相对URI,要用绝对URI。来自于xml名称空间的名字可作为限定名出现,限定名包含了一个以冒号分隔的名称空间前缀和一个本地部分,要注意,没有冒号的名字也可以是限定名。缺省名称空间声明中的URI可设为空字符串,在声明范

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论