我一直在研究SOAP和WSDL,以便为实现Web服务做准备.我遇到的一件令我困惑的事情是,我看过的一些URI使用了一个尾部斜杠,例如:
http://www.w3.org/some-namespace/
而我研究的其他例子省略了这个尾随斜线.我真的有几个问题:
尾随斜线有什么意义?
URI,http://www.w3.org/some-namespace与http://www.w3.org/some-namespace/相同吗?
如果它们不相同,我如何决定何时保证一种形式?
我已经阅读了w3c关于URI的指导原则,这些指示似乎表明只有在URI字符串的区分大小写比较被认为相等时才应认为该URI是相等的.这种解释是否正确?
Dimitre Nova.. 10
是的,关于你读过的URI的w3c指南是正确的.
两个没有equal-strings-uri的名称空间是不同的名称空间.即使资本化和空白也很重要.
命名空间-uri并不意味着发出请求它应该产生Web响应.因此,任何以"/"结尾应该或不应该以"/"结尾的理由都没有太大意义.
事实上,namespace-uri甚至可能不满足URI的语法规则,它仍然可以用于定义命名空间.使用命名空间非常有用,例如,让我们说:
"\/^%$#sdhfgds"
只要它是独一无二的(请注意,我不建议这样使用:)).现有的XML处理器(例如解析器,XPath或XSLT处理器)在遇到此类命名空间时不会引发任何错误.
是的,关于你读过的URI的w3c指南是正确的.
两个没有equal-strings-uri的名称空间是不同的名称空间.即使资本化和空白也很重要.
命名空间-uri并不意味着发出请求它应该产生Web响应.因此,任何以"/"结尾应该或不应该以"/"结尾的理由都没有太大意义.
事实上,namespace-uri甚至可能不满足URI的语法规则,它仍然可以用于定义命名空间.使用命名空间非常有用,例如,让我们说:
"\/^%$#sdhfgds"
只要它是独一无二的(请注意,我不建议这样使用:)).现有的XML处理器(例如解析器,XPath或XSLT处理器)在遇到此类命名空间时不会引发任何错误.
命名空间URI简称为唯一标识符(这里是比较规则的链接).使用URI(相对于"foo")可以追溯到(我相信)在XML DOCTYPE中使用URI.
也就是说,我认为这种URI的"可检索性"存在混淆.该XML规格要求的DOCTYPE系统标识符可以用来检索文档的DTD(我链接到带注释的XML规格,而不是W3C版本,因为我相信,蒂姆·布雷的评论是非常有用的).
虽然其他规范(例如,XML模式)不需要这种行为,但我认为这是一个有用的习惯 - 特别是在Schema目标命名空间的情况下.首先,它使您的架构的使用者能够轻松地找到正确的定义.另一方面,如果您有权将文档放在公共URL上,那么您还可以确保URI是唯一的.
最后:统一资源标识符(URI)是统一资源定位符(URL)的超集.您还可以拥有统一资源名称(URN),我相信(但没有规范方便)有第三种形式的标识符.