DTD概述
DTD用来定义XML文档的结构,它包含一系列规则说明,以确保XML文档的一致性和有效性
DTD定义了XML文档可用的词汇(元素和属性的名称)和结构:
元素名称,包括根元素
元素的属性及属性的数据类型和取值方式
子元素的名称、顺序、出现次数
元素是否拥有子元素,是否能拥有文本内容,等等
可以用DTD验证XML文档
发现书写错误(命名错误)
检查结构和顺序
检查是否使用了规定的规范文档
DTD的引用
DTD可以是被XML引用的独立的外部文档,也可以嵌入到XML文档中
DTD文档是特殊格式的XML文档 例如,DTD文档student.dtd的内容如下:
嵌入的DTD
外部DTD-SYSTEM
在XML文档中声明使用外部DTD文档 <!DOCTYPE 根元素名称 SYSTEM “DTD文档URL”>
例如,XML文档student.xml的内容如下:
外部DTD-PUBLIC
在XML文档中声明使用公共DTD文档 <!DOCTYPE 根元素名称 PUBLIC “公共标识符” “URI” 公共标识符的格式为: 标准//作者//类型和版本//语言 例如,XML文档student.xml的内容如下:
元素Element
ANY:内容中可包含子元素
格式:<!ELEMENT 元素名称 ANY>
示例:<段落>使用<关键词>XML</关键词>技术</段落>
EMPTY:不能包含任何内容
格式:<!ELEMENT 元素名称 EMPTY>
示例:<paper color=“red”/>
#PCDATA:不能包含子元素
格式:<!ELEMENT 元素名称 (#PCDATA)>
示例:<book author=“Black”>C Language</book>
子元素的顺序和出现频率
<!ELEMENT 元素名称 (子元素名称[修饰符][,…])>
其中,修饰符为:
省略:必须出现,且只能出现1次
+:至少出现1次
?:最多出现1次
*:可以不出现,也可以出现多次
示例:<!ELEMENT cpu (厂商,型号+,工艺?,价格*)>
子元素的选择
<!ELEMENT 元素名称 (子元素[|子元素]…]) >
示例: <!ELEMENT 电话 (座机|手机)>
属性列表ATTLIST
ATTLIST定义元素的属性的名称、类型和默认值,可以限制出现次数但不能限制出现顺序
语法:<!ATTLIST 元素名称 属性1名称 属性类型 属性值声明 属性2名称 属性类型 属性值声明 ……>
属性类型
CDATA:一般文本
ID:具有ID属性值,不能重复(唯一性)
IDREF:对ID属性值的引用
IDREFS:对ID属性值列表的引用(用空白分割)
ENTITY:引用未解析的外部实体
ENTITIES:引用ENTITY列表(用空白分割)
NMTOKEN:包含一个有效的XML名称
NMTOKENS:NMTOKEN列表
(属性值[[|属性值]…]):属性为NMTOKEN类型,只能取列表中的值
NOTATION (属性值[[|属性值]…]):属性为NOTATION(已定义的),取值任选其一
属性值说明
#REQUIRED:该属性必须出现
#IMPLIED:该属性是可选的
“默认值”:属性是可选的;若不出现,在验证文档后,元素将隐含该属性,取默认值
#FIXED “固定值”:属性是可选的;若出现,属性值必须取固定值;若不出现,则验证后自动隐含该固定值
例如:
xml
示例二
xml
注记notation
XML文档可以包含非XML数据(不能由解析器直接处理),例如图像、声音等,需要告知解析器如何调用外部程序处理这些数据,否则就会出错。
NOTATION将非XML数据描述为一种能够被外部程序处理的形式
格式:<!NOTATION 名称 SYSTEM “系统标识符”>
例如:<!NOTATION jpg SYSTEM “image/jpeg”>
notation实例
实体ENTITY
逻辑上,一个XML文档只有一个根元素,根元素包含所有子元素和内容。但XML文档中可以引用来自其他文档(文件)中的数据(内容),这就是实体。例如,可以将论文标题定义为实体,就可以在文中多次引用,而不必重复输入,也便于修改标题。
实体存储的内容有形式规范的XML、其他形式的文本或二进制数据。实体可以是文件、数据记录或任何包含数据的项目。除了文档实体外,多数实体都有名称。
实体定义在DTD中,在与该DTD关联的XML文档中通过实体引用使用这些实体,XML解析器会在解析标记时,用实体的内容替换实体引用。
普通实体
内部普通实体
<!ENTITY 实体名称 “实体内容”>
例如,<!ENTITY UPC “中国石油大学”>
外部普通实体
<!ENTITY 实体名称 SYSTEM “URI”>
例如,<!ENTITY UPC SYSTEM “/XML/upc.xml”>
<!ENTITY 实体名称 PUBLIC FPI “URI”>
其中,FPI是经认可的全球唯一的公共标识符,形如“前缀//使用者标识//文本类//文本描述//语言”
例如,<!ENTITY hello PUBLIC “-//ISO9//me//Hello//EN” “/xml/hello.xml”>
book_intro.xml文档
未解析实体
外部未解析实体可以将非XML文档数据引入XML文档进行处理
引入XMl文档
<!ENTITY 名称 SYSTEM “URI”>
URI对应XML文档
引入非XML文档
<!ENTITY 名称 SYSTEM “URI” NDATA 类型声明>
类型声明用于描述文档类型
分享到:
相关推荐
a) DTD是Document Type Defintion的缩写,即文档类型定义。DTD用来描述XML文档的结构。 二、 DTD可能包含的内容: a) 元素的定义规则。 b) 元素之间的关系规则。 c) 属性的定义规则。 三、 DTD的作用: a) DTD使每个...
XML文档类型定义(DTD)是XML文档结构的重要组成部分,它为XML文档设定了规范和约束,确保了数据的准确性和一致性。本教程旨在深入讲解DTD的概念、编写方式、使用方法,以及它与XML Schema的区别和联系。 XML的核心...
- **外部DTD**:定义在独立的DTD文件中,XML文档通过文档类型声明引用该文件。适用于大型或复杂的文档结构,便于复用和维护。 **内部DTD与外部DTD的联合使用** 在实际应用中,通常结合使用内部DTD和外部DTD,以实现...
XML文档类型定义(DTD,Document Type Definition)是XML语言中用于规范和验证XML文档结构的一种方式。DTD通过定义文档元素、属性、实体等规则,确保XML文档的数据正确性和有效性,从而保证了信息交换的准确无误。 ...
1. DTD(Document Type Definition)的定义:DTD是用于定义XML文档结构和约束的文档类型定义语言。它可以用来定义XML元素、属性、实体等的结构和约束。 2. DTD的引用:DTD可以被引用到XML文档中,以便对XML文档进行...
2. **外部DTD**:将DTD定义放在一个独立的文件中,然后在XML文档中通过`SYSTEM`关键字引用。例如: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE document SYSTEM "document.dtd"> ... ``` ...
testng使用的testng.xml文档的文档类型定义文件,可用于核对xml文件的文档结构及合法元素
在XML(可扩展标记语言)文档中,DTD(文档类型定义)是一种重要的元数据,用于定义文档结构和元素规则。DTD允许我们规范XML文件的结构,确保数据的准确性和一致性。本文将深入探讨如何通过外部DTD将DTD文件与XML...
- **外部DTD**:DTD作为单独的文件存在,并通过XML文档中的DOCTYPE声明来引用。适用于大型项目或多个文档共享相同的DTD规则的情况。 #### 五、DTD的声明 DTD声明总是以`<!DOCTYPE>`开头,后跟根元素的名称。内部...
**DTD(Document Type Definition,文档类型定义)**是一种用于验证 XML 文档结构的技术。它通过定义一组规则来确保 XML 文档中的元素、属性等按照既定的方式进行组织。DTD 的存在确保了 XML 文档的一致性和准确性。...
**DTD(Document Type Definition)** 是XML(Extensible Markup Language)文档类型定义的缩写,它是XML规范的一部分,用于定义XML文档的结构和元素。在XML文档中,DTD的作用是确保文档内容遵循预设的规则,即所有...
1. 定义DTD是为了规范XML文档的结构,确保数据的准确性和一致性,方便数据交换和处理,同时也便于软件对XML文档的解析和验证。 2. DTD本身不符合XML语法意味着它不能作为XML文档的一部分直接解析。这限制了其在某些...
通过定义元素类型、属性和实体,DTD确保XML文档遵循一定的规则,从而提高数据的可读性和一致性。 二、内部DTD 内部DTD是直接包含在XML文档中的DTD定义。这种方式适用于小型、简单的文档结构,因为它将文档结构和...
- **DTD (Document Type Definition)**: 文档类型定义,是用来定义XML文档结构的一种方式。DTD定义了哪些元素可以出现在文档中,以及它们应该如何排列。DTD对于确保XML文档的结构正确性和一致性非常重要。 #### 二...
XML DTD(文档类型定义)是较早出现的规范,而XML Schema则在2001年成为W3C的正式推荐标准,旨在提供更强大和灵活的XML文档验证功能。 首先,XML Schema在格式上与XML保持一致,这意味着XML Schema本身就是XML文档...
接下来是DTD(Document Type Definition),它是XML文档类型定义,用来规定XML文档的合法结构和元素。DTD通过一系列的元素声明、属性声明和实体定义,确保XML文档遵循特定的规则。例如,它可以定义元素是否可以嵌套...
在XML(可扩展标记语言)中,文档类型定义(DTD,Document Type Definition)是用于规范XML文档结构的一种机制。DTD定义了文档的逻辑结构,包括元素、属性、实体以及它们之间的关系,确保XML文档遵循一定的规则,...
标题"DTD.rar_dtd_java dtd_xml dtd"暗示了这是一个与XML文档类型定义(DTD)相关的Java程序,可能包含了用于验证XML文档是否符合DTD规范的代码。"rar"表明这个资源是以RAR格式压缩的文件,通常包含多个相关文件。 ...
在XML中,DTD(Document Type Definition)是用来定义XML文档结构和元素规则的规范,它允许我们声明元素类型、元素间的约束以及属性等,确保XML文档的数据结构正确无误。 本堂实践课的主题是“XML文档引用外部DTD”...