解析XML對代碼中的空白處理

1、在XML規(guī)范中,空白包括空格,制表符和空行。在編輯XML文檔時,我們常常使用空白來分隔標記,以獲得較好的可讀性,然而在交互的空白文檔中,這些空白就不需要了,但有時候又需要保留這些空白。例如,詩歌和程序代碼中的空白,
2、XML處理器總是將文檔中不是標記的所有字符都傳遞給應用程序,一個進行有效性驗證的XML處理器會通知應用程序這些字符中的哪一些組成了出現(xiàn)在元素內容中的空白。
3、在XML文檔中,可以在元素中使用一個特殊的屬性xml:space,來通知應用程序保留此元素中的空白。
4、在有效的文檔中,這個屬性和其它任何屬性一樣,在使用時必須聲明。Xml:space屬性必須被聲明為Enumerated(枚舉)類型,它的值必須是“default”和“preserve”兩者之一,也可兩個都取。
例如:
<!ATTLIST poem xml:space (default preserve)’preserve’>
意思是在poem這個元素上聲明xml:space這個屬性,它的類型是枚舉類型,可以取值“default”和“preserve”,且這個屬性的默認值是preserve’
<!ATTLIST pre xml:space (preserve)#FIXED ‘preserve’>
意思是在元素pre這個元素上進行聲明xml:space屬性,類型也是枚舉類型,但是它只有一個取值“preserve”,并且用FIXED這個關鍵字對這個屬性進行了缺省聲明。聲明它有一個默寫的缺省值"default"表示對此元素使用應用程序的缺省空白處理模式,‘preserve’指示應用程序保留所有的空白.
5、如果一個元素使用了xml:space屬性,將適用于該元素內容中的所有元素,除非被另一個xml:space屬性的實例所覆蓋。
XML 文檔包含兩種類型的空白 (a) 有效空白和 (b) 無效空白。下面的例子解釋了這兩種類型的空白。
有效空白
有效空白通常出現(xiàn)在在元素同時包含文本和標記時。例如:
- <name>TanmayPatil</name>
和
- <name>Tanmay Patil</name>
上面的兩個元素是不同的,因為 Tanmay 和 Patil 之間的空白不一樣。任何程序讀取 XML 文件中的這種元素時都必須保持它們的區(qū)別。
無效空白
無效空白意味著只允許在元素內容中出現(xiàn)。例如:
- <address.categoryaddress.category="residence">
或者
- <address....categoryaddress....category="..residence">
上面兩個例子是一樣的。這里,我們通過點號(.)表示空白。在上面的例子中,address 和 category 之間的空白是無效的。
我們還給元素附加一個特殊的屬性 xml:space。這表示元素的空白不應該由應用程序移除。我們可以設置這個屬性為 default 或者 preserve。正如下面的例子所示:
- <!ATTLIST address xml:space (default|preserve) 'preserve'>
這里:
值 default 表示這個元素可以接受應用程序的默認空白處理模式。
值 preserve 表示應用程序會保護所有的空白。
相關文章
- 這篇文章主要介紹了XML中的字符實體與字符數(shù)據(jù),文中所說的CDATA片段即是指字符數(shù)據(jù)即不由解析器解析的文本塊,需要的朋友可以參考下2016-02-14
- 這篇文章主要介紹了詳解XML中的代碼注釋書寫方法,文章中總結了注釋使用的一些注意點,比如XML不支持嵌套注釋等,需要的朋友可以參考下2016-02-14
- 這篇文章主要介紹了XML中的屬性學習教程,包括使用屬性將數(shù)據(jù)存儲在子元素中的例子,需要的朋友可以參考下2016-02-14
- 這篇文章主要介紹了XML中的標簽與元素的使用,是XML入門學習中的基礎知識,需要的朋友可以參考下2016-02-14
- MSXML 6.0 SP1 旨在為現(xiàn)有 MSXML 6.0、MSXML 3 和 MSXML 4 提供升級途徑,有需要的朋友們可以過來看看2016-02-05
- 這篇文章主要介紹了XML中的文檔與聲明用法,是XML入門學習中的基礎知識,需要的朋友可以參考下2016-02-04
- 這篇文章主要介紹了XML標記語言的基本概念及語法入門教程,XML同時也被廣泛用作標記數(shù)據(jù)來作為XML數(shù)據(jù)交換格式,需要的朋友可以參考下2016-02-04
- WPS2016文檔怎么保存為XML格式?wps默認的伯村格式是.doc,但是有的時候,必須使用xml格式的文件,該怎么把WPS的doc格式另存為xml格式呢?下面我們來看看詳細教程2015-11-05
批量導入XML數(shù)據(jù)到drupal系統(tǒng)的方法
這篇文章主要為大家介紹了批量導入XML數(shù)據(jù)到drupal系統(tǒng)的方法,主要通過一個XML文件導入類來實現(xiàn)這一功能,是非常實用的技巧,需要的朋友可以參考下2014-11-10js+flash+xml實現(xiàn)圖片3D分裂切換效果源碼
這是一款基于js+flash+xml實現(xiàn)的3D圖像切換效果源碼,當鼠標懸停的時候,顯示左右箭頭、進度條、和感嘆號(點擊實現(xiàn)翻轉效果,可做圖片解釋說明時用)。圖片和flash分開,如2014-10-22