何謂名稱空間 何謂URI 名稱空間的作用方式 使用名稱空間的注意事項

Slides:



Advertisements
Similar presentations
1 認識創業之財務 ( 資金 ) 及稅務問題 講師 : 蘇炳章 日期 : 92 年 8 月 12 日.
Advertisements

醫學美學之我見ー肉毒桿菌 班級:應日三乙 姓名:蔡雅卉 學號: 497E0076. 前言 現在的人,已經把 整型看做是微不足 道的事情了。即使 只是戴牙套、局部 雷射、割雙眼皮、 打美白針、肉毒桿 菌等等,都可以在 身體上做不同的改 變,而讓自己更滿 意自己的外表。
高齡自主學習團體終身學習試辦計畫經費核銷
职业教育.课程改革.项目课程 江苏省太仓中等专业学校校长 江苏省职业教育教学改革创新指导委员会委员 江苏省职业教育课程开发研究中心组组长
讲故事训练 授课人:田轶.
104年特約藥局 相關業務說明 臺北業務組醫療費用二科 104年5月.
第十一課 菜園 6-11.
台北縣98年三鶯區語文研習 --建國國小 修辭與標點符號 福和國中廖惠貞
有三件事我很確定: 第一、愛德華是吸血鬼 第二、出於天性,他渴望喝我的血 第三、我無可救藥地愛上他了……
校本选修课 第三专题 西藏问题 北京师大二附中 李文燕.
通訊科技教育改進計畫 「網路應用與服務組」 行動電子商務課程 XML之簡介.
MSN機器人的發展、應用與實作 資管三 B 葉小僑 資管三 B 李燕秋 資管三 B 洪培瑄
项目一 创建“夕照台”房产网站 ——网页制作基础
第8章 CSS基础知识 【学习目标】 对于一个网页设计者来说,对HTML语言一定不感到陌生,因为它是网页制作的基础,但是如果希望网页能够美观、大方,并且升级维护方便,那么仅仅知道HTML还是不够的,还需要了解CSS。了解CSS基础知识,可以为后面的学习打下基础。 本章主要内容包括: 为什么在网页中加入CSS。
你,是扼殺 孩子競爭力的幫兇嗎?.
XML 第05讲 使用CSS显示XML.
学习情境三:配置WEB服务器 服务器配置与管理.
正修科技大學教學發展中心 教師教學觀摩與經驗分享 電子工程系 張法憲副教授.
俄语字母的发音体系 阅读规则.
閱讀深耕天使獎 參加者﹕J 胡庭瑋.
让微笑伴您一生.
第8章 信息获取与发布 《大学计算机基础》 桂林电子科技大学 陈辉金 适用教材:周娅等. 大学计算机基础.桂林:广西师范大学出版社,2013
全球資訊網(WWW)簡介.
蘇軾詞的賞析
公務員廉政倫理規範.
柯奕宏(06) 王予亨(13) 郭秉逸(15) 楊雯凈(23) 顏佑瑩(32)
組 員: 王 新 惠 吳 映 暄 李 盈 慧 廖 香 涵 盧 姵 華 訪談日期:
第十五章 传播学调查研究方法.
自然與生活科技領域 認識太陽能 蘇紋琪、石明玉.
《XML技术及其应用》 第1章 XML 基础知识 主讲教师:桂浩 武汉大学.
HTML5全栈开发序列课程 《前端入门》之HTML入门 余鹏作品.
Ch1.認識全球資訊網 1.1 「網際網路」與「全球資訊網」 1.2 全球資訊網的基礎 – 網頁與超連結
 全能的天才畫家- 李奧納多‧達文西 (西元1452年-1519年) 指導老師:袁淑芬老師 製作人:饒佩芯.
