精華區beta b885060xx 關於我們 聯絡資訊
一、XML的源起 XML(Extensible Markup Language)是在1996年底由全球資訊網協會(World Wide Web Consortium),為建立全球資訊網路標準而提出,是符合W3C標準的一種語言 。為什麼提出XML,主要原因是為了能在全球資訊網路上傳送或處理文件,由 於SGML過於複雜,無法在Web上使用,目前只有HTML可以使用小量文件的處理量大 或較複雜的電子文件則無適合之語言可用,因此,XML是為了解決這類問題而發展 出來的。並且XML會解決一些Web上無法使用SGML的問題,所以XML較SGML容易使用 。因此XML的說明書僅有25頁,不過它的附錄卻不少。 而何謂XML?XML源自於SGML,由於SGML十分龐大,當網路盛行時,若要使用SGML 的標準來傳送文件,傳送時需將本文加上DTD,使得檔案十分龐大,傳送時間過長 。為了讓網路傳送的檔案較為精簡,於是乎發展出XML。XML與HTML的不同在於 ,HTML標籤的應用十分有限。而XML在標籤的運用上沒有限制,它在標籤的應用上 有完整的機制,可隨時增加新的標籤。雖然如此,新標籤在使用上,仍須使用雙 方事先說好新標籤的意義,或採用Namespace將特定之元素(element)事先以特定 的名字定義,每次看到這個名稱,就表示特定之意義,如此才能使新標籤有意義 。 此外XML可視為是SGML的子系統,它沿用了幾項SGML重要的特性,比如說過 去HTML在做標示時,若需加入起始及結尾標籤,使用者必須要自行輸入極為不便 ,因此HTML的做法是縮減輸入動作,也就是說可不必輸入結尾標籤,此種做法稱 為極小化(minimization),若應用在簡單的文章上不會造成困擾,但複雜的文章 則會混淆。如果XML也採用相同的方式來處理文章,那麼開發適用的parser將會十 分複雜,同時還需參考原本之DTD才能了解原文之意義。因為現在XML的工具很多 ,撰寫程式並不困難,因此在應用上就不並省略結尾標籤,所以XML就沿用SGML的 特性,不必極小化。此外,在XML中有一項特色是SGML所沒有的,就是當XML的標 籤十分清楚時,在傳輸時不必將文件與DTD一併傳送,parser也能很清楚的分辨文 件架構,如此網路傳輸將更快捷。 過去SGML在設計時是以英文為主,並未考慮到其他語言,尤其是亞洲各國的語文 則無法處理。為解決這個問題,最近在SGML中宣告文字部份加入以Unicode為主, 做為處理東方文字的標準。以XML來說,只要能將文件使用Unicode中的語言為日 文、中文或英文表現出來即可。 二、SGML、XML以及HTML的關係 SGML標準通用標示語言(Standard Generalized Markup Language, ISO8879)訂定 於一九八六年,是一個用來定義及檢查文件結構與文件內容的國際標準系統。這 個標準的主要精神是提供文件結構的規範。它具有嚴謹的文法﹑並且以標準語法 來描述有結構的﹑可以附帶圖形的複合文件(Compound Document);憑著它的實體 結構(Entity Structure),SGML容許文件中的資料被任意分割並儲存在不同的地 方;對於同一類型的文件,只要有一個“文件型別定義”(Document Type Definition, DTD) ,就可以讓SGML描述這些文件的結構。符合DTD的文件可以在 不同的文件處理系統之間交換而不致失真。 網路的傳輸是XML和SGML最大的差異。由於一個有效的SGML的文件實體必須要搭配 它的DTD以及樣式表(Style Sheet),因此SGML文件並無法在WWW上實際地傳送 。XML相較之下,則是容易在網路上傳送的,因為XML文件只需要伴隨著體裁紙就 可以使用了,並不需要保證有效(valid)。只要XML文件實體是well-formed的狀態 ,便可以讓瀏覽器讀取。在瀏覽器展示XML文件之前,會先下載(download) XML樣 式表。XML的DTDs和樣式表都可以提供使用者使用或修改。資訊的提供者會需 要XML的瀏覽器先對規格做parse的動作,在展現之前可以先處理成更高結構的文 件實例。 至於XML與HTML的差異處在於,XML文件的作者可以任意自訂tag及屬性名稱,且文 件結構不限制巢狀內嵌其他型態的資料,所有的XML文件都可以選擇性的包含其文 法描述資料,以方便XML應用程式可以檢查它的完整性。能很多人會好奇,一 旦XML大力推行之後,是不是會取代現在的HTML。其實這是不需要擔心的,因為大 多數的電子文件並沒有那麼複雜的結構,用HTML來表示已經足夠。推行XML,並不 是為了取代HTML,而是由於XML是SGML的Subset,可以讓那些已經在應用SGML文件 管理系統的使用者很容易轉換為XML,使其跟使用HTML時一樣,很方便地在網路上 交換他們的自訂資料,並且幫助複雜性較高,尚無法上網路的文件得以在網路上 傳輸。   三、XML的內涵與結構 (一)XML的原則 ◎XML應具備可在網路上直接使用的特性。 ◎XML要能支援除了瀏覽器之外的各種廣泛的應用,例如其他的編寫工具或是其他 如RTF、TeX格式等。 ◎XML要與SGML相容,使現存的SGML工具可以讀寫XML的資料。 ◎建構有用的XML應用程式是簡單且容易辦到的,它可以包含DTD,也可以不包 括DTD。 ◎XML的文件應該要清楚且具有可讀性。 ◎XML的設計要符合正規且是簡潔明白的。 (二)XML的特性 ◎XML是簡單的,它的完整規格不超過30頁,而且XML的設計是希望它的相關軟體 可以比HTML或完整的SGML都更容易撰寫。 ◎XML是一個開放性標準,XML是SGML的子集合,所以它可以符合SGML的性質。 ◎XML是基於經驗而產生的,因為設計XML的人們都已經對SGML以及HTML有相當程 度的了解。 ◎XML具有彈性,使用者可以創造屬於自己的標記,並且可以提供別人採用。 ◎XML是有效率的,對於同一份內容,使用者只需要傳輸一次便可以使用多次,因 為它是基於可重覆使用的觀念而建立的。 ◎XML是立即可用的,現存的瀏覽器都可以如同讀取HTML文件一樣地讀取XML文件 ,對於圖型、鏈結以及各種多媒體,都可以和原來的HTML一樣。 ◎XML是國際性的,它已經內建了對全世界的文字支持,包括傳達使用者正使用何 種語言及編碼方式。 ◎XML是可控制管理的,因為XML包括了類似資料庫的技巧來宣告強化文件結構, 可以確認所建立的XML文件是不是正確。 (三)XML的文件結構與格式 一份XML文件必須符合valid或是well-formed這兩個條件其中之一。Well-formed 是一個比較簡單的格式,只要確定文件中所有的標示都有開始與結尾即可。如果 要使用一個空的元素,則要確定在空的元素放一個 “/”符號,來讓parser驗證。另一種格式是Valid,這種格式的XML除了符 合well-formed之外,還必須包含DTD。當我們要處理XML文件時,需要有一個XML 處理器(Processor),它除了要能閱讀XML文件之外,還要能夠把資料傳給應用程 式,有關如何讀取以及應傳遞哪些要件的各項資料已經涵蓋在XML規格當中。 就結構而言,XML文件包含邏輯以及實質的結構。就實質結構而言,XML文件是以 實體(entity)組合而成的,它以一個根結點做為啟始,指向其他的結點實 體(entity)。而邏輯結構則包含宣告(declaration)、元素(element)、標 籤(tag)、註解(comment)、字元參考(character references)、以及執行指 令(processing instructions)。這些都會在文件裡以嚴格的標記標示出來。邏輯 結構和實質結構是同步發生的,標籤和元素必須都在相同的實體裡面開始並結束 ,不過它們都可以在內部參照到其他實體。註解、執行指令、字元參考以及實體 參考都必須包含在一個單一的實體之中。 在XML中,把每份文件以及每個元素都視為物件,文件的邏輯結構可以利用DTD來 將之正規化,所以程式便能確認這些結構。不過,XML文件不見得需要DTD。你可 以指定使用某個特定的標籤集而不用DTD。使用DTD將可以使我們定義標籤集的文 法,讓應用程式可以辨別正確的標籤集的使用並使其有效(Validate)。在DTD中, 你可以定義元素的集合以及屬性,並可以指定要使用的標籤名字,以及文件中的 各個元素與其他元素的關係。你也可以限制有一些元素一定要在某些元素的巢狀 結構。 就資料的角度來看,XML文件是由實體組成,文件中包括了text以及binary型態 。Text是以字元組成,並且分為標記(Markup)和字元資料(Character data) 。文 件中的binary實體則應該有它的表示方法 (notation)。 就字元(Character)來說,必須考量它是否是以Unicode,ISO10646來定義。此外 ,XML還預先定義了明確的類別,如空白(White-spaces)、字母(Letter)、數 字(Digit),以及事先定義的樣本,如Name、Nametoken、Nmtokens、Literal 、QuotedCData,這些樣本在沒有聲明的狀況下,並不區分大小寫。 Link,是XML的一大特色。所謂的Link是指在兩個或多個資料物件之間加入關聯性 。SGML只允許在邏輯文件中做單一方向的鏈結(Conventional hyperlinking) ,HTML則打破傳統且允許在文件之外的鏈結,至於XML則可以使用多種在SGML 與HTML中沒有使用到的鏈結。 我們常見的純文字檔 (Plain Text File) 是一個一維的文件,裡面不包含任何與 自己的內容有關的訊息。HTML檔案是二維的文件,包括描述該文件元素的基本標 示,HTML使得一些應用程式可以讀取這些文件。而XML文件則是多維文件,具有雙 向與位置獨立鏈結能力以及傳送納入(transclusion) 功能 (也就是鏈結的文件可 以目前頁面的元件之一的形式呈現) ,以讓許多不同的程式執行、可以經由各種 不同的技巧在網路上傳送,並以不同的面貌呈現。此外,XML可以簡化智慧型代理 程式的設計,目前一般的代理程式軟體都必須經過層層的鏈結,才可以辨識出不 斷變更的Web頁面上的正確資料點,而當我們利用XML,相關的資料點可以用本身 的標籤來標示,使正確的資料點可以容易被找出來。 (四)XML的標示 XML的標示 (Markup) 方法當中,所有的標籤只能以 ">" 或是 "&" 作為開頭,因此,在文件的內文裡若遇到 ">" 或 "&" 符 號時,則必須改用 "&lt;" 或 "&amp;" 來替代。另外,"&gt;" 、 "&apos;" 、 "&quot;" 也都是XML已經事先定義過的。XML的標示可分為以下 幾類: ※標籤(Tag) XML的標籤,在開始標記之後,一定要有一個結束標記。若是要做用一個空的元素 ,就要在空的元素放一個 "/" 符號,來讓parser驗證。 例如: <item num= ‘1’> <img src= ‘1.jpg’/> </item>  ※文件型別宣告(Document Type Decla- ration) XML文件應該在開始的地方下一個XML的宣告,用來描述XML的版本。這個文件型別 宣告必須出現在文件中第一個開始標記之前。舉例來說,一份符合Well-formed但 不是valid的XML文件的外觀應該是: <?XML version="1.0" ?> <greeting>Hello, world!</greeting> 或者是: <greeting>Hello, world!</greeting>  XML文件型別宣告可能包含一個指到包含了必要的標示宣告子集的外部實體的指標 ,也可能直接include其他的內部的子集合。 ※Comments 一定以 <!-- 做為開始,以 --> 做為結束,而且中間不能包括--。 例如: <!-- IGNORED MARKUP --> ※執行指令(Processing Instructions) 一定以 "<? 名稱" 做為開始,以 ?> 做為結束,但不能以 "<?XML" 做為開始,因為 這是系統保留字。此外,執行指令不包含在字元資料當中,並且XML處理器必須將 其傳遞給應用程式。 例如: <?AUDIO ‘FADE VIOLIN1’?>  ※字元資料段落CDATA Section 一定以"<![CDATA]" 做為開始,以 "]]>" 做為結束,若在開始標記與結束標記之間 仍有標記,並不會被XML承認,也就是這中間的標記會被忽略掉。此外,字元資料 段落並不需要有巢狀結構,並且可以用來放置程式碼、範例等等不希望被XML處理 的資料。  ※字元資料(Character Data) 只要不是XML的標示符號,都稱為字元資料,也就是XML文件的本體。  ※空白字元控制(White-space Handling) XML處理器必須傳遞所有不是標示符號的任何位元組(bytes)給應用程式,當處理 器知道某些資料不具意義時,必須通知應用程式。若是作者想要控制文字的空白 ,則可以利用XML-space這個屬性來處理。 (五)XML文件的邏輯結構(Logical Structures) ※標籤與屬性語法 元素型別和屬性名稱是區分大小寫的,空白元素必須以/>做結尾,屬性值必須以 單引號或雙引號括起來。 ※元素 每一個XML中的元素的開始都必須以開始標記(start-tag)標示。 ※元素宣告 XML文件中的元素結構,為了確認上的考量,在使用元素以及屬性宣告時必須受到 限制。一個元素的宣告限制了元素的型別以及它的內容。 ※空元素(Empty)和任意(Any)內容模組 空(Empty)元素:表示沒有內容的標示,這種情況必須在開始元素的結尾加上一個 "/>"。 任意(Any)元素:表示對內容完全不設限。 (六)XML文件的實質結構(Physical Structures) ※同步結構 實質結構組成實體(Entity),而邏輯結構組成標籤定義的元素,同一個實體當中 的元素都必須有開始與結束,而且所有的標籤、註解、執行指令、字元與實體參 考都必須存在單一的實體當中。 ※實體與參考點(Entities and Refer-ences) 實體以及參考點都必須在DTD裡先宣告,它們的用途是用來管理複雜文件的儲存, 並對複雜的字元做編碼的動作,除此之外還可以用來控制文字區塊的重覆使用。 ※完整型態(Well-Formedness) ‧被參考到的實體一定要經過宣 ‧位元實體不能參考"&" ‧實體不能參考它們自己本身 ‧參數實體只在DTD裡頭被參考 ※文件實體 是一份文件的起始點,且指整份文件,也不能有名字。 ※標記宣告 在標記名稱之後的字串可以是一個系統定義字(URL)。 例如: <!NOTATION GIF ‘CompuServe/ Unisys Graphics Format’> (七)XML文件的環境 ※一致性 - 所有XML處理器應該都能檢查出違反Well-Formedness的地方 - 確認處理器必須要能檢查出違反確認的地方 - 資料應該依照規格裡的定義來傳遞給應用程式 (八)超鏈結(Hyperlinking) ※預先通知與警告(Caveats and Warnings) XML的超鏈結(Hyperlinking)是一個可移動的目標,Microsoft公司的Internet Explorer小組希望能有更強大的功能。 ※延伸的鏈結(An Extended Link) 一個延伸的鏈結可以造成任何數目的資源,而且這些資源之間不需要互相有鏈結 的存在。 ※鏈結行為之準則(Link Behavior Axes),分為: 展示(Show):包括內嵌(Embed)、取代(Replace)、更新(New)、行動(Actuate): 可由使用者決定動作也可以由系統自動進行動作。 ※定址器(Locator) 以往的HTML中,定址必須包含一個URL(Uniform Resource Locator),然後可以包 含 "#" 或是 "?" 表示某一個段落或查詢。處理模組會以這些分開的字元來執行運 作,而"#"段落的執行是依據資源的型態而定。 四、XML的實際用途 XML是一個新興的超媒體,我們遇到的各種問題,例如:超本文(Hypertext)、資 料庫、型態交換以及跨媒體的出版,都可以利用XML來解決,同時,透過XML可以 幫助我們把資料存在有彈性的資料型態當中。XML更可利用Java來對資訊作處理, 並展現實作。相信當XML被工業界採用之後,Java將會被使用的更為廣泛。例如: 1.將主機的負荷分散到Client端 經由XML,資料提供者可以傳送大量參數化的資料給後端client程式(例如 在Browser上面執行的JAVA程式)來運用。例如半導體工業界(Pinnacles Group 由 Intel, National Semiconductor, Philips, Texas Instruments, and Hitachi 等公司組成) 就使用SGML定義了一個標準文件交換格式,讓IC工程師從網路上拿 到的資料不只是可以看的IC規格書,還可以立即拿去做SPICE模擬等等用途。如此 便不必在每套工作站的SPICE當中放一大堆的電路資料。 2.可將同一種資訊以不同外觀呈現在不同的使用者面前 以前要呈現同一種資料的不同外觀(例如Windows檔案總管或是物件導向程式發展 需要的物件關係表,在展開或收縮子目錄/物件時)必須要讓Web伺服器重新處理 一次,相當耗時費力。目前的解決方法是把一些資料用非正式的tag標記起來,並 且用註解方式藏在HTML裡面,再用JAVA Applet來瀏覽。透過XML的自訂標籤能力 ,將可以簡化這種需求的處理步驟。 3.應用於異質資料庫的整合 由於工商界之間採用的資料庫未必相同,若欲溝通,則要事先協調,以共通的語 言來交換資料。SGML的產生,使得業界都受惠良多。如今,W3C推出XML,把SGML 帶到Web上面來,將可使得這些系統也能經由Internet來傳送以達到更高的效率。 4.目前有RDF(Resource Description Framework)是由全球資訊網協會所發展的, 目前正在開發中,尚未正式上市。RDF的主要功用類似一種圖書館,它可描述文件 的資訊如作者、主題等等,但也可透過RDF進行資料查詢,如果採用此種方式,將 對search engine造成很大的影響,因為檢索時可採由標籤先找到所要的段落,然 後再尋找內文,使得檢索更具智慧,因此RDF將成為WWW上極為重要的標準。另 外RDF的產品預計將於六個月後上市。 5.SMIL(Synchronized Multimedia Integration Language)在多媒體的處理上 與HyTime類似,但由於XML連結(linking)功能很強,且較簡單,故其可發展SMIL 較易使用的語言,且SMIL的效益與HyTime所差不多,但成本卻僅有HyTime的5%, 且其產品較HyTime為多。因此,SMIL未來將會取代HyTime的地位 。BSML(Bioinformatic Sequence Markup Language)是為生物及醫學上,為傳輸 基因、DNA等資料所使用的。MML(Mathematical Markup Language)主要應用是在 網際網路上傳送數學或科學資料的標準,過去在網際網路上要交換數學或科學資 料十分不便,現在架構在XML上以可處理這些資料。 6.OTP(Open Trading Protocol)主要是Internet上為電子商務上傳送交易資料所 使用,主要為信用卡公司,傳送網路上大量的信用交易所用。過去尚未使用OTP時 ,商業交易多採用EDI的方式,事先定義傳送資料的欄位。此種做法較不具彈性, 定義完成之欄位將無法修改。而SGML因其定義文件的方式分為兩階段,即文件本 身與DTD兩部份,當DTD隨著文件傳送時,文件結構則較具彈性。而XML是特別為網 路上傳送資料更快速所設計的,它的free style的方式,可將交易資料傳送出去 ,而接收者在收到資料後,還可將資料抓下,另外進行處理。目前HTML在資料處 理上,無法達到XML所能提供的境界。因此,幾乎所有的OTP設計者都以XML為基礎 ,為網際網路上應用電子商務做準備。 五、XML的未來發展 從XML的發展來看,Namespace的應用可讓元素名稱用特別的名稱定義,並且將其 與標籤結合,許多的應用系統會需要使用它。schemas一般認為是DTD的基本結 構(syntax),由於許多人並不喜歡SGML的結構,因此XML將會發展新的DTD結構, 以符合需求。目前已有Microsoft與其他廠商所提出的建議稱為XML-data。新的結 構上較特別的地方有二,其一是使用與文件相同的以標籤為基礎的結構,如 此DTD看來將與文件十分相似。其二,它將含有物件導向的特性。此外,由於XML 有時會傳送資料,因此有人希望在XML未來的發展中能有更簡單的子系統,可處理 不需DTD的資料傳送或不需DTD的完整型態(wellformed)的文件。 六、XML的家族 與SGML十分相似,XML的家族中也有兩種不同的語言,其一為XLL (Extensible Linking Language)類似於HyTime,其二為XSL(Extensible Stylesheet Language)類似於DSSSL。XLL可分為兩部份xptr及xlink,xptr運用是在連結文件 時指出連結的相關位置所使用,它不同於HTML必須使用標籤來定義位置,而是 在URL#後加上相關資料,以便連結。事實上,xptr是架構在TEI之上所延伸的指 標(pointer)。xlink是運用在XML文件中進行超連結(hyperlink)的一種機制,這 項功能與HTML中hyperlink的功用一樣,可使用在觀看XML文件的瀏覽器上,其功 能較HTML中的A元素更為有效。 XSL是由Micorsoft、Inso、Arbortext及其他專家所提出,全球資訊網協會所建立 的Stylesheet語言,是用來展現XML文件的一種語言,以DSSSL及HTML上所使用的 體裁紙語言CSS為基礎來發展的,由於主要廠商如Microsoft、Adobre 、Arbortext、IBM、Lotus及SUN等均有參與這個語言的開發,不過由於它必須融 合DSSSL與CSS的功能,因此其未來的發展仍有極長的路要走。 綜合來說,現在XML的發展遠超出當初的想像﹐XML的發展主要是希望將資料與文 件能整合在一起傳送。XML是現階段在Web上傳送資料的標準,目前因為沒有體裁 語言的關係﹐在文件的顯現上無法應用XML﹐所以現在要傳送文件其做法必須是將 文件以XML形式建立﹐再將其轉換成HTML的方式呈現。由於XML是SGML的子系統﹐ 在建立文件架構較為容易﹐而HTML為SGML的應用﹐複雜的文件結構不易處理﹐因 此採用XML來建立文件在需修正或增加內容時較易處理﹐而未來待XSL發展完成﹐ 其呈現方式將可以隨時修正。 七、XML的工具 目前可支援XML的工具不多﹐但多數也都可支援SGML的應用。舉例來說﹐SP(SGML Parser)是運用在工業標準上的Parser,系統十分龐大,但最近以修正可支援XML 的應用。目前最快的XML parser是XMLTok它是以C語言撰寫的﹐系統較SP小十倍﹐ 也快十倍﹐同時這個系統是與Netscape合作發展的,未來可與Netscape 5整合使 用。XP是使用Java語言所撰寫的XML parser,是目前Java中最快的parser,支 援SAX(Java與API之間的標準)﹐但它不檢查文件與DTD之間的矛盾。其他XML parser還包括:Microsoft發展的MSXML、Lark、Alfred是目前Java中最小 的parser,僅佔20-30k的空間,可隨著資料的下載一併載入。還有IBM發展的XML for Java。 Jade(James ’ DSSSL Language)主要應用在轉換SGML、HTML及XML﹐如果要使用Jade,必須要 有體裁紙,目前DocBook已有符合Jade轉換的體裁紙,可應用在技術文件的處理 。Microsoft在支援XML及XSL的已有一些發展﹐如IE4包括2項XML parser,許 多Microsoft的產品已使用XML的資料格式。Netscape在XML的應用上較Microsoft 為晚,不過Netscape 5也已將支援XML的功能納入。 八、結論 許多人會問未來在Web上使用XML或SGML或HTML何者較佳?其實這是一個錯誤的問 題﹐因為XML就是SGM,如果使用XML就是使用SGML,因此該考慮的是使用XML的檔 案或是其他的檔案。初期設計XML時的想法是提供Web上可用的SGML標準﹐然而事 情的發展並不像預期般﹐現在XML可提供90%以上的SGML公用系統(utility),卻只 需花費10%的成本。此外XML也獲得較大的商業支援﹐如果你目前尚未使用SGML﹐ 那麼可直接採用XML﹐如果以使用SGML也不必做轉換﹐因為他們的概念是相同的﹐ 不過如果考慮到未來商業應用的方便性﹐將SGML慢慢的轉換為XML﹐也不失為一可 行的方法。 其實SGML的未來就是XML﹐XML成為在Web上資料格式(data format)已是不爭的事 實。至於XML是否會成為Web上傳送文件格式的標準格式,則端視XLL及XSL的發展 而定。基於XML是未來的應用趨勢﹐建議各位在網際網路上使用XML來建立文件集 資料﹐同時使用Jade或MSXSL等工具作為XML與HTML之間的轉換。不過在技術面來 說建立XML的檔案需要可用的工具﹐目前的做法是採用人工的方式來撰寫﹐或者使 用SGML所提供的工具﹐不過費用所費不貲﹐可等待XML工具上市再進行建立。 九、附錄 ◎XML在三層架構應用之探討 Application: / Result set \ Middle Tier: Data Filter --- Meta Data / | | \ Stoarge / | | \ Data Sources: Mainframe RDBMS NativeXML Internet Content 藉此機會將XML應用在三層架構的發展瞭解更清楚,以利未來各業界在導入XML時 ,能夠提供一套完整的架構。(參見圖一) 以往使用者在處理資料存取時,必須依不同的資料庫建立不同的機制,因此一旦 資料庫需要重新更改或架構上的功能要調整時,所需改變的程式就等於重新設計 。為了改善這種非常不方便的因擾,在使用者介面與資料庫之間建立了另一層介 面模式,即中介層(Middleware)。它提供了一個通用的執行模式,將使用者與資 料庫之間的溝通可以透過一些完整的模組,使作業系統不再因為平台的不同而得 再重新調整。 XML的資料是以物件型式,將每一個資料當作一個個單一的元素,每一份XML的文 件由最基礎的主元素與子元素結合成完整的結構化文件,而元素物件可以分別存 放在資料庫的不同架構中;當新的網頁編輯時,只需將XML的技術導入三層化或多 層化的架構;以往必需由JavaScript或CGI完成對Server端的控制,將以XML的物 件儲存方式來控制程式的管理;未來資料與資料庫之間的連結是以關聯式的資料 庫(Relational Databasee)的階層(Hierarchical)方式來管理,並配合XML的原始 資料物件(Data Source Object)小型程式(applet)來結合資料本身。 因此發展一個以XML網路應用為發展基礎的三層架構,不但可以將以往雜亂的程式 群組,以符合結構化的XML語法代替,又可整合前端的介面及後端的資料庫,使全 部的系統架構完整而具調整的彈性。 ◎XML在EDI的應用 傳統EDI為達到資料交換的目的,依資料性質的不同自資料庫中製作出相關的EDI 訊息,並將資料的屬性清楚的列示,提供業者在資料交換時能正確地對應不同的 訊息。由於XML與EDI的特性不謀而和,所以新的EDI是整合XML的語法及在網路應 用的技術,而所謂的XML/EDI策略則是以結合了EDI標準的data manipulation agents(DataBots)來完成。(參見圖二) XML Web Foundation \ Templetes Agents Fusion --- Processing Implementation / Logic Methods EDI Business Repository Methods Global Reference Dictionary DataBots可提供使用者以高階語言的方式完成介面的編輯,進而自動產生處理資 料交易規則與相關的XML文件語法。因此,XML/EDI可視為下列五種技術之整合: ‧符合XML格式之以Web based的資料交換 ‧傳統之EDI業務模式與訊息結構 ‧基於專業知識的作業控制邏輯 ‧執行特殊功能的資料處理代理程式 ‧為維護業務關係、資料關係的全球資料庫 故XML/EDI系統之建置與應用,和傳統EDI是很類似的,只是不必再經由加值網 路VAN,而可以採用資訊代理來自動處理XML文件,及所產生的EDI資料交換訊息; 如此一來,不但解決以往傳輸資料的複雜處理程序、高成本及受限的資料交換的 "標準"等缺點,更將EDI在網路上的應用向資料即時更新及資料獨立的領域邁進 了一大步。 ◎XML在EC的應用 現今在網路上所販賣的東西,除了有形的物品如書籍、CD或是麥克喬登的球鞋外 ,還包括資訊等媒體商品及技術支援和線上服務。這些在網路上交易的商品分類 ,就如同一般的商家,可分為零售店、百貨商場、專賣店及購物中心,對於在網 路上的業者來說,最關心的部份莫過於如何能將商品推銷給潛在的客戶,及如何 能在自由貿易的網際世界中打敗競者,並且能提供一套令"駭客"無法破解的安 全交易模式。因此,透過網路完成的交易雖然是近年熱門話題,但交易量的成長 卻一直侷限於小量的單品銷售。 然而事實上,電子商務(Electronic Commerce)所涵蓋的範圍,遠比傳統的EDI所 強調的企業與企業之間(Business to Business)資料交換更為廣泛;其範圍包涵 行銷、合約交換、後勤支援、結算及與主管機關間之來往,也就是說,電子商務 涵這蓋所有工商業與服務業的交易行為。因此,這些商家之間的交易往來才是未 來網路上最具有消費力的客戶,如今有愈來愈多的大型系統業者,如IBM,利 用XML的傳輸技術,鎖定群資金雄厚、又具有極大發展潛力的網路消費族群,設計 出架構完整的企業交易安全電子商通系統(E-B);從此這些大商家的商業交易,不 論是與上游廠商的原料下單或是與下游客戶的訂單轉包,都可透過線上即時的交 易,使人與人、事與事之間的往來更簡化了。 區域網路(LAN)、國際網路(WAN)及專線網路(MAN)等網路架構,可充分應用XML的 多項技術,像是能達到雙向溝通、即時資訊、銀行對交易者身份的驗證及資料直 接擷取等優點,使跨國的購物的服務不但加值外,也垂手可得。因此,電子商務 要突破現在的瓶頸,可利用XML在通訊協定(Procotal)中網路層(Newark)單一封包 、傳輸層(Transport)中多重封包的安全性,以及在表現層(Presentation)中資料 再用的特性,不但可以節省交易兩端處理的時間,更可以不必再承受"駭客"一 再破解交易資料的風險。       十、參考資料 http://www.w3.org/XML/ http://www.textuality.com/xml/ http://www.textuality.com/sgml-erb/ dd1996-0001.html http://www.csclub.uwaterloo.ca/u/relander/Academic/XML/xml_mw.html http://sunsite.unc.edu/pub/sun-info/ standards/xml/why/xmlapps.htm http://www.gca.org/conf/xml/xml_what.htm http://www.ucc.ie/xml/#FAQ_GENERAL http://www.ifi.uio.no/~larsga/download/xml/xml_eng.html http://www.microsoft.com/standards/xml/xmlintro.htm http://www.heise.de/ix/artikel/E/1997/06/106/artikel.htm http://webreview.com/97/05/16/feature/xmldim.html http://www8.zdnet.com/pcmag/iu/toolkit/xml.htm http://www4.zdnet.com/intweek/print/970512/inwk0054.html http://www8.zdnet.com/pcweek/news/0811/11xml.html http://www8.zdnet.com/pcweek/opinion/0811/11isigh.html http://webreview.com/97/05/16/feature/murray.html   [2][menu2.jpg] [3][menu1.jpg] [4][menu3.gif] References 1. http://www.cycu.edu.tw/~mil 2. http://140.135.100.7/seminar/Schedule.htm 3. http://140.135.100.7/mil 4. http://140.135.100.7/seminar/Seminar.htm