本文介绍了

问题描述

我的 WSDL 上有以下标签:

此后,这些类型被限定为 s0,s1... 命名空间中的 a be.

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

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

解决方案

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

问题是namespace end-point(="http://xxxxx/ws")必须是有效的网址?

不,不必可检索W3C 建议::

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

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

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

许多人,包括我自己,确实建议将命名空间 URI 作为文档或作为管理 XSD 本身进行检索.但是,如上所示,它不是必需的.此外,:

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

出于这个原因,您有时会在命名空间名称中看到使用非 URI,尤其是对于快速、一次性的示例.(但是,在这种情况下,最好使用 http://www.example.org/topic 以确保正确.)

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

命名空间作为端点

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

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

I have the following tags on my WSDL:

<?

The types are thereafter qualified to a be in the s0,s1... namespaces.

The question is whether the namespace end-point(="http://xxxxx/ws") needs to be a valid url?
If the endpoint no longer exists - does it mean that we need to re-generate the stub proxy for the Web Service again?

Note: The endpoint of the Web Service itself is different from that of the namespaces and does still exist.

Namespaces are URIs that need not be retrievable

No, an does not have to be retrievable according to

Why are URIs used if they need not be retrievable?

Many, including myself, do indeed recommend that the namespace URI be retrievable as a document or as the governing XSD itself. However, as shown above it is not required. Further,

For this reason, you'll sometimes see non-URI used in namespace names, especially for quick, throw-away examples. (However, it's probably better to use http://www.example.org/topic in such cases to be proper.)

URIs are used because they are a convenient mechanism for expressing uniqueness of a resource with a built-in authority specification -- the owner of the domain is the one responsible for namespaces defined using the domain.

Namespaces as endpoints

No, and you should not even refer to the namespace as an endpoint. The retrievability of the namespace name URI has no bearing at anytime on the specification or operation of your Web Service.

这篇关于