2012年4月13日 星期五

XML技術之一 <文件解析>

XML(Extensible Markup Language)可擴展式標記語言,具有資料結構單純易懂,跨平台特性等,文件內容如節點(node)屬性(attribute),文字(text)以及支援的function和API等都是透過DOM(documents object model)所定義而成。


XML主要的精神在於讓端點之間互相透過一致的文件定義來傳遞分享資料,因為現實生活當中資料系統或資料庫的格式太多種各異的定義,因此在資料交換的同時必須也花很大的力氣來一致化兩方的資料格式,相對來說,XML所提供的是簡潔的標籤單純定義,只要可以了解兩方之間的資料定義,就可以清楚地傳遞資料,減少不必要的風險。

根據W3C給予的定義,在XML的資料當中一切資料都被稱作節點node,因此有屬性節點(attribute node),元素節點(element node),資料節點(text node)等,而元素和節點的差異點在於,元素必定有起始標籤和結束標籤來描述此元素,而節點則不一定需要有起始標籤或結束標籤。

在一份XML文件當中必定有一個根(Root)節點,也僅有一個,一個文件有兩個Roots是無法通過XML文件解析器(XML-parser),因此文件內容必須遵守W3C和DOM的定義才行,以下是一份實際的XML文件,在這份文件當中, ... 是為跟節點,在底下的各種...則為此跟節點下的子節點(child nodes),因此對於book節點來說,bookstore既是跟節點也是父節點(parent node),而一個父節點可以有多個子節點,而一個子節點必定之有一個父節點。

在一個節點當中也可以設定其子節點和屬性,例如book裡面均有category這個屬性,也有其他子節點如 裡面有title,author,year,price等子節點, <author>,<year>,<price>,只要清楚的了解XML定義,就可以自己設計一份XML文件,剛剛說如果在兩方資料建立好在準備交換的同時,如果有一方資料定義錯誤那該如何是好? 這時候就要透過設計XML綱要(XML schema)來驗證資料標籤。<title>,<author>,<year>,<price>等子節點,而這些定義可以透過設計XML綱要(XML schema)來指定。</p> <p class="separator" style="text-align: center; clear: both; "> <br></p> <p>  </p> <p class="separator" style="text-align: center; clear: both; "> <img style="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH15Dl0wWkasT0gx4c4RCDk7cQA_KAG6Rovs1j_ff7_sxCAJc7V8GB1faoryEd0NLBhAL6khwg5ctOfNbuwBoV_CsesSztFN-08lmCYBP6dhja8s9TZ604393_g3f-63Mu1JSehyphenhyphenFW4ac/s640/bookstore.png" border="0" width="640" height="544"></p> <p class="separator" style="text-align: center; clear: both; "> <br></p> <p class="separator" style="text-align: left;clear: both; "> <br></p> <p class="separator" style="text-align: left;clear: both; "> 參考文獻(Reference):<a href="http://www.w3schools.com/">W3CSchool.com </a></p>


參考文獻(Reference):

1. W3CSchool 

沒有留言:

張貼留言