[文檔整理系列] Java SE之XML<一>XML文檔規約html
1.xml文檔引用: 1.外部私有DTD: <!DOCTYPE rootNodeName SYSTEM "uri.dtd"> (在xml文件中聲明,帶關鍵字SYSTEM) 2.外部公共文件時: <!DOCTYPE rootNode名稱 PUBLIC "DTD名稱" "uri.dtd"> (在xml文件中聲明,帶關鍵字PUBLIC) 3.內部引用: <!DOCTYPE rootNodeName [declarationsContent] > (在xml文件中聲明) ====================== 2.語法分類:【元素定義,屬性定義,實體定義】 元素定義 1.格式:<!ELEMENT 元素名稱 元素類型> 2.元素類型能夠是元素內容或類型: 1.若是是元素內容:【須要用括號括起來】 Eg:<!ELEMENT 書架 (書名,做者,售價)> <!ELEMENT 書架 (#PCDATA)> 2.若是是元素類型:【直接書寫】 類型有以下: EMPTY: 用於定義空類型,如<br/><hr/> ANY: 表示元素內容能夠爲任意值 Eg:<!ELEMENT 聯繫人列表 ANY> 3.元素內容能夠使用以下方式,描述內容的組成關係: 1.用逗號隔開,表示內容的出現順序必須與聲明時一致 Eg:<!ELEMENT myBookElement (title,name,email)> 2.用|分隔,表示任選其一,即最多隻能出現一個 Eg:<!ELEMENT myBookElement (title|name|email)> 4.在元素中也能夠使用+,*,?等符號表示元素出現的次數 1.+ :一次or屢次 (書+) 2.?:0次or1次(書?) 3.* :0次or屢次 (書*) 4.(無符號):必須出現一次(書) 5.還可以使用圓括號()批量設置 Eg:<!ELEMENT myBookElement ((title*,author?,email)*|comment)> 屬性定義 1.格式: <!ATTLIST 元素名 屬性名1 屬性值類型 設置說明 屬性名2 屬性值類型 設置說明 屬性名3 屬性值類型 設置說明 ... > 2.Eg: DTD屬性聲明: <!ATTLIST 商品 類別 CDATA #REQUIRED 顏色 CDATA #IMPLIED > 對應XML文件: <商品 類別="服裝" 顏色="黃色">...</商品> 3.屬性--設置說明 1.#REQUIRED :必須設置該屬性 2.#IMPLIED: 能夠設置也能夠不設置 3.#FIXED: 說明該屬性的取值固定爲一個值,在XML文件中不能爲該屬性設置其餘值。 但須要爲該屬性提供這個值。 該屬性值,不可更改,在使用該標籤時,能夠使用本屬性,也能夠不適用本屬性,都將不改變屬性值。 4.直接使用默認值。在XML中能夠設置該值,也能夠不設置該屬性值。 Eg: <!ATTLIST 頁面做者 姓名 CDATA #IMPLIED 年齡 CDATA #IMPLIED 聯繫信息CDATA #REQUIRED 網站職務CDATA #FIXED "頁面做者" 我的愛好CDATA "上網" > 4.經常使用屬性值類型: CDATA 表示屬性值爲普通文本字符串 ENUMERATED ID 1.屬性值惟一 2.屬性的值只能由字母、下劃線開頭,且不能出現空白字符 ENTITY(實體) 實體定義 1.定義:實體用於爲一段內容建立一個別名,之後再XML文檔中就能夠使用別名來引用這段內容了。 2.在DTD定義中,一條<!ENTITY...>語句用於定義一個實體 3.實體類型:引用實體和參數實體 引用實體: 1.引用實體主要在XML文檔中被應用 2.語法格式:<!ENTITY 實體名稱 "實體內容" >: 直接轉變成實體內容 3.引用方式: &實體名稱; 4.Eg:<!ENTITY copyright "我是一名程序員"> ... ©right; 參數實體: 1.參數實體被DTD實體自身引用 2.語法格式: <!ENTITY % 實體名稱 "實體內容" > 3.引用方式: %實體名稱; 4.Eg: <!ENTITY Tag_Name 姓名 |EMAIL |電話|地址> <!ENTITY 我的信息 (%Tag_Name; |生日)> <!ENTITY 客戶信息 (%Tag_Name; |公司名)> Eg: <!ENTITY % common.attributes "id ID #IMPLIED account CDATA #REQUIRED"> 標籤名 屬性名1 屬性類型 設置說明 屬性名2 屬性類型 設置說明 ... <!ATTLIST purchaseOrder %common.attributes;> <!ATTLIST item %common.attributes;> ========================== 示例1:電視節目單 <!DOCTYPE TVSCHEDULE [ <!ELEMENT TVSCHEDULE (CHANNEL+)> <!ELEMENT CHANNEL (BANNER,DAY+)> <!ELEMENT BANNER (#PCDATA)> <!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)> <!ELEMENT HOLIDAY (#PCDATA)> <!ELEMENT DATE (#PCDATA)> <!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)> <!ELEMENT TIME (#PCDATA)> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT DESCRIPTION (#PCDATA)> <!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED> <!ATTLIST CHANNEL CHAN CDATA #REQUIRED> <!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED> <!ATTLIST TITLE RATING CDATA #IMPLIED> <!ATTLIST TITLE LANGUAGE CDATA #IMPLIED> ]> -------------------- <TVSCHEDULE NAME="重慶衛視目錄"> <CHANNEL CHAN="少兒頻道"> <BANNER> 爸爸來了 </BANNER> <DAY> <DATE> 2017-02-07 </DATE> <HOLIDAY> 重陽節 </HOLIDAY> </DAY> </CHANNEL> <CHANNEL CHAN="嬰兒頻道"> <BANNER> 媽媽來了 </BANNER> <DAY> <DATE> 2014-05-25 </DATE> <PROGRAMSLOT VTR="我也不知道" > <TIME>23:02</TIME> <TITLE RATING="23%" LANGUAGE="Chinese" >躲藏的貓咪</TITLE> <DESCRIPTION>講述一隻可愛的貓貓的故事</DESCRIPTION> </PROGRAMSLOT> </DAY> </CHANNEL> </TVSCHEDULE>