【发布时间】:2010-09-15 21:50:31
【问题描述】:
tempuri.org 为什么存在?为什么每个 XML Webservice 都需要自己的命名空间,与网络上的任何其他服务都不同?
【问题讨论】:
tempuri.org 为什么存在?为什么每个 XML Webservice 都需要自己的命名空间,与网络上的任何其他服务都不同?
【问题讨论】:
不幸的是,tempuri.org URL 现在只是重定向到 Bing。
你可以通过archive.org看到它用来渲染的内容:
https://web.archive.org/web/20090304024056/http://tempuri.org/
引用:
每个 XML Web 服务都需要一个唯一的命名空间,以便客户端 应用程序将其与 Web 上的其他服务区分开来。经过 默认情况下,ASP.Net Web 服务为此使用 http://tempuri.org/ 目的。虽然这适用于正在开发的 XML Web 服务, 已发布的服务应使用唯一的永久命名空间。
您的 XML Web Service 应该由您指定的名称空间标识 控制。例如,您可以使用您公司的 Internet 域名 作为命名空间的一部分。尽管许多命名空间看起来像 URL, 他们不需要指向网络上的实际资源。
对于使用 ASP.NET 创建 [原文如此] 的 XML Web 服务,默认命名空间可以 使用 WebService 属性的 Namespace 属性进行更改。这 WebService 属性应用于包含 XML Web 的类 服务方法。下面是将命名空间设置为的代码示例 "http://microsoft.com/webservices/":
C#
[WebService(Namespace="http://microsoft.com/webservices/")] public class MyWebService { // implementation }Visual Basic.NET
<WebService(Namespace:="http://microsoft.com/webservices/")> Public Class MyWebService ' implementation End ClassVisual J#.NET
/**@attribute WebService(Namespace="http://microsoft.com/webservices/")*/ public class MyWebService { // implementation }
还值得阅读“A 1.3 生成 URI”部分:
【讨论】:
Web 服务需要唯一的命名空间,这样它们就不会混淆彼此的架构和其他任何东西。 URL(域、子域、子子域等)是一个聪明的标识符,因为它“保证”是唯一的,并且在大多数情况下你已经有了一个。
【讨论】:
<comp1:SubstanceName>Hand Soap</comp1:SubstanceName> 和 <comp2:SubstanceName>Palmolive</comp2:SubstanceName> 和 <comp3:SubstanceName>Soft Soap</comp3:SubstanceName> 没有冲突,并且清楚数据来自哪里
可能是为了保证公共网络服务是独一无二的。
它总是让我想起美味的油炸食品......
【讨论】:
http://en.wikipedia.org/wiki/Tempuri
tempuri.org 是 Microsoft 开发产品(如 Visual Studio)使用的默认命名空间 URI。
【讨论】:
请注意,有效 Web URL 格式的命名空间不一定需要取消引用,即您不需要在该 URL 上提供实际内容。重要的是命名空间是全局唯一的。
【讨论】: