URI格式與XML的關(guān)系
表示指定的 URI,要使用涵蓋全部必要信息的絕對(duì) URI、絕對(duì) URL 以及相對(duì) URL。相對(duì) URL,是指從瀏覽器中基本 URI 處指定的 URL,形如 /image/logo.gif。URI格式由URI協(xié)議名(例如http、ftp、mailto、file),一個(gè)冒號(hào),和協(xié)議對(duì)應(yīng)的內(nèi)容所構(gòu)成。特定的協(xié)議定義了協(xié)議內(nèi)容的語法和語義,而所有的協(xié)議都必須遵循一定的URI文法通用規(guī)則,亦即為某些專門目的保留部分特殊字符。URI文法同時(shí)也就各種原因?qū)f(xié)議內(nèi)容加以其他的限制,例如,保證各種分層協(xié)議之間的協(xié)同性。百分號(hào)編碼也為URI提供附加信息。URL的格式由下列三部分組成:,第一部分是協(xié)議(或稱為服務(wù)方式);第二部分是存有該資源的主機(jī)IP地址(有時(shí)也包括端口號(hào));第三部分是主機(jī)資源的具體地址。具體URI的格式如下:[協(xié)議名]://[用戶名]:[密碼]@[服務(wù)器地址]:[服務(wù)器端口號(hào)]/[路徑]?[查詢字符串]#[片段ID]。
登錄信息(用戶名:密碼)指定用戶名和密碼作為從服務(wù)器端獲取資源時(shí)必要的登錄信息(身份認(rèn)證)。此項(xiàng)是可選項(xiàng)。
服務(wù)器地址使用絕對(duì) URI 必須指定待訪問的服務(wù)器地址。地址可以是類似 hackr.jp 這種 DNS 可解析的名稱,或是 192.168.1.1 這類 IPv4 地址 名,還可以是 [0:0:0:0:0:0:0:1] 這樣用方括號(hào)括起來的 IPv6 地址名。
服務(wù)器端口號(hào)指定服務(wù)器連接的網(wǎng)絡(luò)端口號(hào)。此項(xiàng)也是可選項(xiàng),若用戶省略則自動(dòng)使用默認(rèn)端口號(hào)。
帶層次的文件路徑指定服務(wù)器上的文件路徑來定位特指的資源。這與 UNIX 系統(tǒng)的文件目錄結(jié)構(gòu)相似。
查詢字符串針對(duì)已指定的文件路徑內(nèi)的資源,可以使用查詢字符串傳入任意參數(shù)。此項(xiàng)可選。
片段標(biāo)識(shí)符使用片段標(biāo)識(shí)符通常可標(biāo)記出已獲取資源中的子資源(文檔內(nèi)的某個(gè)位置)。但在 RFC 中并沒有明確規(guī)定其使用方法。該項(xiàng)也為可選項(xiàng)。
XML擁有一個(gè)叫命名空間的,一個(gè)可包含元素集和屬性名稱的抽象域的概念。命名空間的名稱(一個(gè)必須遵守通用URI文法的字符串)用于標(biāo)識(shí)一個(gè)XML命名空間。但是,命名空間的名稱一般不被認(rèn)為是一個(gè)URI,因?yàn)閁RI規(guī)范定義了字符串的“URI性”是根據(jù)其目的而不是其詞法組成決定的。一個(gè)命名空間名稱同時(shí)也并不一定暗示任何URI協(xié)議的語義;例如,一個(gè)以”http:”開頭的命名空間名稱很可能與HTTP協(xié)議沒有任何關(guān)系。XML專家們就這一問題在XML開發(fā)電子郵件列表上進(jìn)行了深入的辯論;一部分人認(rèn)為命名空間名稱可以是URI,由于包含一個(gè)具體命名空間的名稱集可以被看作是一個(gè)被標(biāo)識(shí)的資源,也由于“XML中的命名空間”規(guī)范的一個(gè)版本指出過命名空間名稱“是”一個(gè)URI引用。但是,集體共識(shí)似乎指出一個(gè)命名空間名稱只是一個(gè)湊巧看起來像URI的字符串,僅此而已。早先,命名空間名稱是可以匹配任何非空URI引用的語法的,但后來的一個(gè)對(duì)于“XML命名空間建議”的訂正廢棄了相對(duì)URI引用的使用。一個(gè)獨(dú)立的、針對(duì)XML 1.1的命名空間的規(guī)范允許使用IRI引用作為命名空間名稱的基準(zhǔn),而不僅是URI引用。為了消除XML新人中產(chǎn)生的對(duì)于URI(尤其是HTTP URL)的使用的困惑,一個(gè)被稱為RDDL(資源目錄描述語言)的描述語言被建立了,雖然RDDL的規(guī)范并沒有正式地位,也并沒有獲得任何相關(guān)組織(例如W3C)的檢查和支持。一個(gè)RDDL文檔可以提供關(guān)于一個(gè)特定命名空間和使用它的XML文檔的,機(jī)器與人類都能讀懂的信息。XML文檔的作者鼓勵(lì)使用RDDL文檔,這樣一旦文檔中的命名空間名稱被索引,(系統(tǒng))就會(huì)取得一個(gè)RDDL文檔。這樣,許多開發(fā)者對(duì)于讓命名空間名稱指向網(wǎng)絡(luò)可達(dá)資源的需求就能得到滿足。