糯米文學吧

位置:首頁 > 設計 > 網頁設計

關於XML入門教程:分析XM

分析XML文檔可通過程序來做,分析器有兩大類,一種是事件驅動的,一種是基於樹模型的。

關於XML入門教程:分析XM

使用事件驅動的分析器時,每遇到一個元素就會觸發一個事件,由事件處理器進行處理。事件分析器按順序讀取XML文檔,而不把整個文檔讀入內存,所以處理速度很快。但缺點是由於要從頭到尾讀取XML文檔,因此無法在XML文檔中移動位置。事件驅動分析器適合處理其它地方使用的XML數據,如轉換成HTML文檔或從文件中讀取數據並插入數據庫中。它的優點有:

文件搜索,從XML文檔中搜索需要的標誌或數據;

格式轉換,如轉換成HTML。任何需將原始XML轉換成另一種格式的工作都最好使用事件驅動分析器來完成,因為它可動態將信息轉換成新格式。

少量修改,你可用事件驅動分析器讀取和重新生成XML。在分析過程中,可以改變少量的單語、字符數據內容或重新構造XML。事件驅動分析器特別適合整理和重新格式化XML文檔。

簡單驗證,由於整個文檔不在內存中,所以無法進行完整驗證,但可檢查拼寫錯誤和一般良構XML文檔之類的簡單問題;

建立內部結構,可以使用事件驅動分析器建立XML文檔的複雜內部表示,如基於樹的接口使用的樹式結構。

事件驅動分析器不能在XML文檔間交叉引用文檔內容,但它使用簡單,速度快。

計算機並不能正真理解文本內容,它無法識別諸如a,b,c這類的字母,更不用説中文了。計算機所能理解的只有數字,如60,80等。字符集(character set)規定了字母到數字的映射關係,如65代表大寫字母A。65稱為碼點(code point),字符編碼(character encoding)決定碼點如何用字節表示。是用多了節還是單字節,高字節位表示什麼,低字節位表示什麼。

不同國家使用不同的語言,不同程序使用不同的編碼規範,在進行世界範圍內的數據交換就要統一表示數據的字符編碼規範。傳統的ASCII字符集只定義了127個字符,其中前31個是控制符。127位之後的字符隨平台不同而不同。大多數平台只能表示前127位,單字節(8位),使得字符集中最多隻能提供256個字符。這些標準字符稱為羅馬或拉丁字符集,用ASCII來表示中文、日文是遠遠不夠的。為了解決字符集問題,出現了Unicode字符集。它可用多字節格式編碼字符,目前標準允許2字節字符,支持65536個不同字符。標準的Unicode字符集為Latin-1(或ISO-8859-1)。有關Unicode的介紹可訪問Unicode的官方網站:

Unicode字符集為字符分配碼點,即編號。這些編號可以用多種模式編碼,如UCS-2、UCS-4、UTF-8、UTF-16。

UCS-2,也叫ISO-10646-UCS-2。每個字符用一個0~65535之間的兩個字節的無符號整數表示。如A的Unicode碼點為65,用兩個字節00和41(十六進制)表示。B的Unicode碼點為66,用兩個字節00和42表示。UCS-2有兩種形式:高字節(#x0041)在前和低字節(#x4100)在前。為區發高低位不同表示形式,採用UCS-2編碼文檔通常以Unicode字符#xFEFF(零寬度無間斷空格)開頭,一般稱為字節順序標記(byte order mark)。這個字符是不可見的。如果兩個字節交換位置,得到的字符#xFFFE實際是不存在的。因此中通過查看UCS-2文檔的前兩個字符是#xFEFF還是#xFFFE,就可確定該文檔是否是高字節在前。UCS-2的缺點:如果文本字符主要是拉丁文,由於採用兩個字節,字符集編碼是單字節字符編碼的兩倍;UCS-2不能與ASCII向前或向後兼容,用於單字節字符集的工具常常不適用於處理UCS-2編碼文件。

UTF-8是一種可這長度的'Unicode編碼。0~127為ASCII碼字符集,與ASCII編碼完全兼容,每個字符采用一個字節編碼。UTF-8用兩個字節表示128~2047,該範圍覆蓋了最常見的非表意字母。其餘的字符,主要來自漢語、日語和韓語,每個都用3個字節表示。如果Unicode的碼點超過65535個字符,那麼這些字符就會用4個字節編碼。對於以拉丁文為主的文件,使用UTF-8比UCS-2可減少一半的文件大小。對於漢語、日語和韓語的文件,其大小會增加百分之五十。對於其它語言,文件大小相差不大。UTF-8是最常用的Unicode編碼方式。

在Unicode流行以前,出現了一系列處理特定語言的單字節字符集,ISO將14種這樣的字符集標準化成ISO 8859標準,分別是ISO-8859-1~14。ISO-8859-15是ISO-8859-1的修訂版本。這些字符集統稱ISO字符集。

Cp1252是依賴於Windows平台的一種編碼,是Windows的缺省字符集。該種編碼不支持跨平台特性,儘量不要使用。

MacRoman是Mac OS使用的一種非標準、單字節編碼。在非Mac平台下使用也會有問題,儘量不要使用。

本文由()整理髮布!轉載請註明出處,謝謝!

在XML文檔中,如果需輸入編輯器不支持的字符,我們可用字符引用的方式,以十進制或十六進制給出它所代表的Unicode字符編號,如(十進制)或者&#x45A(十六進制)。字符引用可用於元素內容、屬性和註釋,不能用於元素名和屬性名、處理指令或XML關鍵字。如果有一些字符需經常使用,則我們可為這些字符定義實體,這樣,在文檔中就可方便地引用該實體了。專門定義字符實體的DTD我們可獨立出來,形成以為後綴的外部DTD。在需要時使用外部參數實體引用將這些定義引入文檔的DTD中。

XHTML 1.0 DTD包含有三個有用的字符引用實體可在文檔中使用。

Latin-1字符,

ISO-8859-1中自160以上的非ASCII碼字符。

特殊字符,

ISO-8859-2中不在Latin-1中的字母。

標點符號,

希臘字母表(不包含帶重音的字符)和各種標點符號、數學運算符及其他數學中常用的符號。

在XML文檔中可以使用xml:lang屬性規定元素內容採用的語言。這樣就可在一篇文檔中同時使用多種語言,這是XML跨平台和跨語言的重要特性之一。如:xml:lang="CN-CHN"。語言代碼是一個兩個字母的語言代碼,語言代碼後還可跟一個子代碼,語言代碼可在這裏找到。下面是xml:lang屬性聲明的示例:

由於所有語言代碼都是有效的XML名稱標記,所以使用NMTOKEN類型。

標籤:XML 入門教程 XM