2008年6月17日星期二

IDEA#137 Content-Format Separation

在公司的活動中,和同事談起設計,提到了CSS和DIV兩種東西。它們都屬於標記語言。標記語言的目的是為資訊提供額外的描述,使電腦能根據描述,將資料以適當的方式展示。

在電腦世界裡,有兩種方法去展示資訊。第一種是content-format integration,有如在Word中寫文章,寫內容的同時必須設定字體和格式。第二種是content-format separation,讓你先在檔案中建立內容,容後才用另外一個稱為"樣式表"(style sheet)的檔案,將內容加以展示。此模式下,前一個檔案所包含的的資訊為content layer,第二個檔案所包含的資訊便是presentation layer了。所以編寫網頁時,會有HTML(當中包含DIV)和CSS兩種檔案。

第二種方式的好處是編寫內容的人可以不擔心格式,而專注於內容上,從事格式設計的亦可以先不考慮內容,集中精神於樣式表上。

Content-format separation 的技術有幾種,除了在網頁製作上比較常用的HTML+CSS外,還有在出版和紙面輸出方面用途廣泛的XML+XSL。在此技術中,XML用於儲存內容,XSL樣式表側用於定義顯示格式。

例如這個XML檔案便紀錄了一段談話。而這個樣式表,包含了格式化XML檔案的指示。兩個檔案一同顯示的話,就能看到一個漂亮的,容易看的格式(下載解壓後打開message.xml)。

大家都熟悉的For Dummies叢書,便是用XML編寫,然後再用XSL格式化軟件(Formatting Engine)將內容和圖片自動排版成書籍。由於無需人手調校,所以風格能非常的統一。即使是簡體版,都能保持原書的風格。用人手排版的話,需要花費頗大的氣力。

近來公司同事便忙於將PDF格式的書籍轉換成XML,以供應電子圖書館產品的需要。可惜內容供應商采用傳統技術,同事要人手將書本轉換成XML,非常浪費生命。但沒辦法,暫時只有Oxford University Press等大機構,才擁有XML編寫的書籍原稿。

去年,我嘗試了用XML編寫日記,除了寫作時能夠專注在內容之外,日後換能利用XSL樣式表將日記轉換成網頁或PDF電子書。日本的Blog服務,於多年前便已經提供將日記轉換為電子書的服務。

除了能靈活格式化內容外,XSL又能抽出特定內容。例如,我可以找出我在MSN Messenger和A說過什麼的話;又或是找出在2007年4月到8月,下過雨而我心情又不好的日子到底有哪幾天。我常戲說,將來可用XML紀錄老婆說過的話,那她問自己什麼時候說過什麼,我都懂答(除了經典的媽媽和老婆跌落海的問題以外)。

日記一
日記二

除了日記以外,XML+XSL亦可用來寫CV。方法是將所有條目用XML標記其性質,日後要找尋marketing工作的話,便可利用XSL抽出與marketing相關的經驗,並自動排版成CV,無需copy and paste,然後調整格式,費時失事(稍後附上例子)。

1 則留言:

單位 說...

好勁!
但我諗我要睇多幾次先消化到!