XML簡介及DTD

與html的區別:

1、標籤自定義

2、html可以實現一些動作,xml只存放數據,與世無爭

DTD:document type definition 文檔定義類型

用途:是一個標準,是一套語法規則,如果在xml裏面引入dtd文件,那麼就必須按照這個dtd的規則來定義xml

引入方式:外部引入,內部引入,內外部引入

1.內部引入:

語法:<!DOCTYPE 根節點[

              <!ELEMENT 根節點(根節點下面的子節點,根節點下面的子節點)>

          ]>

列:<!DOCTYPE people[

            <!ELEMENT people (student)>

            <!ELEMENT student (#PCDATA)>

        ]>

        <people>

            <student>XML</student>

        </people>

2.外部引入:
語法:新建一個dtd文件
寫入<!ELEMENT people (student,sex)>
<!ELEMENT student (#PCDATA)>
<!ELEMENT sex (#PCDATA)>

在需要引入的文件中寫:
      引入網絡資源:<!DOCTYPE 根節點  PUBLIC "dtd的文件名" "dtd網絡資源地址">
      引入自己寫的dtd:<!DOCTYPE 根節點 SYSTEM "dtd的文件路徑">
dtd文件(文件名爲2.dtd
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT people (student,sex)>
<!ELEMENT student (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE people SYSTEM "2.dtd">
<people>
<student>小名</student>
<sex>男</sex>
</people>

元素定義:
1、#PCDATA 可以是任意的文本字符數據 不能有子節點
2、EMPTY 空,節點之間的內容爲空
3、ANY  任意類型
4、混合類型
子節點後面跟符號:如<!ELEMENT people (student,sex+)>
+:表示這個可以出現一次或者多次
?:出現一次或者0次
*:出現任意次
,:元素必須按照順序顯示
|:多個選擇出現一個

例:xml文件
<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE sun [ 
  <!ELEMENT sun (boy, girl, end, music+, (dog | cat))>
 <!ELEMENT boy ANY> 
 <!ELEMENT one (#PCDATA)>
  <!ELEMENT two (#PCDATA)> 
  <!ELEMENT girl (#PCDATA)>
  <!ELEMENT end EMPTY> <!ELEMENT music (#PCDATA)> 
  <!ELEMENT dog (#PCDATA)> 
  <!ELEMENT cat (#PCDATA)> 
]> 
<sun>
 <boy> 
  <one>1號</one> 
  <two>2號</two> 
  </boy> 
  <girl>宋</girl>
  <end/>
  <music>單程票</music> 
  <music>什麼時候不要敲代碼</music>
  <dog>狗</dog>
 </sun>
 
屬性的語法:
<!ATTLIST 元素名稱 屬性名 屬性類型  屬性特點>
屬性類型:
1、CDATA 可以是任意文本類型 是#PCDATA的一個子集
2、ID 該屬性值是唯一的 但不能是純數字
3、IDREF/IDREFS 對ID值的一個引用
4、NMTOKEN 名稱編號 是CDATA的一個子集 只能是英文字母,數字,句號,破折號,下劃線,冒號
屬性特點:
1、必要的 #REQUIRED
2、可有可無的 #IMPLIED
3、強制使用該值 #FIXED
4、默認 Default 值

例:xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE lol[
<!ELEMENT lol (諾克薩斯,祖安,戰爭學院,工學院,教育局)>
<!ELEMENT 諾克薩斯 (#PCDATA)>
<!ELEMENT 祖安 (#PCDATA)>
<!ELEMENT 戰爭學院 (#PCDATA)>
<!ELEMENT 工學院 (#PCDATA)>
<!ELEMENT 教育局 (#PCDATA)>
<!ATTLIST 諾克薩斯 英雄 CDATA #REQUIRED>
<!ATTLIST 諾克薩斯 位置 CDATA #IMPLIED>
<!ATTLIST 祖安 people CDATA #FIXED "刷子">
<!ATTLIST 戰爭學院 teacher CDATA "軍哥">
<!ATTLIST 工學院 編號 ID #REQUIRED>
<!ATTLIST 戰爭學院 編號 ID #REQUIRED>
<!ATTLIST 教育局 所有的學校 IDREFS #REQUIRED>
<!ATTLIST 教育局 別名 NMTOKEN #REQUIRED>
]>
<lol>
<諾克薩斯 英雄="卡特"></諾克薩斯>
<祖安 people="刷子"></祖安>
<戰爭學院 編號="s2"></戰爭學院>
<工學院 編號="s1"></工學院>
<教育局 所有的學校="s1 s2" 別名="湖南"></教育局>
</lol>


發佈了43 篇原創文章 · 獲贊 18 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章