XML把名称空间定义为包装XML元素在一起供以后重用的方式。为了使用XML文档的名称空间中定义的元素,你必须通过xmlns属性声明你希望采用名称空间。你还必须为该名称空间定义快捷方式的前缀(例如xs:)作为你文档中的根元素,从而使得名称空间在文档中都可用。前缀是用于文档的任何导入名称空间的元素的标识符。这一过程就如同在Visual Basic中给库加索引或者导入模块;C++、Java或者.NET下的名称空间也具有同样的含义。 

解决方案 »

  1.   

    命名空间:XML较之HTML最根本的差别在于XML是定义置标语言的元语言,而HTML仅仅是由SGML元置标语言定义的一个实例语言。利用XML元置标语言,定义各种各样的XML实例的活动是相当开放的。针对不同的应用方向,每设计一个XML的DTD,一种新的置标语言便随之诞生。在各种各样XML实例置标语言如雨后春笋般不断涌现的过程中,将会产生这样一种应用需求,即在一个XML文档中,包含由多个DTD描述的元素。如果不解决这种元素名称上的冲突问题,一个XML文档包含多个DTD中定义的元素这一天才构想就不能实现。为了解决这个问题,W3C的XML小组制定了被称为命名空间(NameSpace)的标准。W3C组织于1998年2月提出命名空间标准的第一个草案,到1999年1月14日正式发布为推荐标准。命名空间标准提供了一个很聪明的方法,就是所谓前缀标识法,即在元素名和属性名前面增加一个标识,以唯一区分当前元素或属性来自哪一个DTD。    在说到元素的定义方法之前,我们先来讲一下Schema文件的结构。其实,Schema文件和其它XML文件的样子非常相似,它是由一组元素构成的,其根元素是“Schema”。“Schema”元素是XML Schema中第一个出现的元素,用于表明该XML文档是一个Schema文档,相应的,“Schema”的结束标记一般在文档的末尾。这样,一个Schema的结构如下:
    <Schema name="schema-name" xmlns="namespace" >
    ...
    </Schema>Schema具有两个属性:name指定该Schema的名称,而xmlns则指定该Schema包含的命名空间。注意,一个XML Schema文档中可以包含多个命名空间,比如下面的语句指定了三个命名空间:
    <Schema name="mySchema" 
            xmlns="urn:schemas-microsoft-com:xml-data"
            xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:myNS=http://www.xml_step_by_step.edu\ns.xml
    >第一个是xmlns="urn:schemas-microsoft-com:xml-data",它指定本文档是一个XML Schema文档;第二个是xmlns:dt="urn:schemas-microsoft-com:datatypes",它定义了在本文档中可以使用的数据类型;第三个是xmlns:myNS="http://www.xml_step_by_step.edu\ns.xml",它表明下面可能会用到在myNS中定义的元素或属性。
    至于文件结构中的省略号,可以是关于元素的声明语句、也可以是关于属性的声明语句,一切听从你的实际需要。合法名称的形式应该是:
    前缀部分:本地部分其中,“前缀部分”和“本地部分”都要求是一个合法的XML名称。前缀部分必须是一个已经经过声明的命名空间前缀,语法分析器将把它与命名空间声明中的URI引用相联系;本地部分则是在DTD或Schema中定义的元素和属性名。下面给出一个合法名称的例子:
    企业经理:姓名此外,由于命名空间的声明方式有直接方式和缺省方式两种,合法名称也稍有变化。由于缺省方式声明的命名空间就是作用域内的缺省命名空间,因此,在这个作用域内使用该命名空间的元素、属性的合法名称无须再写前缀部分。这样一来,元素的合法名称看上去和我们前面常用的元素名是一致的。由此可见,我们一直在使用“合法名称”,只不过没有意识到罢了。有了命名空间的声明,又有了命名空间下的合法名称,下面我们就可以在元素标记和属性中享受命名空间带来的一系列便利了。详细内容请参考
    www.xml.net.cn
      

  2.   

    XML把名称空间定义为包装XML元素在一起供以后重用的方式。