`
hanlu0221
  • 浏览: 14252 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

XML文档约束之——文档类型定义DTD

    博客分类:
  • XML
阅读更多

文档类型定义(DTD):是一种将约束置于XML文档上的方法。

一个DTD例子

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE games[
<!ELEMENT games (game*)>
<!ELEMENT game (#PCDATE)>
]>
<games>
  <game> i am lulu </game>
</games>



1.这个DTD有两个元素类型声明,由<!ELEMENT>指定。
2.DTD可以用来描述元素、每个元素包含几个子元素、元素在文档中的次序。
3.DTD还能够为元素的属性提供约束信息
4.但是,DTD不是必须的,只是为了XML指定约束时,提供的标准机制。




简述指定DTD语法

1.<!DOCTYPE>来指定XML文档使用的DTD
例:
<!DOCTYPE root SYSTEM "uri">

其中,
root来知道该DTD属于哪个文档,即必须与“根元素”匹配;
SYSTEM来表明此DTD是私有的,一般用于外部的DTD;
uri当使用外部DTD时,来指定其位置。


2.外部的DTD
即DTD的相关内容在XML文本外
例:
a.可以是一个完整的URL:
<!DOCTYPE root SYSTEM "http://www.xmlgames.com.games.dtd">

b.如果XML文档和DTD在同一个物理位置,那也可以是一个简单的文件名:
<!DOCTYPE root SYSTEM "games.dtd">


3.内部的DTD
即之前的第一个小例子

4. 元素声明
元素声明包括:声明的起始标记、声明的元素名称、指定元素的内容(可指定为EMPTY,ANY,Mixed,children)

<!ELEMENT games EMPTY>
表明元素的内容可以为空或者不包含任何值.

<!ELEMENT games ANY>
表明元素可以编写为包含普通的元素和字符数据.

<!ELEMENT game (game,#PCDATE)>
Mixed不是一个真正的值,可以表示该元素包含已经解析的字符数据和子元素;
其中,#PCDATE表示该元素必须包含“字符数据的子元素”;
Mixed不能指定子元素的顺序和出现次数.

<!ELEMENT games (game1,game2)>
children不是一个真正的值,表明该元素包含子元素并且为其指定了名称和出现次序.

<?xml version="1.0" encoding="UTF-8"?>
<games>
  <game>
     <game1/>
     <game2/>
  </game>
</games>



<!ELEMENT games (game1 | game2)>  

<?xml version="1.0" encoding="UTF-8"?>
<games>
  <game>
     <game1/>
     </game>
</games>



<!ELEMENT games (#PCDATE)>

<?xml version="1.0" encoding="UTF-8"?>
<games>
  <game>
     i am lulu
  </game>
</games>



5.元素的出现次数
无   子元素只能出现一次
?   子元素出现0次或1次
*   子元素出现0次或多次
+   子元素出现1次或多次

例:
<!ELEMENT games (game*)>中game元素可以出现0次或者多次

6.元素的出现顺序
(,)表示元素按指定顺序出现
(|)表示可以按任意顺序出现,并且只有一个是必需的

7.属性列表声明
<!ATTLIST 元素名 属性名 类型  默认值>
a.类型:一般是CDATA,代表不是标记的字符数据
b.默认值:#REQUIRED(属性是必需的,且只有一个值)
           #IMPLIED (属性不是必需的,且无值)
           #FIXED(属性是必需的,且有指定的值)

例:为元素game声明了两个属性name1和name2
<!ATTLIST game name1 CDATA  #REQUIRED
               name2 CDATA  #IMPLIED
               name3 CDATA  #FIXIED “lulu”>

 

分享到:
评论

相关推荐

    DTD约束 —— Xml文档 约束技术 学习笔记

    DTD约束是XML文档规范的一种方式,它允许我们定义元素、属性以及它们之间的关系,以实现对XML文档内容的有效控制。 DTD的主要组成部分包括: 1. 元素定义:在DTD中,每个元素都有一个唯一的名称,可以指定元素是否...

    Schama —— Xml文档约束技术 学习笔记

    **Schama —— XML文档约束技术 学习笔记** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、Web服务等场景。为了确保XML文档的数据结构正确、完整,避免数据错误,XML...

    xml实用技术教程—— 顾兵

    1. DTD(Document Type Definition):DTD是XML文档类型定义,用于规定文档结构和元素的约束。例如,通过&lt;!ELEMENT book (title, author, year) &gt;定义了`book`元素包含`title`、`author`和`year`三个子元素。 2. ...

    xml技术指南——————宝典

    - **XSD(XML Schema)**:更现代的替代DTD,提供了更强大的数据类型和约束定义能力。 - **XPath**:一种在XML文档中查找信息的语言,用于选取节点或节点集。 - **XSLT(Extensible Stylesheet Language ...

    C# XML入门经典——C#编程人员必备的XML技能(中文)

    XSD提供了更强大的数据类型和约束定义,而DTD则较为简单。 4. **C#中的XML操作**:在.NET框架中,有多种类库支持XML处理,如System.Xml命名空间下的XmlDocument、XPathDocument、XmlNodeReader等。这些类允许我们...

    网站建设——XML教程CHM

    3. 文档类型定义(DTD)或XML Schema:这些工具为XML文档提供了验证机制,确保数据符合预设的结构和规则。 4. 无关性:XML与任何特定的程序或硬件平台无关,这使得它可以在各种环境中广泛使用。 5. 可读性:XML文档...

    C# XML入门经典 —— C#编程人员必备的XML技能

    2. DTD与XML Schema:DTD(Document Type Definition)和XML Schema用于定义XML文档的结构和约束。DTD是较早的定义方式,而XML Schema提供更强大、更灵活的数据类型支持。 二、C#解析XML 1. XmlDocument类:C#中,...

    XML简单实例 XML简单实例

    首先,我们来看`saveit.dtd`文件,这是一个文档类型定义(DTD)。DTD是用来定义XML文档结构的规则集,它规定了元素的名称、属性以及元素间的相互关系。例如,DTD可以用来声明一个元素是否是其他元素的父元素,或者...

    ASP_NET XML高级编程——C#编程篇

    - XML文档类型定义(DTD)和XML Schema:理解它们如何为XML文档提供结构约束。 - DOM(Document Object Model):了解如何使用C#解析XML文档,并通过DOM模型进行操作。 2. **LINQ to XML** - LINQ(Language ...

    用于XML模式和DTD规范化设计的层次模式设计

    DTD(Document Type Definition)和XML Schema是两种定义XML文档结构的方法。DTD相对简单,主要用于定义元素的类型、顺序和属性;而XML Schema更为复杂,提供了更强大的类型系统,可以定义复杂的元素和属性类型,...

    XML开发技术教程

    接着,深入到《DTD》(Document Type Definition)章节,DTD是用来定义XML文档结构的工具,它规定了元素的类型、顺序和数量。学习如何创建和引用DTD,可以确保XML文档的有效性,帮助我们更好地组织和验证数据。 在...

    即用即查——XML数据标记语言参考手册

    ### 文档类型定义(DTD) DTD用于定义XML文档的结构和元素类型,确保文档的一致性和有效性。本书不仅解释了DTD的基本知识,还深入探讨了其语法,如元素定义、属性列表、实体定义等。通过12个实例,读者可以了解如何...

    xml解析文档

    #### 一、XML文档的定义与约束 XML(Extensible Markup Language,可扩展标记语言)是一种标记语言,旨在提供一种统一的数据交换格式,使得不同系统之间可以方便地共享数据。为了确保XML文档的一致性和正确性,通常...

    xml个人学习总结(纯属个人理解)

    文档类型定义(DTD,Document Type Definition)是XML的一种约束机制,用于定义XML文档的结构和元素类型。例如,下面是一个简单的DTD示例: ```xml &lt;!DOCTYPE note [ &lt;!ELEMENT note (to,from,heading,body)&gt; &lt;!...

    XML作业答案

    DTD用于定义元素、属性和它们的约束,而XSD提供了更复杂的数据类型和验证机制。 6. **XML解析**:解析XML有两种主要方式——DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个XML文档加载到内存...

    实战XML教程(第二版),对xml的知识做了深入细致的讲解。

    1. 文档类型定义(DTD,Document Type Definition):DTD用于定义XML文档的结构和元素,确保文档遵循一定的规则。它包含元素、属性、实体等定义。 2. XML Schema:作为DTD的替代,XML Schema提供了更强大、更灵活的...

    MLDN学习笔记 —— XML学习笔记

    2. **DTD(Document Type Definition)**:定义XML文档的结构,用于验证文档是否符合规范。 3. **XSD(XML Schema)**:更现代的验证方式,提供了更强大的数据类型和约束定义。 4. **实体**:用于表示重复或复杂的...

    xml轻松学习手册.rar_xml

    3. **XML文档类型定义(DTD)**:DTD是一种定义XML文档结构的工具,它定义了元素、属性及其关系。例如,`&lt;!ELEMENT book (title, author+, year?)&gt;`表示一个book元素包含一个title元素,一个或多个author元素,以及...

    XML初步到精通

    3. 文档类型定义(DTD)或XML Schema:用来约束XML文档的结构和数据类型,确保文档的一致性。 4. 元素(Element):XML文档的核心组成部分,由标签包裹的文本或子元素。 5. 属性(Attribute):提供关于元素的附加...

Global site tag (gtag.js) - Google Analytics