python生成xml時規定dtd例項方法
阿新 • • 發佈:2020-09-21
一、DTD文件的宣告及引用
1.內部DTD文件
<!DOCTYPE根元素[定義內容]>
2.外部DTD文件
引入外部的DTD文件分為兩種:
(1)當引用的DTD檔案是本地檔案的時候,用SYSTEM標識,並寫上”DTD的檔案路徑”,如下:
<!DOCTYPE根元素SYSTEM"DTD檔案路徑">
(2)如果引用的DTD檔案是一個公共的檔案時,採用PUBLIC標識,如下方式:
<!DOCTYPE根元素PUBLIC"DTD名稱""DTD檔案的URL">
比如下例:
<!DOCTYPEweb-appPUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN""http://java.sun.com/dtd/ web-app_2_3.dtd">
二、DTD基本語法:
<!ELEMENTNAMECONTENT>
其中:
- ELEMENT是關鍵字,是不能修改的
- NAME表示元素名稱
- CONTENT是元素型別,必須要大寫!CONTENT的內容有三種寫法:
(1)EMPTY——表示該元素不能包含子元素和文字,但可以有屬性。
(2)ANY——表示該元素可以包含任何在該DTD中定義的元素內容
(3)#PCDATA——可以包含任何字元資料,但是不能在其中包含任何子元素
三、DTD元素的組合型別:
DTD中這樣規定:
<!ELEMENT家庭(人+,家電*)>
這個DTD規定了家庭元素中可以有1到多個”人”這個子元素,也可以有0到多個”家電”這個子元素。其中的加號”+”和星號”*”的含義與正則表示式中的含義一致。
XML這樣寫:
<家庭> <人名字="張曉明"性別="男"年齡="25"/> <人名字="李小鋼"性別="男"年齡="36"愛好="作個教育家和偉人"/> <家電名稱="彩電"數量="3"/> </家庭>
關於組合型別,有下述的的修飾符可以使用:
四、屬性定義
DTD中屬性的定義是這樣的:
<!ATTLIST元素名稱 屬性名稱型別屬性特點 屬性名稱型別屬性特點...... >
其中,屬性的型別有下面5種:
(1)CDATA (2)ID (3)IDREF/IDREFS (4)Enumerated (5)ENTITY/ENTITIES
屬性的特點有如下4種:
(1)#REQUIRED,表示這個屬性必須給,不給就報錯 (2)#IMPLIED,表示這個屬性可以給也可以不給 (3)#FIXEDvalue,表示這個屬性必須給一個固定的value值 (4)Defaultvalue,表示這個屬性如果沒有值,就分配一個預設的value值
到此這篇關於python生成xml時規定dtd例項方法的文章就介紹到這了,更多相關python 生成xml時如何規定dtd內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!