本文查閱方法:
一、查閱目錄 —— 查閱本文目錄,肯定想要查閱的目錄標題
二、快捷「查找」 —— 在當前瀏覽器頁面,按鍵 「Ctrl+F」 按鍵組合,開啓瀏覽器的查找功能,
在查找搜索框中 輸入須要查閱的 目錄標題,即可以直接到達 標題內容 的位置。
三、學習小結 —— 文中的學習小結內容,是筆者在學習以後總結出的,開發時可直接參考其進行應用開發的內容, 進一步加快了本文的查閱 速度。(水平有限,僅供參考。)javascript
本文目錄java
學習小結web
一、DTD約束快速入門編程
二、編程校驗XML文檔正確性瀏覽器
三、添加DTD約束的兩種方式app
四、在Xml文件內編寫DTD約束 工具
五、引用DTD約束學習
六、DTD 約束語法細節網站
七、DTD 的語法細節- 元素定義xml
八、DTD 的語法細節- 屬性定義
九、DTD 的語法細節- 實體定義
十、附件資料下載
相關文章
XML文檔語法 學習筆記
地址:http://even2012.iteye.com/blog/1828064
DTD約束 —— Xml文檔 約束技術 學習筆記
地址:http://even2012.iteye.com/blog/1828290
Schama —— Xml文檔約束技術 學習筆記
地址:http://even2012.iteye.com/blog/1832073
Dom4j 解析Xml文檔及 XPath查詢 學習筆記
地址:http://even2012.iteye.com/blog/1832068
Jaxp :Dom解析Xml文檔和SAX解析Xml文檔學習筆記
地址:http://even2012.iteye.com/blog/1829981
學習小結
一、DTD約束 快速入門
二、編程校驗XML文檔正確性
(備註:該知識可選學:大多數IDE工具(如MyEclipse等)都內置了校驗工具,自動進行校驗。)
IE5以上瀏覽器內置了XML解析工具:Microsort.XMLDOM,開發人員能夠編寫javascript代碼,利用這個解析工具裝載xml文件,並對xml文件進行dtd驗證。
(1)建立xml文檔解析器對象
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
(2)開啓xml校驗
xmldoc.validateOnParse = "true";
(3)裝載xml文檔
xmldoc.load("book.xml");
(4)獲取錯誤信息
xmldoc.parseError.reason;
xmldoc.parseError.line
三、添加DTD約束的兩種方式
a. 內置DTD約束——在XML文件內編寫 ;
語法:<!DOCTYPE 文檔根結點 [
約束內容。。。
]>
b. 引用DTD約束——做爲一個單獨的文件編寫 ;
四、在Xml文件內編寫DTD約束
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE 書架 [
<!ELEMENT 書架 (書+)>
<!ELEMENT 書 (書名,做者,售價)>
<!ELEMENT 書名 (#PCDATA)>
<!ELEMENT 做者 (#PCDATA)>
<!ELEMENT 售價 (#PCDATA)>
]>
<書架>
<書>
<書名>Java就業培訓教程</書名>
<做者>張孝祥</做者>
<售價>39.00元</售價>
</書>
...
</書架>
五、引用DTD約束
XML文件使用 DOCTYPE 聲明語句來指明它所遵循的DTD文件,DOCTYPE聲明語句有兩種形式:
(1)當引用的文件在本地時,採用以下方式:
<!DOCTYPE 文檔根結點 SYSTEM "DTD文件的URL">
例如: <!DOCTYPE 書架 SYSTEM 「book.dtd」>。
(2)當引用的文件是一個公共的文件時,採用以下方式:
<!DOCTYPE 文檔根結點 PUBLIC "DTD名稱" "DTD文件的URL">
例如:<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" -----//這是 "DTD名稱"
"http://java.sun.com/dtd/web-app_2_3.dtd"> -----//這是 "DTD文件的URL"
六、DTD約束語法細節
a. 元素定義
b. 屬性定義
c. 實體定義
七、DTD 的語法細節- 元素定義
(1)在DTD文檔中使用ELEMENT聲明一個XML元素,語法格式以下所示:
eg:<!ELEMENT 元素名稱 元素類型>
(2)元素類型能夠是:「元素內容」 或 「類型」 兩種狀況:
a. 如爲 元素內容:則須要使用()括起來,如
<!ELEMENT 書架 (書名,做者,售價)>
<!ELEMENT 書名 (#PCDATA)>
b. 如爲 類型,則直接書寫,DTD規範定義了以下幾種類型:
i. EMPTY:用於定義空元素,例如<br/> <hr/>
ii. ANY:表示元素內容爲任意類型。
【備註:也就是說 元素的類型位置可填寫三種值: <!ELEMENT 元素名 (元素內容)|EMPTY|ANY 】
(3)元素內容中可使用以下方式,描述內容的組成關係
a. 用「,」分隔,表示內容的出現順序必須與聲明時一致。
eg:<!ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)>
b. 用 「|」分隔,表示任選其一,即多個只能出現一個
eg:<!ELEMENT MYFILE (TITLE|AUTHOR|EMAIL)>
(4)在元素內容中也可使用+、*、?等符號表示元素出現的次數:
+: 一次或屢次 (書+)
?: 0次或一次 (書?)
*: 0次或屢次 (書*)
(5)使用圓括號( )批量設置,
例: <!ELEMENT MYFILE ((TITLE*, AUTHOR?, EMAIL)* | COMMENT)>
八、DTD 的語法細節- 屬性定義
(1)Xml文檔中的標籤屬性需經過ATTLIST爲其設置屬性
語法格式:
<!ATTLIST 元素名
屬性名1 屬性值類型 設置說明
屬性名2 屬性值類型 設置說明
……
>
Demo:
屬性聲明舉例:
<!ATTLIST 商品
類別 CDATA #REQUIRED
顏色 CDATA #IMPLIED
>
對應XML文件:
<商品 類別="服裝" 顏色="黃色">…</商品>
<商品 類別="服裝">…</商品>
(2)經常使用屬性值類型
a. CDATA:表示屬性值爲普通文本字符串。
b. ENUMERATED
c. ID
d. ENTITY(實體)
(3)屬性值類型-ENUMERATED
屬性的類型能夠是一組取值的列表,在 XML 文件中設置的屬性值只能是這個列表中的某個值(枚舉)
Demo樣例:
<?xml version = "1.0" encoding="GB2312" standalone="yes"?>
<!DOCTYPE 購物籃 [
<!ELEMENT 肉 EMPTY>
<!ATTLIST 肉 品種 ( 雞肉 | 牛肉 | 豬肉 | 魚肉 ) "雞肉">
]>
<購物籃>
<肉 品種="魚肉"/>
<肉 品種="牛肉"/>
<肉/> ---//備註:此處隱含默認屬性值:「雞肉」
</購物籃>
(4)屬性值類型- ID
a. 表示屬性的設置值爲一個惟一值。
b. ID 屬性的值只能由字母,下劃線開始,不能出現空白字符。
【備註:開發時,建議ID的值「字母+數字」的形式出現,絕對不能單獨出現數字開頭的形式。】
Demo樣例:
<?xml version = "1.0" encoding="GB2312" ?>
<!DOCTYPE 聯繫人列表[
<!ELEMENT 聯繫人列表 ANY>
<!ELEMENT 聯繫人(姓名,EMAIL)>
<!ELEMENT 姓名(#PCDATA)>
<!ELEMENT EMAIL(#PCDATA)>
<!ATTLIST 聯繫人 編號 ID #REQUIRED>
]>
<聯繫人列表>
<聯繫人 編號="1">
<姓名>張三</姓名>
<EMAIL>zhang@163.com</EMAIL>
</聯繫人>
<聯繫人 編號="2">
<姓名>李四</姓名>
<EMAIL>li@163.com</EMAIL>
</聯繫人>
</聯繫人列表>
(5)"設置說明"可賦值 的類型:
a. #REQUIRED:必須設置該屬性
b. #IMPLIED:能夠設置也能夠不設置
c. #FIXED:說明該屬性的取值固定爲一個值,在 XML 文件中不能爲該屬性設置其它值。但須要爲該屬性提供這個值。
d. 默認值:在 XML 中能夠設置該值也能夠不設置該屬性值。若沒設置則使用默認值。
Demo舉例:
<!ATTLIST 頁面做者
姓名 CDATA #IMPLIED
年齡 CDATA #IMPLIED
聯繫信息 CDATA #REQUIRED
網站職務 CDATA #FIXED "頁面做者"
我的愛好 CDATA "上網"
>
九、DTD 的語法細節- 實體定義
概念:實體用於爲一段內容建立一個別名,之後在XML文檔中就可使用別名引用這段內容了。
語法:在DTD定義中,一條<!ENTITY …>語句用於定義一個實體。
類型:實體可分爲兩種類型:引用實體和參數實體。
(1)實體定義-引用實體
引用實體主要在 XML 文檔中被應用
a. 語法格式:
<!ENTITY 實體名稱 「實體內容」 >:直接轉變成實體內容
b. 引用方式: &實體名稱;
Demo舉例:
<!ENTITY copyright 「I am a programmer">
……
©right;
(2)實體定義- 參數實體
參數實體被 DTD 文件自身使用
a. 語法格式:
<!ENTITY % 實體名稱 "實體內容" >
b. 引用方式: %實體名稱;
Demo舉例1:
<!ENTITY % TAG_NAMES "姓名 | EMAIL | 電話 | 地址">
<!ELEMENT 我的信息 (%TAG_NAMES; | 生日)>
<!ELEMENT 客戶信息 (%TAG_NAMES; | 公司名)>
Demo舉例2:
<!ENTITY % common.attributes
" id ID #IMPLIED
account CDATA #REQUIRED "
>
...
<!ATTLIST purchaseOrder %common.attributes;>
<!ATTLIST item %common.attributes;>
十、附件資料下載
請下載附件資料DTD.chm 進行學習。尤爲是在開發中須要查詢也很方便。