TDT-文档类型定义
// 我们认为 XML Schema 很快会将 DTD 取而代之,被用在大部分的网络应用程序中。
//XML Schema 是基于 XML 的 DTD 替代物。
//与 DTD 不同,XML Schema 支持数据类型和命名空间。
DTD是什么?
DocumentTypeDefinition,是用来描述xml文档结构的文件。
DTD可以在xml文档的内部,也可以外链;
声明于xml内部的DTD
<?xml version="1.0" ?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
声明外链的DTD
这个是DTD文件
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
这个是xml文件
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
DTD有什么作用
制定了一个xml的标准,有了这个标准,就可以进行数据的传输和交换,可以用程序进行xml内数据的解读,可以验证接受的数据,可以验证自身的xml数据。
PCDATA
ParsedCharacterData-被解析的字符数据
CDATA
CharacterData-不会被解析的字符数据
声明一个元素
在 DTD 中,XML 元素通过元素声明来进行声明。元素声明使用下面的语法:
<!ELEMENT 元素名称 类别>
或者
<!ELEMENT 元素名称 (元素内容)>
空元素
空元素通过类别关键词EMPTY进行声明:
<!ELEMENT 元素名称 EMPTY>
例子:
<!ELEMENT br EMPTY>
XML例子:
<br />
只有 PCDATA 的元素
只有 PCDATA 的元素通过圆括号中的 #PCDATA 进行声明:
<!ELEMENT 元素名称 (#PCDATA)>
例子:
<!ELEMENT from (#PCDATA)>
带有任何内容的元素
通过类别关键词 ANY 声明的元素,可包含任何可解析数据的组合:
<!ELEMENT 元素名称 ANY>
例子:
<!ELEMENT note ANY>
带有子元素(序列)的元素
带有一个或多个子元素的元素通过圆括号中的子元素名进行声明:
<!ELEMENT 元素名称 (子元素名称 1)>
或者
<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>
例子:
<!ELEMENT note (to,from,heading,body)>
当子元素按照由逗号分隔开的序列进行声明时,这些子元素必须按照相同的顺序出现在文档中。在一个完整的声明中,子元素也必须被声明,同时子元素也可拥有子元素。"note" 元素的完整声明是:
<!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
声明只出现一次的元素
<!ELEMENT 元素名称 (子元素名称)>
例子:
<!ELEMENT note (message)>
上面的例子声明了:message 子元素必须出现一次,并且必须只在 "note" 元素中出现一次。
声明最少出现一次的元素
<!ELEMENT 元素名称 (子元素名称+)>
例子:
<!ELEMENT note (message+)>
上面的例子中的加号声明了:message 子元素必须在 "note" 元素内出现至少一次。
声明出现零次或多次的元素
<!ELEMENT 元素名称 (子元素名称*)>
例子:
<!ELEMENT note (message*)>
上面的例子中的星号声明了:子元素 message 可在 "note" 元素内出现零次或多次。
声明出现零次或一次的元素
<!ELEMENT 元素名称 (子元素名称?)>
例子:
<!ELEMENT note (message?)>
上面的例子中的问号声明了:子元素 message 可在 "note" 元素内出现零次或一次。
声明“非.../既...”类型的内容
例子:
<!ELEMENT note (to,from,header,(message|body))>
上面的例子声明了:"note" 元素必须包含 "to" 元素、"from" 元素、"header" 元素,以及非 "message" 元素既 "body" 元素。
声明混合型的内容
例子:
<!ELEMENT note (#PCDATA|to|from|header|message)*>
上面的例子声明了:"note" 元素可包含出现零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。
TDT-文档类型定义相关推荐
- DTD(文档类型定义)概述
DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块.DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用. DTD 简介 文档类型定义(DTD)可定义合法的XML文档构建模块.它 ...
- DOCTYPE html PUBLIC 指定了 HTML 文档遵循的文档类型定义
DOCTYPE html PUBLIC 指定了 HTML 文档遵循的文档类型定义 今天看到一篇CSS应用的一个友好搜索,我按网页上的代码复制.粘贴后预览时总达不到效果,而直接拷贝他的实例却能达到效果, ...
- XML——文档类型定义(DTD-Document Type Definition)
[0]README 0.1)本文文字描述转自 core java volume 2 , 旨在理解 XML--文档类型定义(DTD-Document Type Definition) 的基础知识: 0. ...
- 文档类型定义和合法性(2)
8.5.3 子元素列表 由于SEASON元素被声明为可以接受任何元素作为子元素,因而可以接受各种各样的元素.当遇到那些多多少少有些非结构化的文本,如杂志文章时,这种情况就很有用.这时段落.副栏.项目列 ...
- 前端:HTML5/36/HTML5简介,文档类型定义,网页字符集,页面结构标记,文章相关的标记,其它标记,音频标记,视频标记,表单中新增的属性,表单input元素type属性的值
HTML5简介 HTML5是新一代的HTML: HTML5目前主要应用在手机端,在PC端最新浏览器已经开始支持了,但还不全面: HTML5是由W3C和WHATWG合作的结果: W3C是万维网联盟,主要 ...
- XML之文档类型定义和合法性(转)
来至:liang--liang博客:http://www.cnblogs.com/liang--liang/archive/2008/01/15/1039277.html 好牛 XML被作为一种元标记 ...
- 文档声明Doctype和Doctype html区别 文档类型定义(DTD)
文档类型定义(DTD)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构. DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用. 文档声明的作用: 文档声明是为了告诉浏 ...
- XML文档类型定义DTD
DTD概述 DTD用来定义XML文档的结构,它包含一系列规则说明,以确保XML文档的一致性和有效性 DTD定义了XML文档可用的词汇(元素和属性的名称)和结构: 元素名称,包括根元素 元素的属性及属性 ...
- XML--- XML文档类型定义(DTD)
**定义:**DTD定义了文档的逻辑结构,规定了文档中所使用的元素.实体.元素的属性.元素与实体之间的关系.其作用主要表现在以下几个方面. (1) 使用DTD可以提供一种统一的格式.XML的可扩展性为 ...
- J2EE之dtd(文档类型定义)
一:良好xml的格式 1:xml的作用 1.1 数据交互(两种方式) 第一种:{name:xxx,sex:'男',age:18},{name:xxx,sex:'男',age:18},{name:xxx ...
最新文章
- IO流 字符流 字节流 缓冲流 文件的复制
- 经过不断努力 终于获得“推荐博客”的荣誉
- Mysql-安装指南
- Android 9 的非 SDK 接口限制 | 中文教学视频
- 黄河农场谋定区位优势-农业大健康·万祥军:现代农业示范区
- JAVA中的面向对象与内存解析_2
- unity创建和销毁对象_如何创建和销毁对象
- Linux命令【五】系统函数
- 大屏某区域滚动效果循环
- windows 2502 2503 错误解决
- C和指针 第四章 习题
- Character,String相关方法,Int,double互相转换
- Unity3D-VR_Gevr VR射线+tag的转换+物体展示
- usb4java android,USB audio on Android platform
- win7下IDEA黑色主题看不到鼠标指针的修改方式
- 洗地机之滚刷电机分析:关于电机转矩.功率.转速之间的关系及计算公式
- vue项目实现百度离线地图开发
- 5G应用技术系列 - 从带宽和时延看5G和4G对应用区别
- Java并发25 ThreadFactory使用的必要性
- 引入 ECharts和Bootstrap的bootcdn样式表路径
热门文章
- 查询各部门中工资最低的雇员信息(不要使用int关键字)、查询工资最高的雇员信息、查询工资高于部门20中所有员工的雇员信息、查询负责管理其他雇员的管理员信息
- 加速中国投资,VMware开通中文支持热线
- 顺应潮流 - Sun公司软件开源经历对今天的启发
- 在苹果手机html变大,苹果手机原来可以这样投屏到电视!一秒变大屏!太好用了!...
- Linux第二篇【系统环境、常用命令、SSH连接、安装开发环境】
- 梦在远方路在脚下,社科院与杜兰大学金融管理硕士项目与你一路相伴
- 微信小游戏过包(马甲过审策略)
- 抓住一切机遇,成功才有可能
- JS写的随机数倒计时效果
- JSP学生考试成绩分析管理系统