首页 百科知识 XML文件的命名空间

XML文件的命名空间

时间:2022-10-15 百科知识 版权反馈
【摘要】:XML命名空间就是对这种方案的具体实现。因此,这个URI引用被称为命名空间名,它应该具有唯一性和持久性。命名空间声明将“命名空间名”与“命名空间前缀”绑定在一起。XML命名空间在实际编写中采用两段式的方法来表示,例如:<命名空间前缀:标记名称>,命名空间前缀是代替命名空间字符串URL的。

XML文件的命名空间

XML的标记名称可以由用户自己定义,这样用户就拥有了自己的标记,但是随着网络的发展,XML程序被广泛应用于网络,这就使得用户和用户之间,甚至用户自己定义的标记名称都有可能出现重复的情况。而且在不同行业和领域应用中同一个名称有可能含有不同的语义,使人们的理解产生分歧,这样用XML制定的不同的语言标准(比如电子商务、远程教育、电子书等)。一旦产生标记名称的重复或是理解的分歧,将会给我们带来无法想象的麻烦。

因此,解决名称冲突是必须的。其中一个比较好的解决方案是,给不同的XML标记名称赋以不同的名称空间,应用程序通过名称空间来区分每一个XML元素。XML命名空间就是对这种方案的具体实现。

XML命名空间的声明方法如下:<学生:学生xmlns:学生=http://www.xml.net.cn/学生>。命名空间的声明完整的形式为:xm lns:[命名空间前缀]=[命名空间名]。缺省方式为:xmlns=[命名空间名]。

命名空间声明中,等号右边的部分是一个URI(Uniform Resource Identifier统一资源标识符)引用,它的功能是区分不同的命名空间。因此,这个URI引用被称为命名空间名,它应该具有唯一性和持久性。虽然使用了URI,但它的目的并不是要直接得到一个Schema或DTD,主要的目的是标识特定的命名空间。

命名空间声明中,等号左边的部分,如果有用冒号“:”分隔开的“命名空间前缀”,就是直接定义方式,其中“命名空间前缀”是一个合法的XML名称。没有“命名空间前缀”的命名空间声明,就是缺省的命名空间声明。命名空间声明将“命名空间名”与“命名空间前缀”绑定在一起。

XML命名空间在实际编写中采用两段式的方法来表示,例如:<命名空间前缀:标记名称>,命名空间前缀是代替命名空间字符串URL的。由于命名空间是唯一的,因此即使标记名称是相同的,处在不同的命名空间也可以把它们区分开来。

例3-3

<bk: book xmlns: bk=“http://www.flag.com”>

<bk: title>书名</bk: title>

</bk: book>

<jb: job xm lns: jb=“http://www.company.com”>

<jb: title>工作名称</jb: title>

</jb: job>

很容易就区分出两个title元素是不同的。

如果元素没有声明自己的命名空间,则默认它采用它上一级元素的命名空间。如果元素与它的上一级元素不在同一个命名空间,则需要用户显示,声明它的命名空间。例如:

<bk: book xmlns: bk=“http://www.flag.com”>

<title>书名<title>

</bk: book>

上例中title元素没有自己的命名空间,则默认title元素的命名空间与它的上一级元素book在同一命名空间,即为bk。再如:

<bk: book xm lns: bk=“http://www.flag.com”xm lns: jb=“http://www.company.com”>

<jb: title>工作名称</ jb: title>

</bk: book>

上例中的book父元素与title子元素处于不同的命名空间中。由此可见命名

空间的有效范围是与元素的范围有关的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