一、DTD文檔的聲明及引用
1.內部DTD文檔
1
|
<!DOCTYPE 根元素 [定義內容]> |
2.外部DTD文檔
引入外部的DTD文檔分為兩種:
(1)當引用的DTD文件是本地文件的時候,用SYSTEM標識,并寫上”DTD的文件路徑”,如下:
1
|
<!DOCTYPE 根元素 SYSTEM "DTD文件路徑" > |
(2)如果引用的DTD文件是一個公共的文件時,采用PUBLIC標識,如下方式:
1
|
<!DOCTYPE 根元素 PUBLIC "DTD名稱" "DTD文件的URL" > |
比如下例:
1
2
|
<!DOCTYPE web - app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN" "http: / / java.sun.com / dtd / web - app_2_3.dtd"> |
二、DTD基本語法:
1
|
<!ELEMENT NAME CONTENT> |
其中:
- ELEMENT是關鍵字,是不能修改的
- NAME表示元素名稱
- CONTENT是元素類型,必須要大寫!CONTENT的內容有三種寫法:
(1)EMPTY——表示該元素不能包含子元素和文本,但可以有屬性。
(2)ANY——表示該元素可以包含任何在該DTD中定義的元素內容
(3)#PCDATA——可以包含任何字符數據,但是不能在其中包含任何子元素
三、DTD元素的組合類型:
DTD中這樣規定:
1
|
<!ELEMENT 家庭(人 + ,家電 * )> |
這個DTD規定了家庭元素中可以有1到多個”人”這個子元素,也可以有0到多個”家電”這個子元素。其中的加號”+”和星號”*”的含義與正則表達式中的含義一致。
XML這樣寫:
1
2
3
4
5
|
<家庭> <人 名字 = "張曉明" 性別 = "男" 年齡 = "25" / > <人 名字 = "李小鋼" 性別 = "男" 年齡 = "36" 愛好 = "作個教育家和偉人" / > <家電 名稱 = "彩電" 數量 = "3" / > < / 家庭> |
關于組合類型,有下述的的修飾符可以使用:
四、屬性定義
DTD中屬性的定義是這樣的:
1
2
3
4
|
<!ATTLIST 元素名稱 屬性名稱 類型 屬性特點 屬性名稱 類型 屬性特點...... > |
其中,屬性的類型有下面5種:
1
2
3
4
5
|
( 1 ) CDATA ( 2 ) ID ( 3 ) IDREF / IDREFS ( 4 ) Enumerated ( 5 ) ENTITY / ENTITIES |
屬性的特點有如下4種:
1
2
3
4
|
( 1 ) #REQUIRED,表示這個屬性必須給,不給就報錯 ( 2 ) #IMPLIED,表示這個屬性可以給也可以不給 ( 3 ) #FIXED value,表示這個屬性必須給一個固定的value值 ( 4 ) Default value,表示這個屬性如果沒有值,就分配一個默認的value值 |
到此這篇關于python生成xml時規定dtd實例方法的文章就介紹到這了,更多相關python 生成xml時如何規定dtd內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.py.cn/jishu/jichu/13298.html