Siv*_*eti 7 xml xml-namespaces
让我们考虑这个 xml 数据
<root xmlns:h="http://www.w3.org/TR/html4/"
 xmlns:f="http://www.w3schools.com/furniture">
<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>
<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>
</root>
Run Code Online (Sandbox Code Playgroud)
这里 h 的 NURI:“ http://www.w3.org/TR/html4/ ” 
f 的 NURI:“ http://www.w3schools.com/furniture ” 
NURI(命名空间 URI)到底意味着什么?有必要吗?。它实际上包含什么?
在示例中使用 XML 命名空间是必要的,因为table文档中有两个具有不同含义的元素。他们不一样。一个来自 XHTML,另一个来自 W3 Schools 词汇表。您可以通过将第一个表“放入”XHTML NS 中(由于h绑定到http://www.w3.org/TR/html4/NS 的本地前缀)来区分它们,将第二个表“放入”table另一个 NS 中(由于f绑定到http://www.w3schools.com/furnitureNS 的本地前缀)。现在,通过构建扩展名称并比较 URI,我们能够区分这两个元素。请注意,前缀是任意的。
命名空间 URI 使我们能够唯一地标识命名空间。它也称为命名空间名称。如果使用 URL,您将利用域名系统 (DNS) 中域名的唯一性。
在XML 1.0 中的命名空间第 2.1 节中,我们可以读到:
XML 命名空间由 URI 引用标识
在第 2.3 节中:
在确定名称是否属于给定名称空间以及两个名称是否属于同一名称空间时,将比较标识名称空间的 URI 引用。[定义:两个 URI 被视为字符串,当且仅当字符串相同,即它们是相同的字符序列时,它们才是相同的。] 比较区分大小写,并且不会完成或撤消 % 转义。
这意味着当一个(程序)必须比较 NS URI 时,它仅将其作为原始字符串比较。URI 不必是指向 Internet 上的资源的 URL(例如,可通过 HTTP 访问的网页)。
请注意,URI 与本地名称(不带冒号的名称)一起使用来构建扩展名称,即(URI, localName)您可以编写的一对{URI}localName(James Clark 表示法),并且使用该对来代替单独的本地名称。这两种表示法都不是标准的,不能在 XML 文档中使用。它只是允许用户写下来。命名空间并不存在,但建议解释了我们如何使用扩展名称以及如何使用名为 xmlns 的特殊属性来构建此类扩展名称。就是这样,不多也不少。
我建议您阅读Ronald Bourret 所著的《命名空间神话的揭秘》。
XML 1.1 中的命名空间将 URI 的使用概括为 IRI。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           14375 次  |  
        
|   最近记录:  |