這篇文章主要介紹了XML對程式碼中的空白處理,文中介紹到了XML書寫中的有效空白與無效空白的區分,需要的朋友可以參考下
#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) 無效空白。下面的例子解釋了這兩種類型的空白。
有效空白
有效空白通常出現在在元素同時包含文字和標記時。例如:
<name>TanmayPatil</name>
和
<name>Tanmay Patil</name>
上面的兩個元素是不同的,因為 Tanmay 和 Patil 之間的空白不一樣。任何程式讀取 XML 檔案中的這種元素時都必須保持它們的差異。
無效空白
無效空白表示只允許在元素內容中出現。例如:
<address.categoryaddress.category="residence">
或
<address....categoryaddress....category="..residence">
上面兩個例子是一樣的。這裡,我們透過點號(.)表示空白。在上面的例子中,address 和 category 之間的空白是無效的。
我們也給元素附加一個特殊的屬性 xml:space。這表示元素的空白不應該由應用程式移除。我們可以設定這個屬性為 default 或 preserve。如下面的範例所示:
<!ATTLIST address xml:space (default|preserve) 'preserve'>
這裡:
值 default 表示這個元素可以接受應用程式的預設空白處理模式。
值 preserve 表示應用程式會保護所有的空白。
以上是XML對程式碼中的空白處理詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!