DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML與XSLT >> 解析XML對代碼中的空白處理
解析XML對代碼中的空白處理
編輯:XML與XSLT     

1、在XML規范中,空白包括空格,制表符和空行。在編輯XML文檔時,我們常常使用空白來分隔標記,以獲得較好的可讀性,然而在交互的空白文檔中,這些空白就不需要了,但有時候又需要保留這些空白。例如,詩歌和程序代碼中的空白,
2、XML處理器總是將文檔中不是標記的所有字符都傳遞給應用程序,一個進行有效性驗證的XML處理器會通知應用程序這些字符中的哪一些組成了出現在元素內容中的空白。
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) 無效空白。下面的例子解釋了這兩種類型的空白。

有效空白
有效空白通常出現在在元素同時包含文本和標記時。例如:

XML/HTML Code復制內容到剪貼板
  1. <name>TanmayPatil</name>  

XML/HTML Code復制內容到剪貼板
  1. <name>Tanmay Patil</name>  

上面的兩個元素是不同的,因為 Tanmay 和 Patil 之間的空白不一樣。任何程序讀取 XML 文件中的這種元素時都必須保持它們的區別。

無效空白
無效空白意味著只允許在元素內容中出現。例如:

XML/HTML Code復制內容到剪貼板
  1. <address.categoryaddress.category="residence">  

或者

XML/HTML Code復制內容到剪貼板
  1. <address....categoryaddress....category="..residence">  

上面兩個例子是一樣的。這裡,我們通過點號(.)表示空白。在上面的例子中,address 和 category 之間的空白是無效的。

我們還給元素附加一個特殊的屬性 xml:space。這表示元素的空白不應該由應用程序移除。我們可以設置這個屬性為 default 或者 preserve。正如下面的例子所示:

XML/HTML Code復制內容到剪貼板
  1. <!ATTLIST address xml:space (default|preserve) 'preserve'>  

這裡:

值 default 表示這個元素可以接受應用程序的默認空白處理模式。
值 preserve 表示應用程序會保護所有的空白。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved