2011-04-22 61 views
26

走這條線作爲一個例子:爲什麼XML名稱空間中的URL?

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
</configuration> 

一些簡短的研究告訴我,沒有什麼必然有那個URL託管。因此,如果它只是對包含在本地程序集中的命名空間的引用,爲什麼使用URL而不是像.NET通常使用的常規命名空間(例如System.Data)?

+2

可能是因爲它們很獨特。 – 2011-04-22 17:17:48

+1

我知道URL是唯一的。爲什麼我們需要獨特的XML標籤? – osa 2013-10-24 03:06:03

回答

8

這只是一個約定。 URI(它們是什麼,不是真正的URL)是一種方便且全球熟悉的資源識別方式。另一方面,對於.NET開發人員來說,.NET風格的標識符是熟悉的和可以識別的 - XML比.NET更多。

+1

希望它確實是全球獨一無二的。否則,沒有多少意義。 – 2011-04-22 17:28:56

+2

@羅伯特:我不同意。 XML名稱空間URI只需在它們使用的上下文中是唯一的*。理想的是,除此之外,是的,但僅限於公共架構。 – skaffman 2011-04-22 17:33:31

+0

我想我仍然不理解爲什麼使用URI。根據我的理解和根據維基百科和其他資源,URI被定義爲「用於標識Internet上名稱或資源的字符串」。如果正在引用本地程序集並且名稱空間URI不試圖標識Internet資源,爲什麼要使用URI?此外,HTTP代表「超文本傳輸​​協議」。用任何傳輸協議爲命名空間添加前綴是否有意義? – oscilatingcretin 2011-04-22 17:37:14

4

W3 explanation Here

就像在.NET命名空間,在XML文檔中的命名空間,旨在幫助預防和解決名稱衝突,特別是如果XML文檔是由不同的組織和/或知識領域。

XML文檔格式已經由負責HTML的相同人員編程,因此您可以在格式元素中找到語法上的相似性。在語義上,dotNET和XML命名空間實現相同的目標。

+0

我瞭解URI和XML文檔格式的概念。我的第一篇文章討論了爲什麼XML名稱空間看起來像URL。是的,我知道一個URL是一個URI,但是對於一個URL有一些明顯的認識。它有一個協議,一個域,一個後綴,文件夾引用,並且大多數時候是一個文檔。我已經清楚地知道,XML命名空間格式就是因爲原始的XML甘斯塔斯根據他們對當時事情如何運作的理解作出決定。如果XML是今天發明的,它的名字空間很可能看起來不像一個URL。 – oscilatingcretin 2011-04-23 01:07:04

+3

此外,這裏有幾個人說過,URL風格的命名空間給出了唯一性,但我不知道如何。對於任何URI格式都沒有唯一性保證,無論是XML還是.NET風格的命名空間(除非您正在討論URL)。在我看來,將「http」和「.com」投入命名空間並沒有任何邏輯支持。如果有人拒絕續展域名註冊並且其他人購買域名(微軟),該怎麼辦?他們的URL風格的URI現在有什麼好處?沒有一致性,伊莫。 – oscilatingcretin 2011-04-23 01:13:59

+1

@ scilatingcretin:GUID不保證是唯一的,但正確生成的GUID與另一個GUID相同的可能性是微乎其微的。使用URL可以確保唯一性。 – 2011-05-05 15:53:51

16

當你問爲什麼一個標準是這樣的時候,你的問題有兩種可能的解釋:(a)設計選擇的好處是什麼,(b)什麼是歷史序列導致這種設計被其他設計所採用的事件。

很明顯,使用類似HTTP的URI提供了唯一性。但是這也可以通過其他方式實現,例如通過發明一種新的URI方案。我認爲,如果您追溯當時所提出的論點,您會發現許多提倡使用HTTP風格的URI的人還提倡名稱空間URI應該是可忽略的,可能是模式或其他類型的的文件。事實上,W3C針對自己的命名空間的策略是,當你在命名空間URI中輸入瀏覽器時總會有一個可以被檢索到的文檔,並且它應該告訴你一些關於命名空間的有用信息。

所以我懷疑我們使用的URI看起來可以引用,但沒有定義任何引用時會發生什麼的語義,實際上是委員會在兩個或兩個以上對立的陣營之間妥協的結果。但是你必須做一些適當的歷史研究來證實這一點。

0

問題的核心是名稱空間必須是URI。這樣的事情沒有什麼好的理由,因爲它需要的只是一個唯一的標識符來爲定義的元素提供上下文。

由於它們必須是URI,所有可能性都是沒有意義的,因爲即使命名空間與這樣的事情無關,也需要一個方案(例如http)。

因此,要回答這個問題:爲什麼:像所有不好的想法一樣,有人認爲這是一個好主意。

相關問題