为什么XML命名空间必须是长URL?

问题描述 投票:0回答:2

例如,

<svg xmlns="http://www.w3.org/2000/svg">
  <!-- more tags here -->
</svg>

我们可以使用更短的东西,例如svg2000,svg1.1或w3svg2000,而不是长的网址“http://www.w3.org/2000/svg”,它太长而无法输入和错字?

根据this answer

'这些网址不用于连接,只是定义元素的含义'

为什么W3C和主流浏览器公司都坚持使用繁琐的东西?

xml svg w3c
2个回答
1
投票

我们可以使用更短的东西,比如svg2000,svg1.1或w3svg2000,而不是长的网址“http://www.w3.org/2000/svg”,它太长了,无法输入并且容易出错?

这取决于你的要求。如果您正在设计自己的格式,则可以选择所需的任何名称空间。例如,pre-XMPP Jabber使用了jabber:clientjabber:server命名空间(但是,随着Jabber进入XMPP,它转换为像urn:ietf:params:xml:ns:xmpp-tls这样的URN)。

为什么W3C和主流浏览器公司都坚持使用繁琐的东西?

如果要实现现有标准(如SVG),则必须遵循其规则,并且XML命名空间是SVG标准的一部分。如果使用不同的命名空间,则您的文档不再是SVG文档。

BTW:

长网址“http://www.w3.org/2000/svg”,这种类型太长,无法输入并且容易出错

你不应该输入它,当然不会超过一次:)


0
投票

简而言之,请参阅Michael Kay's answer to a similar question。对于长版本阅读...


XML命名空间规范本身does not mandate the use of such long URLs

命名空间名称,为了达到预期目的,应该具有唯一性和持久性的特征。它不是直接用于检索模式(如果存在)的目标。统一资源名称[RFC2141]是在设计时考虑到这些目标的语法示例。然而,应该注意,可以以实现这些相同目标的方式管理普通URL。

...所以包括SVG在内的W3C规范可能使用了更短的名称,比如urn:w3c:svg

但是,如Architecture of the World Wide Web所述,使用URL作为命名空间名称允许(同时仍保证唯一性)发布包含命名空间信息的“命名空间文档”。加倍作为URL的最短名称将是http://w3.org/svg

(指向“命名空间文档”的命名空间URL的值在今天的世界中似乎很低,没有人可以想象没有谷歌这样的搜索引擎的生活,但你可以尝试理解90年代不依赖于搜索引擎的人网络的架构。)

many working groups at W3C(大多数工作相对模糊的主题),所以他们提出了形式a policy for allocating namespace URLshttp://www.w3.org/YYYY/MM/ssss。该政策包括一个理由:

  • 保持“www。”:“在两个地址复制网站[有和没有www。前缀]会破坏世界各地的缓存,索引和档案的效率。” - 嘿
  • 对于YYYY和MM(对应于URI分配的年份和月份的数字):“此语法使W3C支持人员能够确保名称空间URI的持久性非常高......组参与者应记住W3C团队将是在小组对其他主题更感兴趣或已经关闭之后,长期维护这个Web空间。“

后来政策was amended允许没有年份的URL(http://www.w3.org/ns/ssss),但对于SVG来说为时已晚。

作为一个有趣的历史,XML规范states的“起源和目标”,“XML标记中的Terseness具有最低限度的重要性” - which is said to be a result of“SGML的复杂性和难度因使用最小化而大大增加。 “但最终,尝试将Web切换到XML failed并且到目前为止,标准允许在HTML中使用SVG而不指定名称空间。

© www.soinside.com 2019 - 2024. All rights reserved.