XML規(guī)范(3)--DTD限制

XML元素限制

DTD (Document Type Definition):文檔類型定義
DTD作用:可以通過 DTD 驗(yàn)證的XML是"合法"的 XML。


DTD語法格式

1. DTD元素限制

關(guān)鍵字:ELEMENT
語法格式:<!ELEMENT element-name (child-name)>

<!ELEMENT C (ssh)>   <!--此處指定在C節(jié)點(diǎn)下必須存在ssh元素節(jié)點(diǎn)且只能出現(xiàn)一次-->
<!ELEMENT C (ssh+)>  <!--此處指定在C節(jié)點(diǎn)下必須存在ssh元素節(jié)點(diǎn)且至少出現(xiàn)一次-->
<!ELEMENT C (ssh*)>  <!--此處指定在C節(jié)點(diǎn)下可存在ssh元素節(jié)點(diǎn)出現(xiàn)任意次數(shù)(包含0次)-->
<!ELEMENT C (ssh?)>  <!--此處指定在C節(jié)點(diǎn)下ssh元素節(jié)點(diǎn)不出現(xiàn)或者只出現(xiàn)一次-->
<!ELEMENT C (ssh|telnet)>  <!--此處指定在C節(jié)點(diǎn)下必定出現(xiàn)其中(ssh或telnet元素)-->
<!ELEMENT C (ssh,telnet)>  <!--此處指定在C節(jié)點(diǎn)下必定先出現(xiàn)ssh元素一次,再出現(xiàn)telnet元素一次-->
<!ELEMENT C (#PCDATA)> <!--此處指定在C節(jié)點(diǎn)下輸入字符數(shù)據(jù)->
符號 含義
PCDATA 被解析器解析的文本。這些文本將被解析器檢查實(shí)體以及標(biāo)記對于實(shí)體字符需要進(jìn)行替換
CDATA C不會(huì)被解析器解析的文本。在這些文本中的標(biāo)簽不會(huì)被當(dāng)作標(biāo)記來對待,其中的實(shí)體也不會(huì)被展開。
+ 出現(xiàn)一次或多次
* 出現(xiàn)任意次數(shù)
? 出現(xiàn)一次或不出現(xiàn)
, 指定出現(xiàn)順序

參考資料:DTD 元素

2. DTD屬性限制

關(guān)鍵字:ATTLIST
語法格式:<!ATTLIST element-name attribute-name attribute-type attribute-value>

<!ATTLIST C type CDATA "NTFS"><!---DTD限制(group1):NTFS是默認(rèn)值,type屬性未賦值時(shí)填入--> 
<C type="" /> </C><!---XML符合(group1)--> 
<C type="FAT32" /> </C><!---XML符合(group1)--> 
<!ATTLIST C type CDATA #REQUIRED><!---DTD限制(group2):type屬性必須賦值-->
<C type="" /> </C><!---XML不符合(group2)--> 
<C type="FAT32" /> </C><!---XML符合(group2)--> 
<!ATTLIST C type CDATA #IMPLIED><!---DTD限制(group3):type屬性可選-->
<C type="" /> </C><!---XML符合(group3)--> 
<C type="FAT32" /> </C><!---XML符合(group3)--> 
<C size="52GB" /> </C><!---XML符合(group3)--> 
 <!ATTLIST C type CDATA #FIXED "NTFS"> <!---DTD限制(group4):type屬性擁有固定的值,并不允許修改-->
<C type="FAT32" /> </C><!---XML不符合(group4)--> 
<C type="NTFS" /> </C><!---XML符合(group4)--> 
<!ATTLIST C type (NTFS|FAT16|FAT32) "NTFS"> <!---DTD限制(group5):type屬性枚舉值,默認(rèn)為NTFS-->
<C type="" /> </C><!---XML不符合(group5)--> 
<C type="FAT32" /> </C><!---XML符合(group5)--> 
<C type="NTFS" /> </C><!---XML符合(group5)--> 
符號 含義
CDATA 值為字符數(shù)據(jù)
(value1|value2|value3....) 此值是枚舉列表中的一個(gè)值
ID 值為唯一的 id
IDREF 值為另外一個(gè)元素的 id
ENTITY 值是一個(gè)實(shí)體
ENTITIES 值是一個(gè)實(shí)體列表
xml: 值是一個(gè)預(yù)定義的 XML 值

參考資料:DTD 屬性


第一篇:XML簡介(1)--頭部聲明
第二篇:XML編寫(2)--語法要求
第四篇:XML引用(4)--DTD應(yīng)用
第五篇:XXE基礎(chǔ)(1)--實(shí)體類別
第六篇:XXE利用(2)--漏洞實(shí)現(xiàn)
第七篇:XXE后記(3)--拋磚引玉

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容