【XML】視頻總結

標記語言: 用文字做標記,表達一些內容效果,攜帶一些數據

DTD(Document Type Definition)

1.定義了XML文件的結構,爲XML文件提供語法規則
2.既可以定義在XML文件內,也可以定義在XML文件外
3.使用XML進行數據交換的行業或組織可以定義自己的DTD
4.DTD對XML是可選的內容

使用DTD原因

爲了正確的交換數據,XML文件需要確定的結構

DTD的2種使用方式

XML內置DTD內容
在這裏插入圖片描述
DTD內容放到XML外部(專用)
單獨寫一個dtd文件,單獨把規則拿出來
在這裏插入圖片描述
DTD內容放到XML外部(公用):有權威機構制定,提供給特定行業或公衆使用的DTD。關鍵字public

XML文件構成:元素,屬性,實體,PCDATA(文本內容),CDATA(原樣輸出內容)

元素聲明: <!ELEMENT 元素名稱 類別>
      <!ELEMENT 元素名稱 元素內容>
在這裏插入圖片描述
元素(文本內容)
元素(其他子元素)

空元素聲明:<!ELEMENT 元素名稱 EMPTY>
      DTD中:<!ELEMENT br EMPTY>
      XML中:<br/>
帶有任務內容的元素聲明:<!ELEMENT 元素名稱 ANY>
            DTD中:<!ELEMENT student ANY>
            XML中:<student>趙芬<student/> 帶有文本內容
                 <student><name>趙芬</name></student> 包含子元素
元素中子元素的個數
只出現一次
   <!ELEMENT 元素名稱 (子元素名稱)>
例如:<!ELEMENT 書籍列表 (計算機書籍)>

最少出現一次
   <!ELEMENT 元素名稱 (子元素名稱+)>
例如:<!ELEMENT 書籍列表 (計算機書籍+)>

聲明出現零次或多次的元素
   <!ELEMENT 元素名稱 (子元素名稱*)>
例如:<!ELEMENT 書籍列表 (計算機書籍*)>

聲明出現零次或一次的元素
   <!ELEMENT 元素名稱 (子元素名稱?)>
例如:<!ELEMENT 書籍列表 (計算機書籍?)>

聲明或
   <!ELEMENT 元素名稱 (子元素名稱|子元素名稱)>
例如:<!ELEMENT 書籍列表 (計算機書籍|文學書籍)>

聲明混合型
   <!ELEMENT 子元素名稱 (#PCDATA|子元素名稱)*>
例如:<!ELEMENT 書籍列表 (#PCDATA|計算機書籍)*>
在這裏插入圖片描述
子元素要求順序
DTD: <!ELEMENT 計算機書籍(書名, 價格)>
     <!ELEMENT 書名(#PCDATA)>
     <!ELEMENT 價格(#PCDATA)>
XML:
  <書籍列表>
   <計算機書籍>
     <書名>J2SE書</書名>
     <價格>100</價格>
   </計算機書籍>
  </書籍列表>
子元素不要求順序
DTD: <!ELEMENT 計算機書籍(書名| 價格)*>
     <!ELEMENT 書名(#PCDATA)>
     <!ELEMENT 價格(#PCDATA)>
XML:
  <書籍列表>
   <計算機書籍>
    <書名>J2SE書</書名>
    <價格>100</價格>
   </計算機書籍>
  </書籍列表>
重複元素
DTD: <!ELEMENT 計算機書籍(書名| 作者+)>
     <!ELEMENT 書名(#PCDATA)>
     <!ELEMENT 作者(#PCDATA)>
XML:
  <書籍列表>
   <計算機書籍>
     <書名>J2SE書</書名>
    <作者>趙芬</作者>
     <作者>田佳琪</作者>
   </計算機書籍>
  </書籍列表>
成組元素
DTD: <!ELEMENT 計算機書籍(書名| 價格)+>
     <!ELEMENT 書名(#PCDATA)>
     <!ELEMENT 價格(#PCDATA)>
XML:
  <書籍列表>
    <計算機書籍>
     <書名>J2SE書</書名>
     <價格>100</價格>
     <書名>XML書</書名>
     <價格>50</價格>
   </計算機書籍>
  </書籍列表>

XML文件構成:屬性(ATTLIST)聲明

語法:<!ATTLIST 元素名稱 屬性名稱 屬性類型 默認值>
DTD:<!ATTLIST paymetnt type CDATA ""cash">
XML:<payment type="cash"/>
   <payment />
屬性的類型
在這裏插入圖片描述
屬性值
在這裏插入圖片描述
屬性默認值例子
DTD:<!ELEMENT payment EMPTY>
    <!ATTLIST payment type CDATA "cash">
XML:<payment type="check"/>

屬性不是必須默認值例子

<!ATTLIST 元素名稱 屬性名稱 屬性類型 #IMPLIED>

DTD: <!ATTLIST payment type CDATA #IMPLIED>
XML:  <payment type="cash"/>
    <payment/>

屬性必須爲默認值例子

<!ATTLIST 元素名稱 屬性名稱 屬性類型 #REQUIRED>

DTD:  <!ATTLIST payment type CDATA #REQUIRED>
XML: <payment type="cash"/>

DTD實體

內部實體聲明:<!ENTITY 實體名稱 "實體的值">
DTD:
   <!ENTITY writer "Bill Gates">
   <!ENTITY copyright "Copyright jobedu,com,cn">
XML:
   <author>&writer;&copyright;</quthor>
內部實體聲明:<!ENTITY 實體名稱 SYSTEM "URI/URL">
DTD:
   <!ENTITY writer SYSTEM "http://www.jobedu.com.cn/dtd/person.dtd">
XML:
   <author>&writer;</quthor>
在一個xml文件中使用多個DTD文件,不同DTD文件中元素衝突,解決方法:命名空間
採用前綴標識發,在元素名和屬性名前面增加一個標識,區分當前元素來自於那個DTD
在這裏插入圖片描述
瀏覽器是無法檢測xml是否符合了DTD規則的。Java代碼實現對xml文件的驗證,是否符合DTD規則

Schema比DTD

Schema是DTD的plus替代者,用來描述XML文檔的結構,被稱爲XML Schema Definition(XSD)
Schema使用xml語法,使用xml編寫Schema不用學習新的語言,可以用XML編輯器解析器來編輯解析Schema文件
Schema作用
1.保護數據通信
2.Schema可以擴展(在其他Schema裏使用)
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章