DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> XML初學進階學習筆記(2)
XML初學進階學習筆記(2)
編輯:XML詳解     

 15、

  <!ELEMENT 聯系人(姓名, EMAIL)>

  <!ELEMENT 姓名(#PCDATA)>

  <!ELEMENT EMAIL(#PCDATA)>

  如果我們使用逗號“,”來分隔兩個子元素,那麼XML文件中,元素“姓名”就必須出現在元素“EMAIL”前面。反之,可以無序。

  16、XML正則表達式的匹配原則不允許循環邏輯。所以,OR的意思是或者選這個或者選那個,但不能兩個都選,也不能兩個都不選。

  17、注意:在一個組中,只允許使用一種連接符(例如“,”或“|”)。因此,象下面這樣定義的DTD是不合法的:

  <!ELEMENT 聯系人(姓名,電話|EMAIL)> 

  要想使用多種連接符,只有通過創建子組的方式,使用

  <!ELEMENT 聯系人(姓名,(電話|EMAIL))> 

  前面我們已經介紹了所有可能用到的子元素的排列狀況。不過,還有一種情況沒有說,那就是,一個元素中不包含任何子元素,也不包含純文本。

  對於這種情況,我們可以定義一個空標記。當然,定義這樣一個標記很簡單,你只需要使用關鍵字EMPTY就可以了,例如:

  <!ELEMENT HR EMPTY> 

  這樣,在你的XML文件中,就可以使用一個空元素<HR/>。

  18、IDREF類型允許一個元素的屬性使用文件中的另一個元素,方法就是把那個元素的ID標識值作為該屬性的取值。

  19、參數實體專門用在DTD中。定義方式是:

  <!ENTITY % 實體名 "實體內容"> 

  或: schema

  <!ENTITY % 實體名 SYSTEM "外部文件名"> 

 引用方式為:

  %實體名; 

  20、使用參數實體,可以方便元素和屬性的聲明。例如:

  <!ENTITY % TAG_NAMES "姓名 | EMAIL | 電話 | 地址">

  <!ELEMENT 個人聯系信息 (%TAG_NAMES; | 生日)>

  <!ELEMENT 客戶聯系信息 (%TAG_NAMES; | 公司名)> 

  21、dt:type

  dt:type指定所聲明屬性的數據類型,它除了支持DTD中包含的全部十大數據類型外,還支持一些擴展屬性,在下一小節會詳細講述。

  Schema中的十個基本屬性與DTD中屬性的對應關系請見下表:

  Schema中基本類型    DTD中數據類型 

  string          #PCDATA 

  enumeration       ENUMERATED 

  id            ID 

  idref          IDREF 

  idrefs          IDREFS 

  nmtoken         NMTOKEN 

  nmtokens         NMTOKENS 

  entity          ENTITY 

  entities         EMTITIES 

  notation         NOTATION 

  注意,當dt:type取值為"enumeration"時,後面的dt:value必須列出所有可能的取值。

  22、attribute實際上是對該Schema中AttributeType聲明的引用,而具體引用什麼屬性類型,

  關鍵就要靠type屬性了。type唯一指定了要引用的屬性類型,

  因此其取值必須同某個AttributeType元素中name屬性的取值嚴格一致。

 其它兩個屬性與AttributeType中相應屬性的含義相同,

  default指定該屬性類型的缺省取值,

  required指定該屬性對於引用它的元素是否是必須的。

  如果和同一個屬性相對應的AttributeType和attribute中都對default和required給出了定義,

  則在attribute中的取值具有更高的優先級。

  23、XML較之Html最根本的差別在於XML是定義置標語言的元語言,

  而Html僅僅是由SGML元置標語言定義的一個實例語言。利用XML元置標語言,

  定義各種各樣的XML實例的活動是相當開放的。針對不同的應用方向,

  每設計一個XML的DTD,一種新的置標語言便隨之誕生。

  在各種各樣XML實例置標語言如雨後春筍般不斷湧現的過程中,

  將會產生這樣一種應用需求,即在一個XML文檔中,包含由多個DTD描述的元素。

  這個想法顯然是達到“物盡其用”的一個好辦法,它幫助我們最大程度地利用了現有的資源,

  正所謂“海納百川,有容乃大”。

  24、CSS和XSL均屬於樣式單的一種,都可以用來設定文檔的外觀。那麼,它們有什麼區別呢?

  比較起來,它們主要有以下幾個大的不同: 

  用途不同

  CSS最早是針對於Html提出的,後來又將其應用於XML之中,

  它既可以為Html文檔中的各個成分設定樣式,又可以為XML中的成分設定樣式。

  XSL是專門針對XML提出的,它不能處理Html文檔。但它有一個CSS無法達到的功能,

  即用一個命令行將一個XML文檔轉換為另一個文檔並存盤。 

  處理結果不同

  XSL采用的是一種轉換的思想,它將一種不含顯示信息的XML文檔轉換為另一種可以用某種浏覽器浏覽的文檔,

  轉換後的輸出碼或者存為一個新的文檔,或者暫存於內存中,但都不修改源代碼。而CSS則沒有任何轉換動作,

  只是針對結構文檔中的各個成分,依照樣式規定一一設定外觀式樣,再由浏覽器依據這些式樣顯示文檔,在整個過程中沒有任何新碼產生。 

  表現能力不同

  在XSL中定義的90%的樣式規定,實際上在CSS中都有定義。但仍然有一些效果是CSS無法描述的,

  必須使用XSL不可。這些功能包括文本的置換,例如將一個美國的時間表示格式轉換為一個中國的時間表示格式;

  根據文本內容決定顯示方式,例如將60分以上的分數用黑色顯示,60分以下的分數用紅色顯示;

  將文檔中的成分按照某一個子成分的值進行排序,例如將商品按售價進行排序。

  此外,還有對於超鏈接的支持,對於FRAME的支持,對於某些語種文字從上到下,

  行從右到左的排列格式的支持等,都是XSL所獨有的。 

  語法不同

  XSL是根據XML的語法進行定義的,實際上又是XML的一種應用。而CSS的語法自成體系,

  且比較簡單,易學易用。 

  綜上所述,一個XML文檔的顯示方式可以歸納為三種:即利用CSS顯示,

  利用XSL轉化為FO顯示,以及利用XSL轉化為HTML文檔顯示(這個Html文檔中可包含CSS樣式)。

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