XML 名字空间

XML 名字空间
XML 名字空间提供了一种避免元素名冲突的方法。
    
   b> 名字冲突
     
   由于 XML 中的元素名不是固定的,因此当两个不同的文档使用同样的名字描述两个不同类型的元素时就会发生名冲突
  
下面这个 XML 文档在一个表格中携带了信息 :
    
  < table>
  
   < tr>
  
   < td>Apples< /td>
  
   < td>Bananas< /td>
  
   < /tr>
  
   < /table>
  
  
   下面这个 XML 文档携带了关于一个表格的信息 ( 关于一件家具的信息 ):
  
  
   < table>
  
   < name>African Coffee Table< /name>
  
   < width>80< /width>
  
   < length>120< /length>
  
   < /table>
  
  
   如果这两个 XML 文档被加在一起,就会发生一个元素名冲突,因为这两个文档都包含了一个 < table> 元素,而这两个元素的内容和定义都不同。
  
    
   b> 用一个前缀解决名冲突
  
  
   下面这个 XML 文档在一个表格中携带了信息:
  
  
   < h:table>
  
   < h:tr>
  
   < h:td>Apples< /h:td>
  
   < h:td>Bananas< /h:td>
  
   < /h:tr>
  
   < /h:table>
  
  
   而这个 XML 文档则携带了一件家具的信息:
  
  
   < f:table>
  
   < f:name>African Coffee Table< /f:name>
  
   < f:width>80< /f:width>
  
   < f:length>120< /f:length>
  
   < /f:table>
  
  
   现在就没有元素名冲突的问题了,因为两个文档分别给他们的 < table> 元素使用了不同的名字: (< h:table> < f:table>) 通过使用一个前缀,我们创建了两个不同类型的 < table> 元素。
   
  
   b> 使用名字空间
  
  
   下面这个 XML 文档在一个表格中携带了信息
  
  
   < h:tablexmlns:h="http://www.w3.org/TR/html4/">
  
   < h:tr>
  
   < h:td>Apples< /h:td>
  
   < h:td>Bananas< /h:td>
  
   < /h:tr>
  
   < /h:table>
  
  
   这个 XML 文档携带了一件家具的信息 :
  
  
   < f:tablexmlns:f="http://www.w3schools.com/furniture">
  
   < f:name>African Coffee Table< /f:name>
  
   < f:width>80< /f:width>
  
   < f:length>120< /f:length>
  
   < /f:table>
  
  
   在这里不是只使用前缀,在 < table> 标记上还增加了一个 xmlns 属性,这样就给元素前缀一个与名字空间相联系的有资格的名字。
  
  
  
  
   b> 名字空间属性
  
  
   名字空间属性放在一个元素的起始标记中,它的语法如下 :
  
  
   xmlns:namespace-prefix="namespace"
  
  
   在上面的例子中,名字空间本身是用一个 Internet 地址定义的:
  
  
   xmlns:f="http://www.w3schools.com/furniture">
  
  
   W3C 名字空间规范规定名字空间本身应该是一个统一资源识别号 (URI) 。当一个名字空间在一个元素的起始标记中被定义时,所有相同前缀的子元素都与同样的名字空间相关。 注意:分解器并不使用用来识别名字空间的地址去查找信息。这个地址唯一的目的就是给名字空间一个唯一的名字。但是,公司经常将名空间作为包含名空间信息的实际 Web 页面的一个指针。访问 http://www.w3.org/TR/html4/ 试一试。
    
   b> 统一资源识别号
  
  
   一个统一资源识别号 (URI) 是识别一个 Internet 资源的字符串。通常 URI 就是识别一个 Internet 域地址的 URL 。另外,有少数一些类型的 URI 是通用资源名 (URN) 。在我们的例子中只使用 URL 。由于我们这个家具的例子中使用一个 Internet 地址去识别其名字空间,我们可以肯定我们的名字空间是唯一的。

你可能感兴趣的:(XML 名字空间)