第 2 章 必備的 HTML 與 CSS 重點.
第 3 章 XML文件的轉換 –XSLT與XPath
Schema 與DTD的比較 XML Schema 的特性 XML 資料型態 XML Schema 屬性宣告
Copyright © Dale Carnegie & Associates, Inc.
XML期末報告 XML and Instant Messaging: XMPP
W3C标准网页制作 主讲教师:张 涛.
認識我的故鄉_台中市.
課程名稱:_____________ 指導教授:_____________
Unit 10: Introduction to the Internet
W3C标准网页制作 主讲教师:张 涛.
W3C标准网页制作 主讲教师:张 涛.
W3C标准网页制作 主讲教师:张 涛.
<title> XML與XQuery ,新一代資料儲存標準 </title>
第13章 CSS 通过CSS可以使用更丰富、更灵活的样式,更简单地 设计出更美观的网页。同时,也让网页的设计与维护 更有效率。CSS在网页设计中的作用尤为重要,是网 页设计师必备的知识。本章首先介绍什么是CSS、CSS 的基本语法等基础知识,接着学习利用“CSS”面板 管理规则,如何在Dreamweaver中创建与应用CSS样式.
Ajax编程技术 第六章 调试与错误处理.
张孝祥IT课堂 -深入体验Java Web开发内幕
第 1 章 簡介XML.
第十二章 过滤器.
C# 基本語法、變數.
精忠报国  演唱:屠洪纲 作词:陈涛 作曲:张宏光  狼烟起 江山北望  龙起卷 马长嘶 剑气如霜  心似黄河水茫茫  二十年 纵横间 谁能相抗  恨欲狂 长刀所向  多少手足忠魂埋骨它乡  何惜百死报家国  忍叹惜 更无语 血泪满眶  马蹄南去 人北望  人北望 草青黄 尘飞扬  我愿守土复开疆  堂堂中国要让四方来贺.
W3C标准网页制作 主讲教师:张 涛.
XML備份MySQL資料庫 <html> <head>
關鍵字廣告工具、 搜尋引擎最佳化、 損益表實例
第 6 章 XLink、XBase與XPointer
樂樂請假了 尊重的故事 資料來源:臺北縣國民小學品德教育手冊 故事來源:臺北縣國民小學品德教育手冊 網路小故事
ASP动态网页设计实用教程 主讲教师:贾海陶.
單元4-2: XPATH 範例 王豐緒 銘傳大學資工系.
聽聽那冷雨---重點摘要 二愛 王煜榕.
僅首頁出現本title即可 責任的故事(二年級) 生命最美麗動人的本能 簡報製作:瑞柑國民小學 鄭雙慧 文/ 何秀芳.
憲政與民主 應化3A 邱泓明.
古蹟知性之旅 我和新港奉天宮有個約 報告人:陳 映 竹 傅 湘 甯.
台灣房價指數 台灣房屋 中央大學 2011年7月29日.
第1章 HTML基础 主讲人:刘泰然 经济管理学院.
第17章 PHP應用實例探討 17-1 PHP應用實例探討 17-2 圖片版的訪客計數 17-3 訪客留言簿 17-4 聊天室
教师:李金双 网页制作 教师:李金双
Presentation transcript:

何謂名稱空間 何謂URI 名稱空間的作用方式 使用名稱空間的注意事項 第六章 XML名稱空間 何謂名稱空間 何謂URI 名稱空間的作用方式 使用名稱空間的注意事項

XML名稱空間 XML名稱空間(Namespaces)在1999年1月14日成為W3C的推薦標準,它的主要功用在解決XML元素或屬性名稱的衝突問題。 名稱衝突主要是導因於在一個XML文件中,同時引用了屬於不同語彙(vocabularies)的元素或屬性名稱所致。

為什麼需要名稱空間 在不使用Namespace的XML文件中,元素和屬性中的名稱,其單一性僅及於文件自身,我們稱它們為區域名稱(loca names)。區 域名稱並不適合在網路環境使用,因為我們很難確保其名稱的單一性。

