本文将通过以下章节讲解:
①DTD概念
②DTDDemo
③XML文档构建模块
④DTD元素描述
⑤DTD属性描述
⑥DTD实体描述
⑦DTD的现状和未来
⑧一些网络上的DTD范例
01
DTD概念DTD(DataTypeDefinition)是文档类型定义规范,可用于定义合法的XML文档构建模块,它使用一系列合法的元素来定义文档的结构,简言之,DTD就是约束XML文档中各个节点的规范。
DTD支持三种声明方式:
①声明于XML文件中。
!DOCTYPE根标签[标签声明]
②声明于本地,例如与xml文件同目录下,这样可以做到同一DTD文件被多个XML文件复用。
!DOCTYPE根标签SYSTEM"这里填文件名称,包含后缀dtd"
③声明于网络上
!DOCTYPE根标签PUBLIC"这里填文件名称,包含后缀dtd""这里填URL(通俗点就是网址)"
02
Demo
先通过一个视频简单介绍下DTD的作用
视频中,当打出""时,会有节点“book”的提示;当选中节点“book”后会默认生成“title”、“author”、“publisher”、“price”等四个子节点;以及“book”的属性“year”、“month”的提示,和“”属性的枚举值。这一切的智能提示归功于:
!DOCTYPElibrarySYSTEM"library.dtd"
这就是章节一中介绍的三种DTD声明方式中的声明于本地的方式,“library.dtd”文件位于“library.xml”同级目录下:
下面将两个文件的内容粘贴出来:
library.xml
?xmlversion="1.0"encoding="UTF-8"?!DOCTYPElibrarySYSTEM"library.dtd"librarybookyear=""month="4"title西游记/titleauthor吴承恩/authorpublisher中华书局/publisherprice50.5/price/bookbookyear=""month="9"title红楼梦/titleauthor曹雪芹/authorpublisher长江书局/publisherprice78/price/bookbookyear=""titledefault_book_name;/titleauthor罗贯中/authorpublisher中华书局/publisherprice78/price/book/library
library.dtd
!ELEMENTlibrary(book+)!ELEMENTbook(title,author,publisher,price)!ELEMENTtitle(#PCDATA)!ELEMENTauthor(#PCDATA)!ELEMENTpublisher(#PCDATA)!ELEMENTprice(#PCDATA)!ATTLISTbookyearCDATA#IMPLIED!ATTLISTbookmonth(1
2
3
4
5
6
7
8
9
10
11
12)!ENTITYdefault_book_name"三国演义"
03
XML文档构建模块
所有的XML文档(以及HTML文档)均由以下简单的构建模块构成:元素、属性、实体、PCDATA、CDATA。
元素
元素是XML以及HTML文档的主要构建模块。
HTML元素的例子是"body"和"table"。XML元素的例子是"note"和"message"。元素可包含文本、其他元素或者是空的。空的HTML元素的例子是"hr"、"br"以及"img"。
bodysometext/bodymessagesometext/message
属性
???????属性可提供有关元素的额外信息。
属性总是被置于某元素的开始标签中。属性总是以名称/值的形式成对出现的。下面的"img"元素拥有关于源文件的额外信息:???????
imgsrc="
最近更新
推荐文章