可扩展标记语言XML,文档定义类型DTD

1 篇文章 0 订阅
1.DTD简介
DTD是Document Type Definition 的缩写,即文档类型定义。D
TD用来描述XML文档的结构。

一个DTD文档可能包含如以下内容:
      • 元素的定义规则
      • 元素之间的关系规则
      • 属性的定义规则
DTD的作用如下:
      • DTD使每个XML文件可以携带一个自身格式的描述。
      • DTD使不同组织的人可以使用一个通用DTD来交换数据。
      • DTD使应用程序可以使用一个标准DTD校验从外部接收的XML数据是否有效。


2.声明DTD
声明DTD的语法如下:

	<!DOCTYPE 根元素 [定义内容]>

在语法中DOCTYPE是关键字。例如下面的示例XML文件中使用了D
TD声明:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE poem [
<!ELEMENT poem (author, title, content)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT content (#PCDATA)>
]>
<poem>
	<author>王维</author>
	<title>鹿柴</title>
	<content>空山不见人,但闻人语声。返景入深林,复照青苔上。</content>
</poem>

3.使用外部DTD验证

 
前面我们把DTD嵌入XML文件中用于验证描述诗集的XML,这称为内部DTD文档。当验证的XM
L文件较多,或者待验证的XML文件格式较复杂时,这种方式就不太合适了。这是可以把DT
D存储在独立的文件中。存储DTD文件一般以.dtd作为文件的扩展名。

引用外部DTD文档的语法如下:

<!DOCTYPE 根元素 SYSTEM "DTD文件路径">

在语法中DOCTYPE,SYSTEM是关键字。使用外部DTD验证描述
诗集的XML,则代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE poem SYSTEM "文件名.dtd">
<poem>
	<author>王维</author>
	<title>鹿柴</title>
	<content>空山不见人,但闻人语声。返景入深林,复照青苔上。</content>
</poem>


在以上代码中,<!DOCTYPE poems SYSTEM "文件名.dtd">表示引用了外部的DTD文档。



引用的DTD文档的代码如下:


<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT poem (author, title, content)>

<!ELEMENT author (#PCDATA)>

<!ELEMENT title (#PCDATA)>

<!ELEMENT content (#PCDATA)>



4.DTD元素
DTD元素的定义语法如下:

<!ELEMENT NAME CONTENT>

在语法中:
    
    
    • ELEMENT 是关键字。
    • NAME 是元素名称。
    • CONTENT 是元素类型
常用的元素类型如下:
   
   
  • #PCDATA ,可以包含任何字符数据,但是不能在其中包含任何子元素,例如以下:
<!ELEMENT title (#PCDATA)>

纯元素类型,只包含子元素,并且这些子元素外

没有文本,例如以下:


<!ELEMENT poems (poem*)>




5.DTD元素中某些符号的用途








6.DTD属性


在DTD中声明属性时,需要使用ATTLIST来进行声明。DTD

声明属性的语法如下:


<ATTLIST 元素名称 属性名称 属性类型 属性默认值>



DTD元素中属性类型的描述










DTD元素中属性值的描述














本文为个人原创,转载请注明出处,谢谢!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值