2010-06-19 20 views

回答

4

http://tempuri.org/

每個XML Web服務都需要一個唯一 命名空間,以便客戶端應用程序 從Web上 其他服務區分開。默認情況下,ASP.Net Web Services爲此使用 http://tempuri.org/。 雖然這適用於XML Web 正在開發的服務,已發佈的 服務應該使用唯一的,永久名稱空間 。

您的XML Web Service應該由 標識,您的名稱空間由您控制。例如,您可以使用公司的Internet域名作爲命名空間的 的一部分。雖然許多 名稱空間看起來像URL,但它們不需要 Web上的實際資源。

說公司A和B都使用相同簽名的方法創建服務。爲了區分它們,你可以添加一個命名空間。這將使他們與客戶的角度不同,這意味着你不能從另一個角度使用wsdl(代理類),反之亦然。

爲您的服務使用唯一的名稱空間被認爲是很好的做法。通常您的公司名稱/域名或類似名稱,而不是默認的tempuri.org

+0

如果你只是把它保留爲http // tempuri.org會怎麼樣? – 001 2010-06-19 12:32:55

+0

什麼也沒有發生,但理論上它可能會與其他服務在別的地方發生衝突。如果你的客戶端訪問了兩個服務。 – 2010-06-19 12:52:00

+1

@Khou - 這取決於你如何部署你的服務。它就像Mikael回答說的那樣提供獨特性。如果你離開它很可能沒有。它不是任何有經驗的Web服務開發人員都會做的。 – 2010-06-19 12:53:06

0

我覺得這個System.Web.Services.Protocols

+0

這是.NET Soap包的命名空間。其他人認爲OP是指SOAP XML文檔中的命名空間。 – Sjoerd 2010-06-19 12:33:52

3

命名空間是一個XML概念。假設您有關於具有元素<title>的書籍的XML文檔以及關於具有元素<title>的人員的文檔。兩個<title>元素具有不同的概念含義,即使它們具有相同的名稱。如果你要合併文件,你不會看到兩者之間的區別。

這就是名稱空間出現的位置。元素的全名由名稱空間和元素名稱組成,但名稱空間通常縮寫或省略。

XML允許您使用爲命名空間定義較短的單詞。例如,您可以定義b=http://www.books.info/my_books,如果您是指該名稱空間的標題,則可以使用<b:title>