是否可以检索XML命名空间名称URI?

IUn*_*own 9 xsd wsdl web-services wsdl2java

我的WSDL上有以下标记:

<?xml version='1.0' encoding='UTF-8'?>
<definitions name="" targetNamespace="http://xxxxx/ws"
             xmlns="http://schemas.xmlsoap.org/wsdl/"
             xmlns:s0="http://xxxxx/ws"
             xmlns:s1="http://schemas.xmlsoap.org/wsdl/soap/">
  <types>
    <xsd:schema attributeFormDefault="qualified" 
                elementFormDefault="qualified"
                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">
Run Code Online (Sandbox Code Playgroud)

此后,类型被限定为s0,s1 ...名称空间中的类型.

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

注意:Web Service本身的端点与命名空间的端点不同,但仍然存在.

kjh*_*hes 12

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

来自@jww问题:

问题是命名空间端点(="http:// xxxxx/ws")是否需要是有效的URL?

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

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

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

来自@jww后续评论:

http:如果它不可检索的目的是什么?他们不应该使用类似null:的信号来表明它的私密吗?否则,像我这样的人怎么知道什么时候是私人的,什么时候被弃用或撤销?我想我要问的是,什么是信号机制?

许多人,包括我自己,确实建议命名空间URI可以作为文档或管理XSD本身检索.但是,如上所示,它不是必需的.此外,符合条件的验证XML处理器甚至无需报告命名空间名称何时不是URI:

为了符合本规范,处理器必须报告违反命名空间的良好性,不同之处在于它不 REQUIRED检查名字空间是URI引用[ RFC3986 ].

因此,您有时会在命名空间名称中看到非URI,特别是对于快速丢弃的示例.(Howeiver,http://www.example.org/topic在这种情况下使用它可能更好.)

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

命名空间作为端点

来自@jww后续评论:

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

不,您甚至不应将名称空间称为端点.命名空间名称URI的可检索性在Web服务的规范或操作中随时都没有影响.