DTD 与 XML

来源:互联网 发布:淘宝店怎么办营业执照 编辑:程序博客网 时间:2024/05/17 03:34
 
DTD

DTD 是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。

例:army.dtd

Code:
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!ELEMENT 部队 (战士+, 武器+)>  
  3. <!ELEMENT 战士 EMPTY>  
  4. <!ELEMENT 武器 (海, 陆, 空)>  
  5. <!ELEMENT 海 EMPTY>  
  6. <!ELEMENT 陆 EMPTY>  
  7. <!ELEMENT 空 EMPTY>  
  8. <!ATTLIST 战士   
  9.     编号 ID #REQUIRED   
  10.     姓名 CDATA #REQUIRED   
  11.     性别 (男 | 女) #REQUIRED   
  12.     领导 IDREF #REQUIRED   
  13. >  
  14. <!ATTLIST 海   
  15.     航母 CDATA #REQUIRED   
  16.     潜艇 CDATA #REQUIRED   
  17. >  
  18. <!ATTLIST 陆   
  19.     导弹 CDATA #REQUIRED   
  20. >  
  21. <!ATTLIST 空   
  22.     战机 CDATA #REQUIRED   
  23. >  

 

对应的写个引用此DTD的XML 文件

Code:
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE 部队 SYSTEM "F:/army.dtd">  
  3. <部队>  
  4.     <战士 编号="J001" 领导="J001" 性别="男" 姓名="公平"/>  
  5.     <战士 编号="J002" 领导="J001" 性别="女" 姓名="伟大"/>  
  6.     <武器>  
  7.         <海 航母="小鹰号" 潜艇="晋级"/>  
  8.         <陆 导弹="火星"/>  
  9.         <空 战机="歼十"/>  
  10.     </武器>  
  11. </部队>  

 

对其中的代码解释:

Code:
  1. <!ELEMENT 部队 (战士+, 武器+)>  
  2. ELEMENT :关键字,用来定义元素   
  3. NAME:元素名称   
  4. CONTENT:元素类型   
  5. 1)EMPTY 该元素不能包含子元素和文本,但可以有属性(空元素)   
  6. 2)ANY 该元素可以包含任何在DTD中定义的元素内容   
  7. 3)#PCDATA 可以包含任何字符数据,但是不能在其中包含任何子元素   
修饰符

符号
用途
示例
说明
()
用于给元素分组
(古龙|金庸)
 
在列出的对象中选择一个
(男人|女人)
 
该对象至少出现一次,可以出现多次
(成员+)
 
*
0到多次)
(爱好*
 
?
该对象可以出现,但只能出现一次(01此)
(菜鸟?)
 
对象必须按指定的顺序出现
(西瓜,苹果,香蕉)
 

属性的定义
语法:<!ATTLIST 元素名称
属性名称  类型   属性特点
类型 CDATA    ID    IDREF   IDREFS    ENUMERATED
属性特点 :    #requed       #implied        #fixed