pohao522 的部落格

DTD上課筆記

DTD定義樣版
英文全名 Document type definition :定義xml文件結構

markup
<img src = "img.gif"></img>或
<img src = "img.gif"/>

element
定義結構

Attributes
Describe elements 表示element的屬性
eg: <car door = "4"/>

Processing instruction (PI)
將文件丟到另外一個應用程式處理

CDATA Sections
可有文字.保留字.空白
XML Parser會略過不看
開始<![CDATA[
結束]]>

XML namespace
  Naming collisions
      <subject>Math</subject>
      <subject>Thrombosis</subject>
  Namespace
      <school:subject>Math</school:subject>
      <medical:subject>Thrombosis</medical:subject>

XPath上課筆記

XPath

Node
-是一個Tree的結構
-在xml文件中每個node的摘要
  Root : 描述xml文件的根,永遠出現在樹的最上層
  Element : 前置標記,可描述xml元素
  Attribute : 描述元素的屬性
  Text : 描述元素的內容
  Comment : 描述xml的註解
  Processing instruction : 描述xml處裡指示,deitelprocessor 處理指示節點後的字串
  Namespace : 描述xml命名空間,會有URI連結

ATOM & RSS

Atom相對RSS 2.0的優勢
當初發展Atom的動機在於廣泛應用RSS 2.0時所遇到的問題。為了降低開發支持Web聚合應用的難度,下面列出Atom 1.0所克服的RSS 2.0幾個主要問題:

RSS 2.0 可能包含文本或經過編碼的HTML內容,同時卻沒有提供明確的區分辦法;相比之下,Atom 則提供了明確的標籤(也就是typed)。
RSS 2.0 的 description 標籤可以包含全文或摘要(儘管該標籤的英文含義為描述或摘要)。Atom 則分別提供了 summary 和 content標籤,用以區分摘要和內容,同時 Atom 允許在summary中添加非文本內容。
RSS 2.0 存在多種非標準形式的應用,而 Atom 具有統一的標準,這便於內容的聚合和發現。
Atom 有符合XML標準的命名空間,RSS 2.0 卻沒有。
Atom 通過XML內置的xml:base標籤來指示相對地址(URI),RSS 2.0 則無相應的機制區分相對地址和絕對地址。
Atom 通過XML內置的xml:lang,而 RSS 採用自己的language標籤。
Atom 強製為每個條目設定唯一的ID,這將便於內容的跟蹤和更新。
Atom 1.0 允許條目單獨成為文檔,RSS 2. 0則只支持完整的種子文檔,這可能產生不必要的複雜性和頻寬消耗。
Atom 按照RFC 3339標準(ISO 8601標準的一個子集)表示時間 ,而RSS 2.0中沒有指定統一的時間格式。
Atom 1.0 具有在 IANA 註冊了的 MIME 類型,而 RSS 2.0 所使用的 application/rss+xml 並未註冊。
Atom 1.0 標準包括一個 XML schema,RSS 2.0 卻沒有。
Atom 是IETF組織標準化程序下的一個開放的發展中標準,RSS 2.0 則不屬於任何標準化組織,而且它不是開放版權的。

資料來源: http://zh.wikipedia.org/w/index.php?title=ATOM&variant=zh-tw

RSS的特點

RSS的特點:

一、 即時性(Timely): 
      對於RSS的訂閱者而言,可以最快的得到最新訊息以及頭條新聞。而不用被動式的去每個網站上去搜索。

二、 具有成本效益(Cost-effective):
   在傳輸和發送的成本減少是很巨大的。如對於新聞郵件的發送提供者不需要花費太多的金費,對每個訂閱者來寄信散撥訊息。

三、 統一的標準:
   RSS有其一定的標準定義的<Tag>,有提供RSS的網站都依循此標準,不但可以方便解讀以及管理。

四、 RSS可整合在電子郵件:
   透過RSS等軟體可以將拿到的RSS訊息完美的轉換成你的電子郵件的格式。這也意味著訂閱者會依照自己的偏好來訂閱,並且也可避免電子郵件的垃圾信和病毒。

五、 隱私性和安全性:
   對於訂閱者而言,並不需要提供自己的電子信箱;而發行者並不能利用電子郵件重複不斷的寄廣告信或是垃圾信件。RSS代表著不能不正當地使用網路來作為廣播媒體傳送相同的訊息給大量未要求傳送訊息的使用者的人,對於訂閱者而言是另外一種的安全以及隱私。

資料來源: http://www.lib.nchu.edu.tw/lib_main/blogfamily/rsslist.htm

RSS 的歷史

RSS 的歷史

1997 年 - Dave Winer 開發出 scriptingNews。RSS 由此誕生。

1999 年 - Netscape 開發出 RSS 0.90 (由 scriptingNews 支持的)。這是帶有一個 RDF header 的簡單的 XML。

1999 年- Dave Winer 在 UserLand 公司開發出 scriptingNews 2.0b1 (包含了 Netscape 的 RSS 0.90 的特定)。

1999 年 - Netscape 開發出 RSS 0.91。在此版本中,他們刪除了那個 RDF header,但是包含了大多數來自 scriptingNews 2.0b1 的特性。

1999 年 - UserLand 擺脫了 scriptingNews,而僅僅使用 RSS 0.91。
Netscape 停止了 RSS 的研發

