DTD文档类型定义文件简介

dtd

基本概念: dtd ( document type definition  文档类型定义),该文件一般和xml文件配合使用, 主要的用处是约束 xml.

除了 dtd 技术外, 还有一个schema的技术也可以用于约束xml文件的书写规范.

现在请看一个问题:

<stu id="a&quot;0&apos;0&apos;1&lt;" >
<name>杨过</name>
<sex>男</sex>
<age>30</age>
<介绍>我是好人</介绍>
<面积>100平</面积>
</stu>

xml过于自由。

快速入门案例

基本语法是:

<!ELEMENT 元素名 类型>

<?xml version="1.0" encoding="utf-8"?>
<!--引入dtd去约束该xml文件-->
<!DOCTYPE 班级 SYSTEM "myClass2.dtd">
<班级>
    <学生>
        <名字>周星驰</名字>
        <年龄>23</年龄>
        <介绍>学习刻苦</介绍>
    </学生>
    <学生>
        <名字>林青霞</名字>
         <年龄>32</年龄>
        <介绍>是一个好学生</介绍>
    </学生>
</班级>
myClass2.dtd
<!ELEMENT 班级 (学生+)>
<!ELEMENT 学生 (名字,年龄,介绍)>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 年龄 (#PCDATA)>
<!ELEMENT 介绍 (#PCDATA)>

完成校验的html编写

<html>
<head>
<!--自己编写一个简单的解析工具,去解析xml dtd 是否配套-->
<script language="javascript">
<!--
    var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
    xmldoc.validateOnParse = "true";//开启校验
    xmldoc.load("myClass2.xml");//指定校验哪个xml文件
    document.writeln("错误信息是:"+xmldoc.parseError.reason+"<br/>");
    document.writeln("错误的行是:"+xmldoc.parseError.line);

//-->
</script>
</head>
<body>
</body>
</html>

dtd的细节

(1)    dtd 的分类

内部 dtd

外部 dtd

内部DTD文档:  <!DOCTYPE 根元素  [定义内容]>

外部DTD文档:  <!DOCTYPE 根元素  SYSTEM "DTD文件路径">

(2) 在xml中引入dtd 有两种方法

  1. 引入本地 dtd

<!DOCTYPE 根元素 SYSTEM ‘地址’>

  1. 引入公共的 dtd

<!DOCTYPE 根元素 PUBLIC  ‘地址’>

(2)<!ELEMENT 元素名 类型>

类型:EMPTY, ANY , #PCDATA

(3) dtd的修饰符

(4) 属性的细节

基本语法

<!ATTLIST 元素名

属性名 类型  特点

.....

> 

l 类型有 五种:

CDATA   表示可以放入文本

ID          表示属性的值,不能重复,同时不要用数字开头.

IDREF/IDREFS    当一个元素的属性值,需要去引用另外一个ID ,则使用IDREF,如果希望引用多个,则使用IDREFS,请用空格隔开.

Enumerated     表示属性的值,只能是例举出了 比如

<!ATTLIST 学生

   地址 CDATA #FIXED "北京"

   学号 ID #REQUIRED

   大哥 IDREFS #REQUIRED

   性别 (男|女) #REQUIRED

>

ENTITY  后面再说

 属性的特点有四种

#REQUIRED  表示必须有

#IMPLIED 表示可以有

#FIXED “值” 表示如果有,则必须是什么

Default “值” 表示如果不指定,则默认.

实体(ENTITY)

就是实体用于为一段内容创建一个别名,以后在XML文档中就可以使用别名引用这段内容了

java :

String str=”你好”;

定义str,在别的地方,我们使用str就可以访问到  ‘你好’

(1)  分类

1,引用实体

案例

在 dtd 中定义:

<!ENTITY mycopy "我的公司版权">

说明:最好把定义放在dtd的最后

在xml中使用

&mycopy;

2,参数实体

基本语法

<!ENTITY  %  实体名字 ”实体内容”>

引用

%实体名字;

举例:

<!ELEMENT 班级 (学生*)>

<!ENTITY % myname "名字">

<!ELEMENT 学生 (%myname;,介绍,年龄)>

<!ATTLIST 学生

   地址 CDATA #FIXED "北京"

   学号 ID #REQUIRED

   大哥 IDREFS #REQUIRED

   性别 (男|女) #REQUIRED

> 

<!ELEMENT %myname; (#PCDATA)>

<!ELEMENT 年龄 (#PCDATA)>

<!ELEMENT 介绍  (#PCDATA)>

<!ENTITY mycopy "我的公司版权">

学习dtd的目标:一般公司很少让程序员自己写 dtd,要求程序员看的懂dtd,同时可以根据给出的dtd,写出对应的xml

实际案例:

一个产品目录

dtd文件:

<!ENTITY AUTHOR "John Doe">

<!ENTITY COMPANY "JD Power Tools, Inc.">

<!ENTITY EMAIL "[email protected]">

<!ELEMENT CATALOG (PRODUCT+)>

<!ELEMENT PRODUCT

(SPECIFICATIONS+,OPTIONS?,PRICE+,NOTES?)>

<!ATTLIST PRODUCT

NAME CDATA #IMPLIED

CATEGORY (HandTool|Table|Shop-Professional) "HandTool"

PARTNUM CDATA #IMPLIED

PLANT (Pittsburgh|Milwaukee|Chicago) "Chicago"

INVENTORY (InStock|Backordered|Discontinued) "InStock">

<!ELEMENT SPECIFICATIONS (#PCDATA)>

<!ATTLIST SPECIFICATIONS

WEIGHT CDATA #IMPLIED

POWER CDATA #IMPLIED>

<!ELEMENT OPTIONS (#PCDATA)>

<!ATTLIST OPTIONS

FINISH (Metal|Polished|Matte) "Matte"

ADAPTER (Included|Optional|NotApplicable) "Included"

CASE (HardShell|Soft|NotApplicable) "HardShell">

<!ELEMENT PRICE (#PCDATA)>

<!ATTLIST PRICE

MSRP CDATA #IMPLIED

WHOLESALE CDATA #IMPLIED

STREET CDATA #IMPLIED

SHIPPING CDATA #IMPLIED>

<!ELEMENT NOTES (#PCDATA)>

xml编写案例:

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE CATALOG SYSTEM ‘product.dtd‘>

<CATALOG>

<PRODUCT NAME="康师傅矿泉水" CATEGORY="HandTool" PARTNUM="abc" PLANT="Milwaukee"   INVENTORY="Backordered">

<SPECIFICATIONS WEIGHT="800" POWER="600" >这里是细节</SPECIFICATIONS>

<PRICE>110</PRICE>

</PRODUCT>

</CATALOG> 

CDATA 的意思是字符数据(character data)

PCDATA 的意思是被解析的字符数据(parsed character data)。

PDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。

时间: 2024-10-21 03:38:29

DTD文档类型定义文件简介的相关文章

XML之------DTD(文档类型定义)

一.DTD概述 1.XML文档是一种元标记语言,即一种定义标记语言的语言.在XML中可以创建新的标记语言,这些新的标记语言(也叫标记集)要通过文档类型定义(Document Type Definitions,DTD)来定义. 2.DTD文档是这些新的标记语言的法律性文档.如果XML文档的语法符合DTD的定义和规定,那么就称为一个合法的XML文档,否则就是非法的XML文档. 二.DTD的作用 DTD定义了文档的逻辑结构,规定了文档中所使用的元素.实体.元素的属性.元素与实体之间的关系. 1.使用D

XML--- XML文档类型定义(DTD)

**定义:**DTD定义了文档的逻辑结构,规定了文档中所使用的元素.实体.元素的属性.元素与实体之间的关系.其作用主要表现在以下几个方面. (1) 使用DTD可以提供一种统一的格式.XML的可扩展性为文档的作者提供了很高的灵活性,可有时候需要的是统一,要求某一类文档具有相同的结构. (2) 使用DTD可以保证数据交流和共享的顺利进行. (3) DTD使用户能够不依赖具体的数据就知道文档的逻辑结构.在没有XML文档的时候,也可以根据DTD为XML文档编写样式单,编写处理程序,这样可以有效地提高工作

有效的XML: DTD(文档类型定义)介绍(转)

文档类型定义和命名空间 有效(Valid)的XML文档: 首先,XML文档是个格式正规的(Well-formed)XML文档:(见格式正规的XML:语法 属性 实体 处理指令 样式单 CDATA节). 其次,需要满足DTD的要求,这样的XML文档称为有效的(Valid)XML文档. DTD DTD,即文档类型定义——Document Type Definition. DTD用来描述XML文档的结构, 一个DTD文档包含: 元素(ELEMENT)的定义规则: 元素之间的关系规则: 属性(ATTLI

XML(二)有效的XML: DTD(文档类型定义)介绍与三种使用方式

有效的XML: DTD(文档类型定义)介绍 有效(Valid)的XML文档: 首先,XML文档是个格式正规的(Well-formed)XML文档: 其次,需要满足DTD的要求,这样的XML文档称为有效的(Valid)XML文档. DTD DTD,即文档类型定义——Document Type Definition. DTD用来描述XML文档的结构, 一个DTD文档包含: 元素(ELEMENT)的定义规则: 元素之间的关系规则: 属性(ATTLIST)的定义规则: 可使用的实体(ENTITY)或符号

XML文档类型定义---DTD文档

DTD的作用 XML文档是一种元标记语言,即一种定义标记语言的语言.在XML中可以创建新的标记语言,这些新的标记语言(也叫标记集)要通过文档类型定义(Document Type Definitions,DTD)来定义.DTD文档是这些新的标记语言的法律性文档.如果XML文档的语法符,DTD的定义和规定,那么就称为一个合法的XML文档,否则就是非法的XML文档.合法的XML文档在实际应用中的地位很重要,因为只有合法的XML文档才能被应用软件有效地处理. DTD定义了文档的逻辑结构,规定了文档中所使

XML之DTD(文档类型定义)

文档类型定义(DTD)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构. DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用. 声明元素 在 DTD 中,XML 元素通过元素声明来进行声明.元素声明使用下面的语法: <!ELEMENT 元素名称 类别>  [类别可为:EMPTY.(#PCDATA).ANY] 或者 <!ELEMENT 元素名称 (元素内容)> 带有 DTD 的 XML 文档实例 <?xml version="1.0&

关于!DOCTYPE(指定了 HTML 文档遵循的文档类型定义)

语法 HTML  顶级元素  可用性 "注册//组织//类型 标签//定义  语言""URL" 可能值 顶级元素 指定 DTD 中声明的顶级元素类型.这与声明的 SGML 文档类型相对应. HTML 默认.HTML. 可用性 指定正式公开标识符(FPI)是可公开访问的对象还是系统资源. PUBLIC 默认.可公开访问的对象. SYSTEM 系统资源,如本地文件或 URL. 注册 指定组织是否由国际标准化组织(ISO)注册. + 默认.组织名称已注册. - 组织名称未

DOCTYPE html PUBLIC 指定了 HTML 文档遵循的文档类型定义

DOCTYPE html PUBLIC 指定了 HTML 文档遵循的文档类型定义 今天看到一篇CSS应用的一个友好搜索,我按网页上的代码复制.粘贴后预览时总达不到效果,而直接拷贝他的实例却能达到效果,开始以为书写顺序不对,于是调整书写顺序,还是不行,最后找到了我认为最没什么用处的第一行才发现真正起作用的竟然是 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http//www.w3.org

Atitit.论垃圾文件的识别与清理&#160;文档类型垃圾文件&#160;与api概要设计pa6.doc

Atitit.论垃圾文件的识别与清理 文档类型垃圾文件 与api概要设计pa6.doc 1. 俩个问题::识别垃圾文件与清理策略1 1.1. 文件类型:pic,doc,v,m cc,isho pose,prj,codelib,doc mana(inputmethod,acc)1 2. 如何识别垃圾文件2 2.1. 体积过小文件2 2.2. 过大文件2 2.3. 清理非文档类型(doc docx txt html )的文件2 2.4. 转换文件类型以及索引html即可2 2.5. 清理重复文件(此