为什么XML命名空间是HTTP地址?

时间:2016-07-08 16:45:45

标签: xml xml-namespaces

即使名称空间URI不是通过HTTP可用的实际资源,XML名称空间的目的是什么? XML解析器与它有什么关系?他们的认可(名称空间)存在于哪里?

2 个答案:

答案 0 :(得分:1)

Section 1, Motivation and SummaryW3C Recommendation: Namespaces in XML 1.0 (Third Edition)中清楚地解释了XML命名空间的用途:

  

我们设想了可扩展标记语言(XML)的应用程序   单个XML文档可能包含元素和属性(此处引用   作为“标记词汇表”,由多个人定义和使用   软件模块。对此的一个动机是模块化:如果是这样的话   标记词汇存在,这是很好理解和存在的   是有用的软件,最好重新使用这个标记   而不是重新发明它。

     

这些包含多个标记词汇表的文档会带来问题   承认与碰撞软件模块需要能够   识别他们设计的元素和属性   过程,即使面对标记时发生的“碰撞”   打算用于其他一些软件包使用相同的元素名称或   属性名称。

     

这些注意事项要求文档构造应具有   构造的名称,以避免不同名称之间的冲突   标记词汇表。该规范描述了一种机制 XML   名称空间,通过分配expanded names来实现此目的   元素和属性。

XML命名空间采用URI的词法形式,但你是正确的不必是可检索的; per section 3, Declaring Namespaces

  

属性的规范化值必须是URI引用 -   标识名称空间的名称空间名称 - 或空字符串。该   命名空间名称,为了达到预期目的,应该有   独特性和持久性的特征。这不是目标   它可以直接用于检索模式(如果有的话)   存在)。

使用URL的主要好处是可以认为域名持有者有权在定义命名空间时管理域的唯一用途。

Parsers认为名称空间URI是组件(元素和属性)名称的词汇部分。解析器还使用xsi:schemaLocation中的命名空间来帮助找到XSD以与每个用户“提示”的XML文件相关联。

答案 1 :(得分:0)

标题中的问题答案是:

  • 强烈建议使用命名空间名称作为URI,但大多数软件会将规范解释为允许任何字符串。

  • URI可以是HTTP"地址",但它们不一定非。

  • 一些主张使用HTTP地址作为命名空间URI的人认为这是一个好主意,因为您可以在该地址放置有关命名空间的人类可读或机器可读信息。 (W3C为W3C定义的命名空间执行此操作,例如)

  • 然而,使用HTTP地址作为命名空间URI肯定会引起巨大的混淆,有些人认为最好使用看起来更像标识符而不像资源地址的东西。