上一次,偶寫了一個對於
Cite元素的proposol(一個有趣的事情是該文沒有任何討論,但是被“踩”了3下,我其實很想知道踩我的人是基於什麽標準),在提議的末尾建議了一個標明所引用資源的URI的屬性。屬性名的選擇之一是“urn”。
今日偶爾上MSDN看reference,忽然看到叫做urn的屬性,點開一看,除了我已知的IE特有的namespace import中會有urn屬性,我們
爛熟於心的A標籤居然也有一個屬性叫urn,然而解釋卻語焉不詳:Sets or gets a URN for a target document. (這種註釋,寫了跟沒寫差不多……)
這個屬性有啥作用呢?似乎一點作用也無。google了半天,才終於找到線索。原來
HTML2.0的A元素有這個屬性!其用途是:
specifies a preferred, more persistent identifier for the head anchor of the hyperlink. The syntax and semantics of the URN attribute are not yet specified.
從這個設計意圖來看,此屬性顯然太過學究(甚至連語法和語義也沒有確定),殊無實踐價值,故在之後的HTML+和HTML3.0中都被去掉了。不意IE居然還殘留著這個上古遺物。我猜測這至少是從IE3傳承下來的,搞不好是從IE1甚至其前身Spyglass Mosaic那裡繼承來的——有心人自可考據一番。
不過反過來說,這個A上的urn屬性,其實反映了互聯網社群對於URI的早期看法(
MSDN對其的解釋也仍沿襲舊說),即URI分兩種,一種是URL,指示了資源的位置,一種是URN,指示了資源的命名(與尋址無關)。比如可以認為“http:”是URL scheme,而“isbn:”(應該【1】)是URN scheme。所以才會在一個A元素上,既有href屬性,也有urn屬性(所以HTML2對urn的解釋是“更永久化的標識”)。
【注1:實際現在的標準里並不存在“isbn:”scheme。】
但是後來,這個觀念轉變了。一種scheme沒有必要被硬性歸入URL或URN(抑或URC)。故“http:”是URI scheme,“urn:”也是URI scheme。後者定義了子空間,如“urn:isbn:n-nn-nnnnnn-n”中的isbn便是(“isbn”可稱為URN namespace ID,簡稱“URN NID”)。所以今天不再有URN schemes(注意這個s),而只有唯一一種“urn:”scheme,及其下的許多種URN NIDs。
NID可以自行創製(只要符合語法,並且不與已經通用的NID衝突),但若是要在公共領域廣泛使用,最好在IANA組織註冊,向世界宣佈這個NID已經為你所有了!
這裡是所有已經註冊的NID。
回過頭來講,既然URI本身是通用統一的標識機制,使用現有的URI scheme也無差(譬如最常用的“http:”),自行創製一種特別的URN NID,除了顯擺,似乎也意義不大。這大概也是真正註冊的NID並不多的原因。
如,標識我昨天吃的盒飯(假設記帳需要),用 http://hax.iteye.com/eating/2010-10-28/bentou 也可以了(記住這只是個標識,不需要在javaeye的服務器上真實存在這樣一個文件),沒有必要搞一個 urn:hax:eating:20101028:bentou (我知道這樣顯得比較cool)。
如果你沒有自己的域名(因而無法確保唯一分配 http://mydomain/xxx 作為一個資源的標誌符),一個可選的方案是採用
“tag”scheme,比如:
tag:hax@fudan.edu,1999:eating/2010-10-28/bentou
当年有人(据说是留学MIT的学生)在美國註冊了一些edu域名提供免費email服務,fudan.edu(注意沒有.cn)也是其中之一。后來這一批edu域名都被收回,今天你甚至在DNS上都查不到存在這個域名。但是我可以用“tag:hax@fudan.edu,1999”来构造tag URI,因為偶是1999年时hax@fudan.edu這個信箱的擁有者。
除了mailbox,也可以用domain。比起 http://hax.iteye.com/eating/2010-10-28/bentou ,更好的方式或許是:
tag:hax.iteye.com,2007:eating/2010-10-28/bentou
因為我不能確保若干年後我還是hax.iteye.com的使用者。可能我會離開javaeye,或者javaeye倒閉了(或者CSDN倒閉了?)……世事难料,就此打住。
本文參考:
http://www.w3.org/TR/uri-clarification/
分享到:
相关推荐
上古卷轴5 MO管理器
以下就上古OA 的一些特性加以说明: <br>个人工作桌面 上古OA的每个模块都有一个首页,在首页,我们呈现用户最关注的内容,并采用Web Portal技术,用户可自由拖放 定义页面布局,定制属于自己的信息模块。...
第一节音韵学简介《诗经》的用韵与上古音
上古世纪官网jquery焦点图代码,兼容 IE 789 及其它主流浏览器 ,因 IE 6 不支持CSS透明属性(opacity)故在IE 6下无图片淡入淡出效果
《上古卷轴5重制版》全剧情流程图文攻略.pdf
修改游戏上古卷轴5里面角色龙吼的音效,玩起来更具有代入感。
包含众多实用的财务工具包,如货币实时换算,股票查询和电子表格计算等工具,这些都能让你做一个合格的信息化的“守财奴”,嗯,也不错! <br>10.好又多实用工具包:文本简繁转换(有台湾省的文档和业务吗)、...
上古卷轴的mac适配版 mac系统也能玩到自己想玩的游戏 链接:https://pan.baidu.com/s/1eNk6NBpJOv-ZEWZDsjsqzw 提取码在page文件里(文件很大,如果没有会员或者科学下载方法的不要浪费积分啦,当然也可以先马下来)
上古卷轴5主程序
上古卷轴5:全控制台NPC代码
Sound Propagation Overhaul-33740-beta0-8.rar上古卷轴5声音传播补丁
上古卷轴进入画面背景更换,之前的不觉得看久了很无聊吗
这个1.2版本的汉化补丁好多地方都没有的下了,CSDN上面另外一个1.2汉化补丁下载的其实是1.1的,让人非常的失望,这里,特意发布真正1.2版本的。
一年级上古诗解析.doc
VCD播放器
包含所有上古卷轴需要的工具,满没结局阿斯达斯的我阿斯
腾讯上古世纪jQuery焦点图代码,适合网站首页大图展示,资源来自第三方网站。
上古卷轴5控制台全代码,所有的代码都有哦,不是4代是5代的,保证能用!
上古网络自动报工系统,防止报工没填被扣钱 上古网络自动报工系统,防止报工没填被扣钱 上古网络自动报工系统,防止报工没填被扣钱 上古网络自动报工系统,防止报工没填被扣钱 上古网络自动报工系统,防止报工没填被...
上古卷轴mod管理器,可添加任何mod,只要配置带的动。