【XML系列】----DTD约束(一)
在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。
为了能够编写一个格式良好且有效的XML文档,我们需要在XML文档之前添加DTD或者schema约束。
常用的约束有:
1.DTD约束
2.Schema约束
约束在XML文档中的作用:
XML文档的约束可以规定该文档都有哪些标签,包括标签的属性等等,都可以在约束中进行规范编写。
这篇文章我们来认识与使用DTD约束。
DTD约束(Document Type Definition),全称为文档类型定义。
这种约束简单易用,但功能较弱,相对于schema来说简单些,schema使用起来会比较麻烦,但功能也相对强大,在早期的servlet2.x版本以及spring 1.x版本中都是采用DTD来编写其XML文档的约束的。
例如:
DTD对XML文档的约束包括哪几个方面?
1.DTD可以定义XML的根元素、内容和结构。
2.定义XML文档中可以接受哪些元素
3.定义XML文档中每个元素接受的合法内容,比如说是否为空,是否可以是文本,可以接受哪些子元素,和子元素出现的顺序和子元素出现的次数,以及各元素的包含规则等等。
4.定义XML文档中每个元素能接受哪些属性
5.定义XML文档中每个属性的类型,能接受哪些值,以及元素对属性的约束等。
6.定义属性的默认值和固定值。
7.定义XML文档中或DTD中可以使用哪些实体。
DTD有哪些功能?
DTD采用了非XML的语法来描述语义约束,可以实现如下的功能:
1.通过使用DTD可以让每个XML文档带有一个有关自身的格式描述
2.不同的企业或公司等组织一致的使用某个标准的DTD来交换数据
3.应用程序也可使用某个标准的DTD验证所介绍的XML文档是否符合语义约束
4.开发者也可以使用DTD来验证所创建的XML文档
引入DTD的方式:
1.内部DTD
使用DTD的最简单的方式,内部DTD就是指将语义约束与XML文档的内容放在同一个XML文档中。紧跟在XML生命和处理指令之后,以<!DOCTYPE[开始,以]>结束语法格式如下:
在普通的JSP页面编码中,或者HTML页面代码中都会有DTD约束出现,但一般都不是内部DTD约束。
DTD约束细节1:
在DTD文档中使用ELEMENT声明一个XML元素,语法格式如下所示:
<!ELEMENT 元素名称 元素类型>
元素类型可以是元素内容、或类型
如为元素内容:则需要使用()括起来,如
<!ELEMENT 书架 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
如为元素类型,则直接书写,DTD规范定义了如下几种类型:
EMPTY:用于定义空元素,例如<br/> <hr/>
ANY:表示元素内容为任意类型。
DTD细节约束2:
元素内容中可以使用如下方式,描述内容的组成关系
用逗号分隔,表示内容的出现顺序必须与声明时一致。<!ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)>
用|分隔,表示任选其一,即多个只能出现一个
<!ELEMENT MYFILE (TITLE|AUTHOR|EMAIL)>
在元素内容中也可以使用+、*、?等符号表示元素出现的次数:
+: 一次或多次 (书+)
?: 0次或一次 (书?)
*: 0次或多次 (书*)
也可使用圆括号( )批量设置,例
<!ELEMENT MYFILE ((TITLE*, AUTHOR?, EMAIL)* | COMMENT)>
综合案例:
2.外部DTD
外部DTD的引用:
首先创建一个dtd文件,将DTD的约束写到文件中,然后在XML文档中按以下语法格式添加:
<!DOCTYPE (根元素名称)SYSTEM “外部DTD的URL地址”>
3.公用DTD
引用公用的DTD的语法格式如下:
<!DOCTYPE (根元素名称)PUBLIC “DTD的标识名” “公用DTD的URL地址”>
具体写法可见JavaWEB项目中的web.xml文件,这里就不再贴出代码。
转载于:https://www.cnblogs.com/H_Razor/archive/2011/06/16/xml_05.html
【XML系列】----DTD约束(一)相关推荐
- XML的DTD约束和Schema约束
ajax是什么? 如图: XML是什么? 可扩展标记语言,标记数据,定义数据类型 允许用户对自己的标记语言进行定义的源语言 xml详细介绍:(http://www.w3school.com.cn/xm ...
- XML内部DTD约束 Day24
<?xml version="1.0" encoding="UTF-8"?> <!-- 内部DTD --> <!-- XML:ex ...
- JAVA XML 之 DTD约束
什么是约束? 约束是用来限定xml文件中可使用的标签以及属性. 也就是告诉程序员,xml该怎么写. 约束分为DTD约束和Schema约束 DTD语法规则 复杂元素也就是有子元素的元素. 简单元素则是没 ...
- 【JAVA与XML、dtd约束、Schema约束】
一.XML. (1)XML:Extensible Markup Language (2)XML是一种标记语言. (3)XML的设计宗旨是传输数据,而不是显示数据. (4)XML标签没有被预定义,即使用 ...
- 第1天 XML和DTD、schema约束
1.xml * 扩展名:*.xml * 作用:存储.配置 一个XML文件分为如下几部分内容:文档声明.元素.属性.注释 CDATA区.特殊字符.处理指令(processing instruction ...
- xml的应用与dtd约束
1.xml的应用 *不同的系统之间的传输数据(qq消息传输) *用来表示生活中有关系的数据(省市区的包含关系) *经常用在文件配置 **比如现在连接数据库,肯定知道数据库的名称和密码及用户名. ...
- web.xml引入web-app dtd约束
常见的框架使用dtd约束的有struts2,hibernate等 1.新建一个java项目 2 在src下面新建一个包com.dxm.dtd 3 在该包上按快捷键ctrl+N新建其他文件,输入xml ...
- xml教程之dtd约束
1.dtd作用 XML都是用户自定义的标签,若出现小小的错误,软件程序将不能正确地获取文件中的内容而报错.(如:Tomcat) XML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为 ...
- Schama —— Xml文档约束技术 学习笔记
本文查阅方法: 1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题 2.快捷"查找" -- 在当前浏览器页面,按键 "Ctrl+F" 按键 ...
- xml教程之约束schema
1.简介 XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性 XML Schema VS DTD: XML Schema符合XML语法结 ...
最新文章
- 使用Redis分区将数据分割到多个Redis实例
- 思科光传输功率查询_各品牌网络设备的光功率查看方法(不完全统计)
- matlab中怎么求矩阵的特征值和特征向量
- jquery学习之1.20-获取同辈元素和子元素
- matlab车辆贪心作业调度,贪心算法-区间调度-Interval Scheduling
- 简单的二叉树创建与遍历
- P4296-[AHOI2007]密码箱【数论】
- 小红书去水印代码_小红书商家须知!小红书引流靠谱吗?
- (转)Bibtex使用方法
- NDK编译php,Android NDK编译常见错误及解决方案
- HDU 5933 2016CCPC杭州 A: ArcSoft's Office Rearrangement
- SDP在SIP协议中的应用
- 阿里巴巴实习生笔试研发工程师
- PyTorch中的pack_padded_sequence和pad_packed_sequence
- mux decoder selector详解
- 杏子语录(2020年12月)
- 激光电视和投影仪有什么区别
- 如何选择垃圾收集器?
- 怎么把图片文件转换成PDF文件
- 一点就分享系列(实践篇3-上篇)— 修改YOLOV5 之”魔刀小试“+ Trick心得分享+V5精髓部分源码解读
热门文章
- elasticsearch中head插件中的定制增加用户名密码范例
- Struts2报错异常Method setUser failed for object com.mikey.action.ConverterAction@dd34285
- 多线程等待/通知机制
- 【转】snort 笔记2 ----- 规则编写
- .NET反射 Type类
- 120 Python程序中的线程操作-队列
- 067 Pytohn文件的两种用途
- SQL注入盲注——布尔注入
- ubuntu 17.10 如何设置合盖不关机
- linux源码中的核心数据结构