3.2命名空间的运行机制
###XML命名空间的运行机制
命名空间为XML的元素和属性分派URI,以消除相同名称产生的歧义
命名空间属性被放置于元素的开始标签中
命名空间的声明:
规范:http://www.w3.org/TR/REC-xml-names/
直接命名:xmlns:[命名空间前缀]=[命名空间名URI]
默认命名:xmlns=[命名空间名URI]
**xmlns(xml namespace)是专门用于声明命名空间的关键字XML命名空间的运行机制 **
使用XML命名空间,元素名就成为了限定名(Qualified Names, QName)
本地部分:元素名
命名空间前缀:确定了名称所在的命名空间XML命名空间的运行机制。
声明了pers命名空间前缀及其代表的URI (
http://www.lzu.edu.cn/pers
)命名空间前缀用在元素名前面:pers:personnn前缀pers的唯一作用是代表一个命名空间的名称,没有任何含义,可用其他前缀代替。
前缀名也要遵循元素名命名规则,pers:person的任何子元素或属性都可以使用该前缀,表示都属于
http://www.lzu.edu.cn/pers
命名空间<pers:personxmlns:pers=”http://www.lzu.edu.cn/pers”>
元素的开始标签和结束标签都要有前缀
只有有前缀的元素才是命名空间的一部分
XML解析器使用命名空间代替所有的命名空间前缀
<pers:person>
==<{http://www.lzu.edu.cn/pers\ person}>
(完全限定名)
pers前缀表示属于pers命名空间的元素
html前缀表示属于XHTML命名空间的元素
前缀本身没有实际意义,前缀表示的命名空间才是解析器关心的XML命名空间的运行机制
默认的命名空间
一个不含前缀的元素及其所有子元素都属于同一个命名空间
不需要在默认的命名空间所有元素前面插入前缀
元素名不是限定名,用全域名称(Universal Name)表示一个命名空间里面的任何元素,不管是有前缀的限定名,还是默认命名空间中的名称
一个元素可声明多个命名空间,只有一个默认的命名空间,默认的命名空间对属性无效XML命名空间的运行机制
XML命名空间的运行机制
默认的命名空间
可以在文档的任何一个元素里声明命名空间前缀
在离使用命名空间最近的位置定义命名空间
xhtml前缀只作用与
元素及其子元素
对元素不起作用,也对非
子元素的元素不起作用
在文档的任何地方使用默认命名空间
在离使用命名空间最近的位置声明 XML命名空间的运行机制
取消默认命名空间
通过编程方法从XML读取信息
DOM和SAX
Last updated