2010年8月20日 星期五

URI、URL和URN

URI的全名是Uniform Resource Identifier,用來識別某項資源

URL就是網址,在網路上經過註冊,一個獨一無二的地址

URN則是Uniform Resource Name, 我這邊把URN當成某項資源的名稱,且該名稱也是獨一無二
例如ISBN 0486275574 (urn:isbn:0-486-27557-4),透過這個ISBN,我們可以在網路上找到這本書是莎士比亞的羅密歐與茱麗葉
書籍在出版的時候,都會有ISBN象徵自己的代號,這就是URN的例子
總歸來說,URL跟URN屬於URI的集合

前一篇我們提到名稱空間(namespace)
最後舉了一個範例



<?xml version="1.0" encoding="Big5"?>
<comic-list xmlns:ct="content"
                    xmlns:qa="quality">
   <entry>
      <author>井上雄彥</author>
      <title>灌籃高手</title>
      <ct:rating>普遍級</ct:rating>
      <qa:rating>5 stars</qa:rating>
   </entry>
   <entry>
       <author>井上雄彥</author>
      <title>浪人劍客</title>
      <ct:rating>限制級</ct:rating>
      <qa:rating>5 stars</qa:rating>
    </entry>
</comic-list>

我提到了xmlns:ct="content"
雙引號裡面的內容是名稱空間的名字
按照一般的用法習慣,該名稱應該要是一個URI
代表我這份文件所用的元素命名,在這個世界上不會跟其他人衝到
所以大家最常用的就是使用URL (URL也是URI的一種)
譬如說我將以上的範例改寫成

<?xml version="1.0" encoding="Big5"?>
<comic-list xmlns:ct="http://ericchiu-xml.blogspot.com/content"
                    xmlns:qa="http://ericchiu-xml.blogspot.com/quality">
   <entry>
      <author>井上雄彥</author>
      <title>灌籃高手</title>
      <ct:rating>普遍級</ct:rating>
      <qa:rating>5 stars</qa:rating>
   </entry>
   <entry>
      <author>井上雄彥</author>
      <title>浪人劍客</title>
      <ct:rating>限制級</ct:rating>
      <qa:rating>5 stars</qa:rating>
    </entry>
</comic-list>

當我把這份XML文件發布到網路上,別人覺得有用處,想要結合我的資料來做一個漫畫系統查詢
因為我用了URI當作名稱空間,就可以避免別人跟我取到相同的元素名稱(<ct:rating>以及 <qa:rating>)
電腦在識別文件上也不會產生問題了

1 則留言:

  1. The best Casino Site 2021 | LuckyClub
    and winnings instantly when you open the casino with our review of the a selection of different slots games from other casino providers, such as NetEnt and luckyclub

    回覆刪除