XML命名空间名称URI必须是可检索的吗?

我的WSDL上有以下标记:

<?xml版本='1.0'编码='UTF-8'?>
<定义名称=“targetNamespace=”http://xxxxx/ws"
xmlns=”http://schemas.xmlsoap.org/wsdl/"
xmlns:s0=”http://xxxxx/ws"
xmlns:s1=”http://schemas.xmlsoap.org/wsdl/soap/“>
<类型>
<xsd:schema attributeFormDefault=“合格”
elementFormDefault=“合格”
targetNamespace=”http://xxxxx/ws/comments" 
xmlns:http=”http://schemas.xmlsoap.org/wsdl/http/" 
xmlns:mime=”http://schemas.xmlsoap.org/wsdl/mime/" 
xmlns:s0=”http://xxxxx/ws" 
xmlns:s1=”http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:soap=”http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:soapenc=”http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:tns=”http://xxxxx/ws" 
xmlns:tnsc=”http://xxxxx/ws/comments" 
xmlns:xsd=”http://www.w3.org/2001/XMLSchema" 
xmlns:y=”http://new.webservice.namespace“>

这些类型随后被鉴定为s0、s1。。。名称空间

问题是名称空间端点(=)http://xxxxx/ws)是否需要是有效的url?
如果端点不再存在-这是否意味着我们需要再次为Web服务重新生成存根代理

注意:Web服务本身的端点与名称空间的端点不同,并且仍然存在

名称空间是不需要检索的URI

来自@jww的问题:

问题是名称空间端点(=)http://xxxxx/ws”)
需要是有效的url吗

不,XML名称空间采用URI的词法形式,但根据W3C建议:XML 1.0中的名称空间(第三版),不必可检索

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

如果URI不需要检索,为什么要使用它们

来自@jww在评论中的后续行动

如果http:不可检索,其目的是什么?他们不应该吗
使用类似于null:的东西来表示其私有属性?否则怎么办
像我这样的人知道什么时候是私人的,什么时候是不受欢迎的或不受欢迎的
撤回我想我要问的是,信号是什么
机制?

包括我在内的许多人确实建议将名称空间URI作为文档或作为管理XSD本身进行检索。但是,如上所示,这不是必需的。此外,当命名空间名称不是URI时,一致的验证XML处理器甚至不需要报告:

要符合此规范,处理器必须报告违规行为
命名空间格式良好,但它不是
检查命名空间名称是否为URI引用所必需的[RFC3986]

出于这个原因,您有时会看到在命名空间名称中使用非URI,特别是对于快速、一次性的示例。(不过,使用http://www.example.org/topic在这种情况下,这是适当的。)

之所以使用URI,是因为它们是一种方便的机制,用于通过内置的权限规范表示资源的唯一性——域的所有者负责使用域定义的命名空间

作为端点的名称空间

来自@jww在评论中的后续行动

如果端点不再存在,是否意味着我们需要
是否再次为Web服务重新生成存根代理

不,您甚至不应该将名称空间作为端点引用。命名空间名称URI的可检索性在任何时候都与Web服务的规范或操作无关

发表评论