2009-09-03 42 views
8

是否有人知道HTML,XML文件中xmlns的確切用法是什麼?xml中xmlns的確切用法是什麼以及html

編輯:爲什麼我們需要這個命名空間?它的用法是什麼?

+0

另請參閱http://stackoverflow.com/questions/5875021/what-is-the-use-of-xsischemalocation/28098405#28098405 – rogerdpack 2015-01-22 20:52:28

回答

6

xmlns屬性聲明XML NamespaceNamespaces in XML標準深入討論了這個元素。

名稱空間主要用於避免混合XML語言時元素名稱之間的衝突。如果你有一個你有疑問的特定應用程序,也許你可以發佈一個例子。

1

命名空間允許您在重複時減少歧義。你可以有一個<title>標籤,指的是作者和<title>標籤,指的是一個稱呼,如先生,夫人等。爲了區分,你可以將它們分配到不同的名稱空間。

在驗證文檔是否符合特定標準/限制時,您也可以使用名稱空間,其中名稱空間將指示文檔屬於哪個「模式」。

2

XML名稱空間幫助將元素上下文化爲屬性等等。它還爲特定的元素或屬性提供了精確的標識。

例如,<html>元素可以由任何人定義並具有任何含義。但是,http://www.w3.org/1999/xhtml名稱空間中的<html>元素是唯一的,並且指向XHTML。

當在單個文件中使用多種XML語言時,命名空間在處理homographs時也證明很有用。

7

xmlns屬性具有特殊處理,允許聲明一個名稱空間。

文檔中的所有名稱(如標籤名稱)都屬於一個名稱空間。在缺少xmlns屬性的情況下,所有名稱都屬於「無名稱」名稱空間。因此: -

<root><item /></root> 

在上面的例子都rootitem是在「沒有名字」的命名空間名稱。鑑於: -

<root xmlns="urn:mydomain.com:mystuff"><item /></root> 

現在rootitem存在於 「甕:mydomain.com:的MyStuff」 命名空間。

xmlns可以通過使用別名前綴進一步定義附加的命名空間的元素,其中可以從他人區別開來: -

<root xmlns="urn:mydomain.com:mystuff" xmlns:a="urn:otherdomain.com:other"> 
    <item> 
     <a:supplement /> 
    </item> 
</root> 

在這種情況下rootitem繼續在「甕:mydomain.com :mystuff「命名空間,但a:supplement表示名稱supplement位於」urn:otherdomain.com:other「命名空間中。

這是什麼成績?

XML中的X表示可擴展。一個目標是允許附加信息分層到現有文檔上,即擴展文檔的能力。試想一下: -

甲方創建一個文檔: -

<root> 
    <item /> 
<root> 

乙方通過包括附加信息擴展了文件: -

<root> 
    <item /> 
    <supplement /> 
</root> 

後來甲方增加了新的信息,以原來的形式該文件正好碰巧也使用原來的名稱supplement。我們可能會得到如下結果: -

<root> 
    <item /> 
    <supplement /> 
    <supplement /> 
</root> 

哪個補充元素屬於哪一方?通過使用命名空間的文件應該是這樣的: -

<root xmlns="urn:mydomain.com:mystuff" xmlns:a="urn:otherdomain.com:other"> 
    <item /> 
    <supplement /> 
    <a:supplement /> 
</root> 

現在,當它涉及到分析和查詢XML的清楚哪些元素是屬於誰的。命名空間消除了本來是一組全局簡單名稱之間的衝突。

+0

爲什麼我們應該使用域名作爲ns?謝謝...... – Tarik 2009-09-03 08:44:35

+0

當使用urn表單時,最好使用你自己的域名,因爲其他人不太可能使用他們在urn定義中沒有的域名。在其他情況下,您可以使用URL。 – AnthonyWJones 2009-09-03 09:22:07

2

在HTML中,xmlns僅僅是使XHTML更容易移植到XHTML的護身符。它什麼都不做。

相關問題