`
sw1982
  • 浏览: 513150 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

XML知识2--DTD

阅读更多

一。简介

DTD 指定:可以在文档中存在的元素、那些元素可以具有的属性、在元素内部元素的层次结构以及元素在整个文档中出现的顺序。

虽然 DTD 不是必需的,但它们确实带来方便。DTD 适合三个基本用途。它能:

  • 对标记编制文档
  • 加强标记参数内部的一致性
  • 使 XML 语法分析器能够确认文档

二。DTD的一个例子

以下面这个xml为例:

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <books> 
  3.        <book show="yes"> 
  4.               <title>Dom4j Tutorials</title> 
  5.        </book> 
  6.        <book show="yes"> 
  7.               <title>Lucene Studing</title> 
  8.        </book> 
  9.        <book show="no"> 
  10.               <title>Lucene in Action</title> 
  11.        </book> 
  12.        <owner>O'Reilly</owner> 
  13. </books> 

在xml文件中加入验证声明,如下(以book.dtd作为验证文件)

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE books PUBLIC "//UNKNOWN/" "book.dtd">
  3. <books> 
  4.        <book show="yes"> 
  5.               <title>Dom4j Tutorials</title> 
  6.        </book> 
  7.        <book show="yes"> 
  8.               <title>Lucene Studing</title> 
  9.        </book> 
  10.        <book show="no"> 
  11.               <title>Lucene in Action</title> 
  12.        </book> 
  13.        <owner>O'Reilly</owner> 
  14. </books> 

编写book.dtd如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!ELEMENT books (book*,owner)>
  3. <!ELEMENT book (title)>
  4. <!ATTLIST book
  5.     show CDATA #REQUIRED
  6. >
  7. <!ELEMENT title (#PCDATA)>
  8. <!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?)>

元素可能有 ABC 之一:

<!ELEMENT element (A | B | C)>

元素不包含任何内容:

<!ELEMENT element EMPTY>

元素可以包含在 DTD 中列出的任何元素:

<!ELEMENT element ANY>

元素可能包含经过语法分析的字符数据或另一个元素( 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 表示 att2att3 可能包含任何字符串。

 

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

    本文将深入探讨与“sql-map-2.dtd”和“sql-map-config-2.dtd”相关的知识点,以及它们在Ibatis中的作用。 Ibatis是一个轻量级的ORM(对象关系映射)框架,它允许开发者将SQL语句直接写在配置文件中,通过XML映射...

    xml-dtd文件配置

    在XML-DTD文件配置中,我们主要涉及以下几个关键知识点: 1. **XML文档结构**:每个XML文档都由一系列元素组成,这些元素按照层次结构排列。DTD用于规定这些元素的顺序、嵌套关系以及它们的属性。 2. **元素声明**...

    实验二-基于DTD实现XML文档的有效性验证.doc

    2. tv-.xml和tv-.dtd:这两个文件展示了如何使用DTD来定义XML文档的结构和约束,并使用DTD来验证XML文档的有效性。 3. poems.xml和.dtd:这两个文件展示了如何使用DTD来定义XML文档的结构和约束,并使用DTD来验证...

    xml课程设计---xml留言板

    以下是关于XML在留言板应用中的相关知识点: 1. XML基础: - XML语法:XML文档由元素、属性、文本节点等组成,遵循严格的规则,如元素必须有关闭标签,属性值需加引号等。 - XML文档结构:XML文档通常包含声明(`...

    XML技术书籍--大集合

    2. **XML文档结构**:XML文档由元素(Element)、属性(Attribute)、文本内容(Text)等组成,每个文档必须有一个根元素,元素通过开始标签和结束标签定义,如`内容&lt;/element&gt;`。 3. **命名规则**:XML的元素和...

    前端开源库-xml-conformance-suite

    3. **DTD和XML Schema**:XML文档可以使用DTD(Document Type Definition)或XML Schema定义其结构和数据类型。XML-conformance-suite会测试解析器是否能正确解析和验证基于这些规范的XML文档。 4. **处理指令...

    xml-commons-external-1.2.06-bin.zip

    在实际应用中,为了确保XML解析的正确性,开发者需要编写单元测试,并利用XML Schema(XSD)或DTD(文档类型定义)来验证XML文档的结构是否符合规范。 10. **社区支持与更新**: 作为Apache项目,xml-commons-...

    MA-XML-12-SPANISH-源码.rar

    1. **XML基础**:了解XML的基本语法,如元素、属性、文本内容、命名空间和DTD(Document Type Definition)或XSD(XML Schema Definition)验证。 2. **解析XML**:学习DOM、SAX和StAX等解析器的工作原理,它们分别...

    XML资料大全--基础 语言 笔记课件

    本资料大全将深入浅出地介绍XML的基础知识,为初学者提供宝贵的入门资源。 1. XML的基本概念: - XML文档结构:XML文档由元素、属性、文本、注释等构成,其中元素是XML的核心,用于封装数据。 - 声明:每个XML...

    XML DTD XSL XLD DOM

    总的来说,这些文件涵盖了XML的基础知识,如XML结构、DTD的使用、XSLT转换以及DOM解析,同时也涉及到XML Schema这一高级验证工具。通过学习这些资料,你将能够有效地创建、验证和处理XML文档,以及进行数据的格式...

    XML---试题及答案

    XML,全称是eXtensible Markup Language,是一种可扩展的标记语言,设计用来传输和存储数据,而非用于显示...这些知识对于理解和处理XML文档至关重要,无论是简单的数据存储还是复杂的系统集成,XML都扮演着关键角色。

    xml实例--练习加源代码

    2. **命名规则**:XML元素、属性和命名空间的名称都遵循特定的规则,比如名称必须以字母或下划线开头,且不能包含空格和某些特殊字符。 3. **属性**:元素可以有零个或多个属性,属性提供了额外的信息,如`...

    xml课件--适合初学者

    这个“XML课件--适合初学者”压缩包显然是一份面向初学者的学习资源,包含课件、习题和源代码,旨在帮助新手理解并掌握XML的基础知识。 课件部分: 课件通常会涵盖XML的基本概念,如XML的定义、语法规范以及其与...

    Pass4side XML Master I10-001

    - 文档类型声明(Document Type Declaration, DTD)或XML Schema - 元素(Element) - 属性(Attribute) - 文本节点(Text Node) ### 三、XML Schema概述 #### 3.1 什么是XML Schema XML Schema是一种用于定义...

    mybatis3-dtd

    在 MyBatis 中,DTD(Document Type Definition)文件起着至关重要的作用,用于定义 XML 配置文件的结构和规则。在本案例中,我们重点关注两个 DTD 文件:`mybatis-3-config.dtd` 和 `mybatis-3-mapper.dtd`。 `...

    xml dtd html 源程序

    2. DTD详解:DTD用于定义XML文档的结构,包括元素类型、元素间的约束关系、属性列表等。通过学习如何编写和使用DTD,开发者可以确保XML文档符合预设的规范,便于数据的验证和交换。 3. HTML与XML的结合:HTML通常...

    XMLSpy2005--SN

    ### XMLSpy2005知识点解析 #### 一、XMLSpy简介 XMLSpy是一款由Altova公司开发的强大XML编辑器及开发工具。该工具旨在帮助开发者高效地创建、编辑、浏览以及转换XML文档和其他相关技术文件(如XSLT、XML Schema等...

    dtd.rar_dtd_java dtd_xml dtd

    2. **DTD(文档类型定义)**:DTD是XML的一部分,用于定义XML文档的结构和元素。它通过声明元素、属性、实体和注释等来规定文档的合法结构。DTD可以是内部的(包含在XML文档中)或外部的(作为单独的文件引用)。 3...

    XML 入门教程-初学者的入门教程

    ### XML 入门教程知识点详解 #### 一、XML简介 **XML**(eXtensible Markup Language)是一种标记语言,它的出现改变了数据处理的方式。1998年2月,XML首次进入软件工业界,迅速成为了行业内的焦点。XML不仅为网络...

    无废话XML---劳虎

    XML,全称可扩展标记...通过学习《无废话XML》这样的书籍,你可以掌握XML的基础知识,理解如何创建、解析和验证XML文档,以及如何利用XML进行数据交换。这将对从事Web开发、数据处理、系统集成等领域的工作大有裨益。

Global site tag (gtag.js) - Google Analytics