2000 年 - UserLand 發佈了正式的 0.91 規範

2000 年 - 一個由 Rael Dornfest 領導的團隊在 O'Reilly 開發出 RSS 1.0。此歌是使用了 RDF 和命名空間。此版本常被混淆為 0.91 的新版本,不過它是完全不依賴 RSS 0.91 的新格式。

2000 年 - Dave Winer 在 UserLand 公司開發出 RSS 0.92。

2002 年 - Dave Winer 在離開 Userland 之後開發出 RSS 2.0。

2003 年 - 正式的 RSS 2.0 規範發佈。

資料來源: http://www.w3school.com.cn/rss/rss_history.asp

RSS定義

RSS是一種用於網上新聞頻道、網誌(weblogs)和其他Web內容的數據交換規範,起源於網景通訊公司(Netscape)的推送技術(push technology),將訂戶訂閱的內容傳送給他們的通訊協同格式(Protocol)。

RSS可以是以下三個解釋的其中一個:
Really Simple Syndication(RSS 2.0)
RDF (Resource Description Framework) Site Summary(RSS 0.91, RSS 1.0)
Rich Site Summary (RSS 0.9 and 1.0)

但其實這三個解釋都是指同一種企業聯合組織(Syndication)的技術。

簡單來說,RSS 是一種格式規範,用來傳遞經常更新的網頁內容,例如Blog 或新聞資訊等。

來源: http://zh.wikipedia.org/wiki/RSS

[HomeWork]作業三schema XMLSpy工具

課本所提供的xmlspy3.0版本較舊

XMLSpy Enterprise Edition 30天試用版
http://www.altova.com/download/xmlspy/xml_editor_enterprise.html
 

找到新版本2008的連結..希望可以節省大家去找軟體的時間

至於軟體如何使用應該難不倒資工系的同學們吧...這就不再多敘述啦XD

 

有工具的輔助其實schema可以很快的建立起整個架構

不需要一個字一個字key in進去

tree的架構常常會把撰寫者搞得團團轉

xmlspy有點像是畫node的流程圖

需要element就點element就會跑出element的node出來

當然element node要設定type

可以很容易在Detail 視窗裡面做修改

再設定node與node之間的關係

都是動動滑鼠左鍵

一個簡單的W3C的文件就形成啦

不過還是需要先熟悉一下軟體裡面的功能是在做些什麼事情

[HomeWork]作業一心得

作業一是寫課本Exercise 5.5~5.6的習題

 

一開始沒發現是要手寫的

 

於是很高興的照著課本的要求key-in進去

 

不過問題就來了

 

要用什麼editor撰寫XML

 

好像沒有人提問到

 

最後想說記事本無敵

 

於是裝了Notepad++

 

裡面也有XML除錯的標示

 

挺方便的一個記事本撰寫程式軟體

 

很快的key-in完畢

 

打開Inetrnet Explorer執行所寫好的XML文件

 

沒想到第一個錯誤出現了(訊息如下)

 無法顯示 XML 網頁 無法使用樣式表檢視 XML 輸入。請更正錯誤,然後按 重新整理按鈕,或者稍後再試一次。


文字內容包含無效的字元。處理資源 'file:///C:/Documents and Settings/Pohao/桌面/XML/HW_5.5.xml' 發生錯誤。第 10 , 位置 18

Name : Pohao Chen

 

 

  

後來才發現我在<!-- 裡面打中文字  -->>

 

XML無法執行

 

課本所顯示的毛毛蟲文字(阿拉伯文)是用代碼 & #1583;

 

沒有真的自己動手做

 

還真的不知道會有這樣的問題

 

不過要怎麼直接打中文字在裡面

 

這問題還有待解決(學習)

[XML上課筆記]2008.3.7 Markup

[2008.3.7.XML]上課筆記

XML不是一種程式語言,而是一個文件的標準格式

<name>姓名</name> elementtagmakeup

 

XML documents 只能有一個root element,多於一個root element 則會錯誤

Eg: Incorrect <X><Y> hello </X></Y> (錯誤)

        Correct <X><Y> hello </Y></X> (正確)

 

XML parser 是處理XML的機器

        read XML document / check syntax

 

XML document syntax

1.      Considered well formed if syntactically correct

2.      Single root element

3.      Each element has start tag and end tag

4.      Tags properly nested

5.      Attribute (discussed later) values in quotes    xxx = xxx要加雙引號

6.      Proper capitalization (case sensitive) 大小寫有分

 

Character set

        Unicode characters (2 Byte)

                可以顯示多國語言,缺點用在英文上會浪費空間&傳輸時間

        Carriage return + Line feeds   <CR><LF>  => Enter

        Markup text : < and >

        Whitespace characters : spaces, tabs, carriage return, line feeds

                Significant (preserved by application) word

                Insignificant (not preserved by application) XML

                        Normalization 把它變成一個空格

                Eg: <markup> This is character              data </markup>

                   <markup> This is character data </markup>

 

XML reserved characters 保留字

        Ampersand (&) (&amp;)

        Left-angle bracket (<) (&lt;)

        Right-angle bracket (>) (&gt;)

        Apostrophe () (&apos;)

        Double quote () (&quot;)

 

Entity reference 開始用& 結束用; 可自行定義

        Eg: <message> &lt;&gt;&amp; </message>  執行結果  <>&

頁面