文档详情

孙鑫 XML培训视频 笔记 名称空间.doc

发布:2017-11-13约5.87千字共6页下载文档
文本预览下载声明
XML名称空间 一个XML文档中可以包含许多元素与属性,当我们使用其他人的XML文档,或者在文档中使用多个DTD文件时,就有可能碰到名称相同的元素,而这些名称相同的元素可能代表了完全不同的含义。比如:title可以用于表示标题,也可以永远表示某个人的头衔;table可以用于表示表格,也可以用于表示桌子。当这些具有相同名称不同含义的元素混合到一个文档中时,就会造成理解和处理上的混乱。为了解决这个问题,就要用到W3C发布的另一个推荐标准——XML名称空间。/TR/REC-xml-names 声明名称空间 名称空间通过使用一系列的保留属性来声明,这种属性的名字必须是以xmlns或以xmlns:作为前缀。与其他任何XML属性一样,这些属性可以直接或以缺省的方式给出。 声明有两种形式: 第一种: 元素名 xmlns:prefixname=”URI” 元素名是指你在哪一个元素上声明名称空间,在这个元素上声明的名称空间适用于声明它的元素和属性,以及该元素内容中的所有元素及其属性。xmlns:prefixname作为该元素的属性名,属性的值是一个URI引用,是表示该名称空间的名称空间名字。其中prefixname给出名称空间前缀的名字,该前缀用于将元素及属性的名字与URI关联在一起。要注意,在这样的声明中,名称空间的名字不能为空(“”)。如果有两个URI,其组成字符完全相同,可以认为它们标识了同一个名称空间。 来自于XML名称空间的名字可以作为限定名(qualified names)出现,限定名包含了一个以冒号(:)分隔的名称空间前缀和一个本地部分(local part)。映射到URI引用的名称空间前缀选择了一个名称空间。 hr xmlns:hr=”/hr” hr:employee 名称空间前缀可以是不包含冒号的任何合法的xml名称。 在声明名称空间时,有两个前缀是不允许使用的,它们是xml和xmlns。xml前缀只能用于XML1.0规范中定义的xml:space和xml:lang属性,前缀xml被定义为与名称空间名字/XML/1998/namespace绑定。前缀xmlns仅仅用于声明名称空间的绑定,它被定义为与名称空间名字/2000/xmlns绑定。 名称空间推荐标准中指出,在名称空间声明中,使用相对URI引用已经被废弃了(不赞成使用)。 第二种: 元素名 xmlns =”URI” 这种声明形式没有给出名称空间的前缀名,URI所标识的是缺省的名称空间。在这样的缺省声明中,属性值可以为空(“”)。 例子: hr xmlns=”/hr” 表示声明了一个缺省的名称空间,hr元素及其内容中所有的没有前缀的元素都属于/hr所标识的名称空间,除非被hr元素内容中其他的缺省名称空间声明所覆盖。 在声明名称空间时,选择的URI不需要指向时间的内容,在URI所标识的位置上,可以不存在任何东西。在名称空间声明中的URI,只是形式上的标识符,其唯一目的是提供一个唯一的名字。 名称空间在元素和属性中的运用 元素中运用: ?xml version=”1.0” encoding=”gb2312” books xmlns:people=”/people” book titilejsp深入编程/title author people:name张三/people:name people:title作家/people:title /author /book book titilexml入门/title author people:name李四/people:name people:title教师/people:title /author /book /books 进一步: ?xml version=”1.0” encoding=”gb2312” bks:books xmlns:people=”/people” xmlns:bks=”/books” bks:book bks:titilejsp深入编程bks:title bks:author people:name张三/people:name people:title作家/people:title /bks:author /bks:book bks:book bks:titilexml入门/bks:title bks:author people:name李四/people:name people:title教师/people:title /bks:author /bks:b
显示全部
相似文档