為什麼需要名稱空間(續) <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XML Spy v3.5 NT (http://www.xmlspy.com) by Redice (ccumis) --> <library> <book> <cover>href='112333'</cover> <title>XML與電子商務</title> <author> <last_name/> <first_name/> <descriptions> <head> <title>html上的title部分</title> </head> <body/> </descriptions> </author> </book> </library>

為什麼需要名稱空間(續) 依上圖為例說明 Description元素的內容是以XHTML格式來設計的。這時候程式處理這個文件,當處理到title元素時,判斷該title元素,究竟是指書名,還是指HTML文件的標題。 不同Application間的相同語彙,就造成了XML processor在處理文件上的混淆。

名稱空間如何解決問題 XML使用URI(Uniform Resource Identifier)的引來作為Namespace,只要將URI的參引加到元素或屬性名稱的前面,就能使名稱具有單一性。 我們稱包含Namespace的名稱為全域名稱(universal name)。 全域名稱能使應用程式很容易的區別來自不同XML Application的語彙。

名稱空間如何解決問題(續) <description> <{http://www.w3.org/TR/xhtml1}head> <{http://www.w3.org/TR/xhtml1}title>Book </ {http://www.w3.org/TR/xhtml1}title> </{http://www.w3.org/TR/xhtml1}head> </description> 屬於HTML 語法的title元素名稱轉換成全域名稱{http://www.w3.org/TR/xhtml1}title,其URI的部分是http://www.w3.org/TR/xhtml1,而區域名稱則是title。

名稱空間如何解決問題(續) XML使用URI的參引來作為名稱空間,只要將URI的參引加到元素或屬性名稱的前面 <library> <book> <cover>href='112333'</cover> <title>XML與電子商務</title> <author> <descriptions> < {http://www.w3.org/TR/xhtml1} head> title>html上的 title部分</ title> </ <body/> </descriptions> </author> </book> </library>

名稱空間如何解決問題(續) 以上所作的,只是概念上的說明。W3C的建議書並不採用這種作法,因為XML 1.0的parser,並不接受這種格式。 我們將使用這種語法來說明XML Namespaces建議書中原本所使用的語法。

名稱空間如何解決問題(續) XML Namespace建議書定義了一種將XML 1.0文件的樹狀結構。 由本屬於后域名稱的元素名稱及屬性名稱,對應到元素名稱及屬性名稱可視為全域名稱的另一種樹狀結構。 其對應所用的概念是採用前置字串。 元素名稱或屬性名稱中包含冒號(:),那對應機制會視冒號之前的字串為前置字串,而視冒號後的字串為區域名稱。

名稱空間如何解決問題(續) <html:hr xmlns:html="http://www.w3.org/TR/xhtml1"/> 可視為對應到: <{http://www.w3.org/TR/xhtml1}hr/> 而屬性名稱也與元素名稱使用同樣的規則 <div html:class="aaa" xmlns:html="http://.www.w3.org/TR/xhtml1">Hello World!</div> 對應到: <div {http://www.w3.org/TR/xhmtl1}class="aaa">Hello World!</div>

何謂URI URI的全名為Uniform Resource Identifiers,是一組由特定語法定義的字串,可用來識別某項資源。 在XML Namespaces之中所用的,卻是URI。而URI可說是URL的超集(superset)。 在URI的規範中,涵蓋了URL(Uniform Resource Locators)及URN(Uniform Resource Names)

為什麼名稱空間中以URI為參引 URI的設計原則具有延伸性 這一點正好跟URI(URN)的設計原則不謀而合。由於XML可以應用在許多領域中,而這些領域的資源定位方式,並不見得能使用現有的URL。 若使用URI,應用程式甚至可以自訂URN的語法來指明特有的資源,在應用上當然是相對的有彈性多了。

為什麼名稱空間中以URI為參引(續) URI概念層次與概念的層次 實務的層次是指URI一定要透過某些方式,指向一個存在的資源;就像Windows的登錄系統一樣,class id在登錄系統內,最後一定會透過系統內,最後一定會透過某些表示路徑的方式,來指到資源實體。 概念的層次是只管命名URI,而不用去管該URI究竟有沒有指向某項資源。

為什麼名稱空間中以URI為參引(續) 在Namespace中的URI不用指向真正的資源實體,URI只需讓應用程式可識別即可。 如果瀏覽器或XML processor並不認得Namespace所參引的URI,那麼應用程式有兩種選擇: 其一是不加以處理 其二是使用Namespace所指向的URI,來取得該其DTD或Schema的定義,再根據這些定義處理XML文件。

宣告及引用名稱空間

宣告及引用名稱空間(續) Xmlns:html=http://www.w3.org/TR/xhmtl1是屬於Namespace的宣告部分 而“html”並非Namespace name,它稱為前置字串(prefix),僅用於Namespace的引用部分,如下: Html:hr 引用Namespace也就是在原來的元素名稱之前,加上Namespace名稱及冒號(:);包含Namespace的元素名稱即為我們先前所的全域名稱,在XML Namespace規格書中稱為修飾名稱(qualified names)。

名稱空間的有效範圍 Namespace的參引僅能用於宣告該Namespace的元素及其子(孫)元素。 <library> <bk:book xmlns:bk=“http://www.w3.org”> <bk:title>…..</bk:title> </bk:book> <bk:description>…</bk:description> -錯誤用法 </library> 原因是description並非是title的子(孫)元素

名稱空間的有效範圍(續) 除非將前置字串以另一個Namespace的宣告重新定義,否則其所參引到的URI(即Namespace name)不會改變 雖然可以這樣做,但卻很容易造成文件處理上的困擾,應避免使用。 <foo:library xmlns:foo="http://www.foo.org"> <foo:book> <foo:description xmlns:foo="http://www.w3.org/TR/xhtml1"> </foo:book> </foo:library>

名稱空間的有效範圍(續) 在一個元素中可以同時宣告多個Namespace 在XML文件不太大的情況下,我們通常將Namespace宣告全部擺在根元素。 <bk:library xmlns:bk="urn:loc:gov:books" xmlns:isbn="urn:ISBN:0-396-36341-6" xmlns:html="http://www.w3.org/TR/xhml1"> <bk:book isbn:number="1568491379"> .... </bk:book> </bk:library>

預設的名稱空間 使用預設的名稱空間,可以不必以前置字串來指定名稱空間 定義預設的名稱空間 以空字串解除預設的名稱空間 <library xmlns=”http://www.w3.org”> </library> 以空字串解除預設的名稱空間 <A xmlns=“http://www.foo.org”> <C xmlns=“ ”> </A>

預設的名稱空間(續) 使用預設的名稱空間,可以不必以前置字串來指定名稱空間 由預設名稱空間與屬性名稱所形成的全域名稱 <A xmlns=“http://www.foo.org”> <B B1=“abcd”> --- <{http://www.foo.org}{B}B1> </A>

使用名稱空間的注意事項 同一元素的屬性名稱必須保持唯一 不管前名稱空間與區域名稱如何指定,最後一定不能造成同一元素中,任意兩屬性有相同的全域名稱。以下文件中的bad元素均不合法: <!--http://www.w3.org is bound to n1 and n2 --> <X xmlns:n1=“http://www.w3.org” xmlns:n2=“http://www.w3.org”> <bad a=“1” a=“2” /> <bad n1:a=“1” n2:a=“2” /> </X>

使用名稱空間的注意事項(續) 注意XML識別字 注意冒號的使用 在宣告Namespace時,前置字串不可以xml為字首來命名 任何元素或屬性的名稱,只能有一個冒號,或不包含冒號