DTD(Document Type Definition)文件类型描述
第一点要注意的:
DTD中的关键字必须全部大写!
一、DTD的位置
DTD可以放在xml文档里面:
出自《XML入门》
<?xml version = "1.0" encoding="GB2312" standalone = "yes"?>
<!DOCTYPE 联系人列表[
<!ELEMENT 联系人列表 (联系人)*>
<!ELEMENT 联系人 (姓名,ID,公司,EMAIL,电话,地址)>
<!ELEMENT 地址 (街道,城市,省份)>
<!ELEMENT 姓名 (#PCDATA)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT 公司 (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT 电话 (#PCDATA)>
<!ELEMENT 街道 (#PCDATA)>
<!ELEMENT 城市 (#PCDATA)>
<!ELEMENT 省份 (#PCDATA)>
]>
<联系人列表>
...................................
放在里面的时候,应该注意“standalone = "yes"”
也可以放在外面,放在外面有两种形式,一种是引用本地文件,如:
<?xml version = "1.0" encoding="GB2312" standalone = "no"?>
<!DOCTYPE 联系人列表 SYSTEM "fclml.dtd">
<联系人列表>
..................
引用的格式是:<!DOCTYPE 根元素名 SYSTEM "外部DTD文件的URL">
另外一种是引用公共的文档定义,如:
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
格式为:<!DOCTYPE 根元素 PUBLIC "DTD名称" "外部DTD的URL">
其中DTD名称解释为:
这个DTD标识的命名规则和XML文件的命名规则稍有不同。具体地说,DTD名称只能包含字母、数字、空格和下面的符号:
_%$#@()+:=/!*;?。同时,DTD名称还必须符合一些标准的规定。例如,ISO标准的DTD以“ISO”三个字母开头;被改进的非ISO标准的DTD以加号“+”开头;未被改进的非ISO标准的DTD以减号“-”开头。
所以说struts的配置文件就是“未被改进的非ISO标准的DTD文档”
二、DTD的内容
DTD文档的内容总结下来有几个比较重要也比较常用的:参数实体定义、元素定义和属性定义
1、参数实体定义
实体实际上在XML当中充当宏定义或者别名之类的意思,也可以理解成public static String......
参数实体是专门用在DTD当中的,你可以在下面两项元素定义和属性定义中引用参数实体。
其定义方式如下:
<!ENTITY % 实体名 "实体内容"> 注意,在XML中的实体定义是没有%的
或者是:
<!ENTITY % 实体名 SYSTEM "外部文件名">
引用方式:
%实体名
例子:
<!ENTITY % Boolean "(true|false|yes|no)">表示定义了一个Boolean 的参数实体,值是"(true|false|yes|no)"
在struts的配置文件的DTD中有如下描述:
<!ATTLIST form-bean dynamic %Boolean; #IMPLIED>
也就定义了form-bean这个元素的dynamic属性可以取得值是true、false、yes、no其中之一。
2、元素定义
用来定义元素的格式以及元素的子孙等。
定义形式:
<!ELEMENT 元素名 元素内容描述>
元素定义这里由于篇幅有限,仅列几个例子
1、<!ELEMENT 联系人列表
ANY>表示联系人列表这个元素的格式及其子孙都不受限制。
2、<!ELEMENT 姓名(#PCDATA)>表示姓名这个元素只能包含文本数据
3、<!ELEMENT 联系人(姓名 EMAIL)>表示联系人这个元素只能包含姓名和EMAIL两种子孙,顺序不限,并且姓名只能由一个,EMAIL也只能由一个。
4、<!ELEMENT 联系人(姓名,EMAIL)>表示联系人这个元素只能包含姓名和EMAIL两种子孙,有顺序的限制,并且姓名只能由一个,EMAIL也只能由一个。
5、<!ELEMENT 联系人(姓名,EMAIL
+)>表示联系人必须有且仅有一个姓名子孙,有一个到多个EMAIL子孙,其中,如果
+换作
*,则表示零个或者多个。
6、<!ELEMENT 联系人(姓名,EMAIL)+>表示联系人有一组到多组子孙,每组中有且仅有一对姓名和EMAIL
7、<!ELEMENT 联系人(姓名,(电话
|EMAIL))>表示联系人有一组到多组子孙,每组中第一个元素一定是姓名,第二个元素要么是电话,要么是EMAIL,两者选一个。
8、<!ELEMENT 联系人
EMPTY>联系人这个元素不包含任何子孙,也不包含文本。
3、属性定义
格式:<!ATTLIST 元素名 (属性名 属性类型 缺省值)*>
例子:
1、<!ATTLIST 页面作者
姓名 #CDATA #IMPLIED
年龄 #CDATA #IMPLIED
联系信息 #CDATA #REQUIRED
网站职务 #CDATA #FIXED "页面作者"
个人爱好 #CDATA "上网">
其中,定义了页面作者这个元素的属性可以有“姓名”,“年龄”,“联系信息”,“网站职务”和“个人爱好”
并且,姓名和年龄是纯文本,可以没有,联系信息必须有,网站职务一定是“页面作者”,个人爱好如果不填,则默认是上网。
2、<!ATTLIST 肉 类型( 鸡肉 | 牛肉 | 猪肉 | 鱼肉 ) "鸡肉">元素肉可以有“类型”属性,类型属性可以选择 鸡肉 | 牛肉 | 猪肉 | 鱼肉其中一个,默认是“鸡肉”
3、<!ATTLIST 联系人 编号 ID #REQUIRED>联系人元素有且必须有编号属性,其类型是ID型的,ID型或者是IDREF型的属性值必须是一个有效的XML名称,它由字母、数字或下划线开始,名字中不能出现空白符。类似Html中的ID。
4、另外类型NMTOKEN和NMTOKENS还有NOTATION类型我还不是太明白,那位明白的不妨给出^_^。
分享到:
相关推荐
学习Java和XML的结合应用,不仅可以提升开发效率,还能为构建复杂、可维护的系统打下坚实基础。无论是企业级应用、Web服务、移动开发还是数据交换,这两者都发挥着不可或缺的作用。通过不断实践和深入理解,开发者...
《Java与XML第三版》是一本深入探讨Java与XML集成技术的专业书籍,旨在帮助开发者理解和应用这两种技术在软件开发中的协同工作。XML(Extensible Markup Language)作为一种数据交换和存储的标准,广泛应用于分布式...
在第二章中,《Java&XML》深入探讨了如何使用Java创建XML文档。XML文档遵循一定的结构规则,包括元素、属性、文本节点等组成部分。通过Java程序,可以动态生成符合这些规则的XML文档,这对于数据存储和网络通信尤为...
在这个“04 Build a Dice App to Learn Java & XML Fundamentals”的教程中,我们将深入学习Java编程语言和XML(可扩展标记语言)的基础知识,这两者都是Android应用开发的核心技术。这个教程适合初学者,旨在通过...
### XML与DTD详解 #### 一、XML简介 XML(Extensible Markup Language)是一种非常重要的数据交换标准,它被广泛应用于互联网数据交换场景之中。XML的设计初衷是为了传输和存储数据,其灵活性允许用户自定义标签,...
使用DTD验证XML文档 一、 DTD的定义: a) DTD是Document Type Defintion的缩写,即文档类型定义。DTD用来描述XML文档的结构。 二、 DTD可能包含的内容: a) 元素的定义规则。 b) 元素之间的关系规则。 c) 属性的定义...
### Java与XML应用知识点概述 #### 一、XML的基本概念 **XML**(可扩展标记语言)是一种用于描述数据的新技术,它基于标记语言,并允许用户自定义标记来表示不同类型的数据。XML的设计目的是使得数据能够非常方便地...
标题"DTD.rar_dtd_java dtd_xml dtd"暗示了这是一个与XML文档类型定义(DTD)相关的Java程序,可能包含了用于验证XML文档是否符合DTD规范的代码。"rar"表明这个资源是以RAR格式压缩的文件,通常包含多个相关文件。 ...
学习这部分内容,你将能掌握如何使用Java进行XML文件的读写,如何定义和验证XML文档结构,以及如何在实际项目中利用XML进行数据交换和存储。这不仅对理解XML的基本概念至关重要,也有助于提升你的Java开发能力,特别...
1、安装并学习如何使用XMLSPY集成开发环境完成XML相关的开发工作。 2、熟悉和掌握XML规范的基本内容,包括XML声明、注释、处理指令、元素、属性、CDATA段、预定义实体、命名空间的使用,以及如何进行XML文档良构和...
《Java与XML》(第三版)向您展示如何穿透围绕着XML的宣传迷雾,让XML真正在您的工作中为您所用。它将教您如何使用XML的各种应用程序编程接口(API)、工具和技巧来构建实际的应用程序,为管理从配置文件到网络站点...
《XML》实验任务书 (1) XML Basics & DTD [实验目的] 1、安装并学习如何使用XMLSPY集成开发环境完成XML相关的开发工作。 2、熟悉和掌握XML规范的基本内容,包括XML声明、注释、处理指令、元素、属性、CDATA段、...
Java 读取 XML 文件是 Java 开发中常见的一项任务,XML(eXtensible ...在提供的压缩包文件 "dtd-xml" 中,可能包含了更多关于 DTD 和 XML 解析的实例代码和文档,进一步学习和实践这些内容将加深你对这一主题的理解。
【XML技术基础知识】 XML,全称为Extensible ...XML技术是现代Web应用程序和分布式系统中数据交换的关键部分,通过学习XML及其相关技术,开发者可以构建更加灵活、可扩展的应用程序,实现不同系统间的数据互操作性。
《Java & XML》第二版由Brett McLaughlin编写,出版社为O'Reilly Media,出版于2001年9月。本书全面覆盖了Java应用程序如何高效地利用XML进行数据处理、交换以及Web服务开发等方面的内容。该书除了对XML的基础知识...
书中的主题为XML基础,包括DTD、命名空间(namespace)、XML Schema和数据格式转换(Transformation) SAX应用程序编程接口,包括处理器接口、过滤器接口和写出接口 DOM应用程序编程接口,包括DOM第2层、第3层和DOM ...
学习XML语言的DTD如何去写,如何更好的写出XML语言的DTD文档,对进一步深入学习XML有很大帮助。
《Java and XML(英文第三版)》是一本深入探讨Java编程语言与XML(eXtensible Markup Language)之间交互的权威书籍。XML作为一种通用的数据交换格式,在互联网和企业级应用中占据着重要的地位,而Java作为最流行的...
### Java与XML的相关知识点 ...通过以上知识点的学习,读者可以全面掌握Java与XML结合的各个方面,从基础到高级技术,再到实际应用案例,为在实际项目中高效地使用Java处理XML数据打下坚实的基础。