一。简介
DTD 指定:可以在文档中存在的元素、那些元素可以具有的属性、在元素内部元素的层次结构以及元素在整个文档中出现的顺序。
虽然 DTD 不是必需的,但它们确实带来方便。DTD 适合三个基本用途。它能:
- 对标记编制文档
- 加强标记参数内部的一致性
- 使 XML 语法分析器能够确认文档
二。DTD的一个例子
以下面这个xml为例:
- <?xml version="1.0" encoding="UTF-8"?>
- <books>
- <book show="yes">
- <title>Dom4j Tutorials</title>
- </book>
- <book show="yes">
- <title>Lucene Studing</title>
- </book>
- <book show="no">
- <title>Lucene in Action</title>
- </book>
- <owner>O'Reilly</owner>
- </books>
在xml文件中加入验证声明,如下(以book.dtd作为验证文件)
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE books PUBLIC "//UNKNOWN/" "book.dtd">
- <books>
- <book show="yes">
- <title>Dom4j Tutorials</title>
- </book>
- <book show="yes">
- <title>Lucene Studing</title>
- </book>
- <book show="no">
- <title>Lucene in Action</title>
- </book>
- <owner>O'Reilly</owner>
- </books>
编写book.dtd如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <!ELEMENT books (book*,owner)>
- <!ELEMENT book (title)>
- <!ATTLIST book
- show CDATA #REQUIRED
- >
- <!ELEMENT title (#PCDATA)>
- <!ELEMENT owner (#PCDATA)>
这个时候如果在book.xml中将owner元素挪到book元素下面,验证就会报错:)
三。语法详解(book.dtd):
1.<!ELEMENT books (book*,owner)>
1)作用:声明了根元素books,并且其中可以包含0--n个book元素,有且只有一个owner元素。
2)其中用到的符号含义如下:
符号 |
代表标记出现的次数 |
? |
不出现或只出现一次 |
* |
不出现或可出现多次 |
+ |
必须出现一次以上 |
无符号 |
只能出现一次 |
3)其他例子:(假设A、B、C 和 D 是在下例中代表元素的变量。)
元素必须有正好一个 A
、至少一个 B
(由加号表示)、零个或多个 C
(由星号表示)以及零个或一个 D
(由问号表示):
<!ELEMENT element (A, B+, C*, D?)>
|
元素可能有 A
或 B
或 C
之一:
<!ELEMENT element (A | B | C)>
|
元素不包含任何内容:
元素可以包含在 DTD 中列出的任何元素:
元素可能包含经过语法分析的字符数据或另一个元素( element2
)。星号(*)表示混合内容模型 — 其中元素可以包含不同类型的属性。
<!ELEMENT element (#PCDATA|element2)*>
|
2.<!ATTLIST book
show CDATA #REQUIRED
>
1)作用:声明了book元素下的属性列表。 show属性必须出现
2)用到的符号:
属性内定值 |
描述 |
#required |
表示在标记中必须出现此属性。 |
#implied |
标记中可以不出现此属性。 |
#fix |
属性的值是固定的某个值。 |
字符串 |
标记中如没有指定属性的值,那么此字符串就是此属性的值。 |
3)其他例子
下例表明其元素是一个包含三个属性的空标记:属性 1( att1
)是一个可选属性,属性 2( att2
)是带有固定值 "A"
的属性,属性 3( att3
)是必需的文本属性。
<!ELEMENT element EMPTY>
<!ATTLIST element
att1 ID #IMPLIED
att2 CDATA #FIXED "A"
att3 CDATA #REQUIRED>
|
可以看到在 XML 文档中使用的这个元素如下:
<element att2="A" att3="MustHave"/>
|
属性 CDATA
表示包括的信息应该是文本。 ID
属性表明必须填入唯一的标识。每个元素只能有一个 ID
属性。另外, CDATA
表示 att2
和 att3
可能包含任何字符串。
3.更多的属性字段:
属性值类别 |
描述 |
cdata |
属性值仅仅是一般的文字。 |
enumerated |
列出该属性的取值范围,一次只能有一个属性值能够赋予属性。 |
nmtoken |
表示属性值只能由字母、数字、下划线、.、:、-这些符号组成。 |
nmtokens |
表示属性值能够由多个nmtoken组成,每个nmtoken之间用空格隔开。 |
id |
该属性在xml文件中是唯一的,常用来表示人的身份证号码。 |
idref |
表示该属性值是参考了另一个id属性。 |
idrefs |
表示该属性值是参考了多个id属性,这些id属性的值用空格隔开。 |
entity |
表示该属性的设定值是一个外部的entity,如一个图片文件。 |
entities |
该属性值包含了多个外部entity,不同的entity之间用空格隔开。 |
notation |
属性值是在dtd中声明过的notation(声明用什么应用软件解读某些二进制文件,如图片)。 |
分享到:
相关推荐
本文将深入探讨与“sql-map-2.dtd”和“sql-map-config-2.dtd”相关的知识点,以及它们在Ibatis中的作用。 Ibatis是一个轻量级的ORM(对象关系映射)框架,它允许开发者将SQL语句直接写在配置文件中,通过XML映射...
在XML-DTD文件配置中,我们主要涉及以下几个关键知识点: 1. **XML文档结构**:每个XML文档都由一系列元素组成,这些元素按照层次结构排列。DTD用于规定这些元素的顺序、嵌套关系以及它们的属性。 2. **元素声明**...
2. tv-.xml和tv-.dtd:这两个文件展示了如何使用DTD来定义XML文档的结构和约束,并使用DTD来验证XML文档的有效性。 3. poems.xml和.dtd:这两个文件展示了如何使用DTD来定义XML文档的结构和约束,并使用DTD来验证...
以下是关于XML在留言板应用中的相关知识点: 1. XML基础: - XML语法:XML文档由元素、属性、文本节点等组成,遵循严格的规则,如元素必须有关闭标签,属性值需加引号等。 - XML文档结构:XML文档通常包含声明(`...
2. **XML文档结构**:XML文档由元素(Element)、属性(Attribute)、文本内容(Text)等组成,每个文档必须有一个根元素,元素通过开始标签和结束标签定义,如`内容</element>`。 3. **命名规则**:XML的元素和...
3. **DTD和XML Schema**:XML文档可以使用DTD(Document Type Definition)或XML Schema定义其结构和数据类型。XML-conformance-suite会测试解析器是否能正确解析和验证基于这些规范的XML文档。 4. **处理指令...
在实际应用中,为了确保XML解析的正确性,开发者需要编写单元测试,并利用XML Schema(XSD)或DTD(文档类型定义)来验证XML文档的结构是否符合规范。 10. **社区支持与更新**: 作为Apache项目,xml-commons-...
1. **XML基础**:了解XML的基本语法,如元素、属性、文本内容、命名空间和DTD(Document Type Definition)或XSD(XML Schema Definition)验证。 2. **解析XML**:学习DOM、SAX和StAX等解析器的工作原理,它们分别...
本资料大全将深入浅出地介绍XML的基础知识,为初学者提供宝贵的入门资源。 1. XML的基本概念: - XML文档结构:XML文档由元素、属性、文本、注释等构成,其中元素是XML的核心,用于封装数据。 - 声明:每个XML...
总的来说,这些文件涵盖了XML的基础知识,如XML结构、DTD的使用、XSLT转换以及DOM解析,同时也涉及到XML Schema这一高级验证工具。通过学习这些资料,你将能够有效地创建、验证和处理XML文档,以及进行数据的格式...
XML,全称是eXtensible Markup Language,是一种可扩展的标记语言,设计用来传输和存储数据,而非用于显示...这些知识对于理解和处理XML文档至关重要,无论是简单的数据存储还是复杂的系统集成,XML都扮演着关键角色。
2. **命名规则**:XML元素、属性和命名空间的名称都遵循特定的规则,比如名称必须以字母或下划线开头,且不能包含空格和某些特殊字符。 3. **属性**:元素可以有零个或多个属性,属性提供了额外的信息,如`...
这个“XML课件--适合初学者”压缩包显然是一份面向初学者的学习资源,包含课件、习题和源代码,旨在帮助新手理解并掌握XML的基础知识。 课件部分: 课件通常会涵盖XML的基本概念,如XML的定义、语法规范以及其与...
- 文档类型声明(Document Type Declaration, DTD)或XML Schema - 元素(Element) - 属性(Attribute) - 文本节点(Text Node) ### 三、XML Schema概述 #### 3.1 什么是XML Schema XML Schema是一种用于定义...
在 MyBatis 中,DTD(Document Type Definition)文件起着至关重要的作用,用于定义 XML 配置文件的结构和规则。在本案例中,我们重点关注两个 DTD 文件:`mybatis-3-config.dtd` 和 `mybatis-3-mapper.dtd`。 `...
2. DTD详解:DTD用于定义XML文档的结构,包括元素类型、元素间的约束关系、属性列表等。通过学习如何编写和使用DTD,开发者可以确保XML文档符合预设的规范,便于数据的验证和交换。 3. HTML与XML的结合:HTML通常...
### XMLSpy2005知识点解析 #### 一、XMLSpy简介 XMLSpy是一款由Altova公司开发的强大XML编辑器及开发工具。该工具旨在帮助开发者高效地创建、编辑、浏览以及转换XML文档和其他相关技术文件(如XSLT、XML Schema等...
2. **DTD(文档类型定义)**:DTD是XML的一部分,用于定义XML文档的结构和元素。它通过声明元素、属性、实体和注释等来规定文档的合法结构。DTD可以是内部的(包含在XML文档中)或外部的(作为单独的文件引用)。 3...
### XML 入门教程知识点详解 #### 一、XML简介 **XML**(eXtensible Markup Language)是一种标记语言,它的出现改变了数据处理的方式。1998年2月,XML首次进入软件工业界,迅速成为了行业内的焦点。XML不仅为网络...
XML,全称可扩展标记...通过学习《无废话XML》这样的书籍,你可以掌握XML的基础知识,理解如何创建、解析和验证XML文档,以及如何利用XML进行数据交换。这将对从事Web开发、数据处理、系统集成等领域的工作大有裨益。