当前位置:网站首页>dtd建模
dtd建模
2022-06-30 17:42:00 【一麟yl】
目录
什么是DTD?
文档类型定义(Document Type Definition)是一套为了进行程序间的数据交换而建立的关于标记符的语法规则。它是标准通用标记语言(SGML)和可扩展标记语言(XML)1.0版规格的一部分,文档可根据某种DTD语法规则验证格式是否符合此规则。文档类型定义也可用做保证标准通用标记语言、可扩展标记语言文档格式的合法性,可通过比较文档和文档类型定义文件来检查文档是否符合规范,元素和标签使用是否正确。文件实例提供应用程序一个数据交换的格式。
PS:简而言之,DTD就是用来约束XML文档的,使其在一定的规范下使用,除了DTD技术外,还有Schema技术,也是用于约束XML文档的。
什么是XML?
XML,Extensible Markup Language,扩展性标识语言。文件的后缀名为.xml。就像HTML的是用来显示数据的,xml的作用是传输和存储数据的。
XML是用来干嘛的?
其实说白了,xml就是便于不同应用、不同平台之间的数据共享和通信。
如下图所示:

具体点的作用为:
(1)可作为一种简单的数据库,存储并检索数据;
(2)传输约定格式的文件;
(3)做软件的配置文件。【配置文件:保存软件设置的文件】
XML的亲戚 :
1.XML的好哥哥——HTML
①我们来看看他们的出生顺序:

其实XML的出生就是为了完善HTML的缺陷与局部性。
②在使用方面的区别:
| 比较内容 | HTML | XML |
| 作用 | 显示数据 | 传输和存储数据 |
| 语法 | 无右述要求 | 要求嵌套 、配对 ,并遵循DTD的树状结构 |
| 空格 | 当输入多个时只会显示 一个 | 输入几个则显示几个 |
| 与数据库的关系 | 无直接联系 | 与关系型和层状数据库均可对应和转换 |
| 大小写的敏感区分 | 不区分 | 严格区分 |
2.XML的好闺蜜——JSON
这样的关系是不是更加容易理解:哥哥是一个妈生的,但是闺蜜就不是。
JSON,Javascript Object Notation,js对象表示法。作用也是存储和交换文本信息。
两者比较:由于,JSON采用键值对的格式,所以,JSON比XML更小、更快 、更易解析,so,也是更受欢迎。
两者的作用范围:JSON适用于简单的传值,XML适用于更广阔的传值。
XML的数据结构——树状结构:

注意:就像一棵树只有一个根,XML只能有一个根元素。
XML的标准格式:

元素定义:
1.在XML中加入DTD声明:
<!DOCTYPE root[]>2.元素的分类:
①空元素
<!ELEMENT element-name EMPTY>②文本元素
<!ELEMENT element-name (#PCDATA)>③混合元素
<!ELEMENT element-name (e1,e2)>3.元素的限制:

ps:默认的次数是?
属性定义:
1.语法:
<!ATTLIST element-name att-name type desc>2.属性类型:
| ID | 要求文档中所有标记ID类型的属性值一定不能相同 |
| Enumerated | 必须从枚举过的数据类型中选取,如(true|false),也可以不写类型,直接写成(true|false) |
| CDATA | 该类型的属性值不能含有“<”和“””,但实体可以出现在该字符串中 |
| IDREF | 用于表示XML文档中标记之间关系的一种类型,其值必须是文档中被定义好的某一标记的ID类型的属性值 |
| IDREFS | 类似于IDREF,但可以引用多个ID,多个ID之间用空格隔开 |
3.属性描述:
- #REQUIRED:必填
- #IMPLIED:非必填
- 默认值:只有当属性类型为Enumerated的时候,desc才能够指定默认值。
案例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons[
<!ELEMENT persons (person+)>
<!ELEMENT person (name,age,contact,br*)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT contact (phone|email)>
<!ELEMENT br EMPTY>
<!ATTLIST person
pid ID #REQUIRED
sex (男|女) '男'
qq CDATA #IMPLIED
parent IDREF #IMPLIED
>
]>
<persons>
<person pid="p1" sex="男" qq="aaa" parent="p2">
<name>张小明</name>
<age>10</age>
<contact>
<phone>1234567</phone>
</contact>
<br/>
</person>
<person pid="p2">
<name>张大明</name>
<age>35</age>
<contact>
<email>[email protected]</email>
</contact>
</person>
</persons>好啦,我们下期再见,如果有没有补充到的地方欢迎大家在评论区留言!
边栏推荐
- 【合集- 行业解决方案】如何搭建高性能的数据加速与数据编排平台
- 先写API文档还是先写代码?
- 一点比较有意思的模块
- 基于STM32F1的环境光与微距离检测系统
- 挑选智能音箱时,首选“智能”还是“音质”?这篇文章给你答案
- Another CVPR 2022 paper was accused of plagiarism, and Ping An insurance researchers sued IBM Zurich team
- Dlib library for face key point detection (openCV Implementation)
- ForkJoinPool
- 大佬们目前flinksql, cdcmysql跟Kafka双流join,结果放到mysql 或者ka
- LeetCode之合并二叉树
猜你喜欢

MRO industrial products procurement management system: enable MRO enterprise procurement nodes to build a new digital procurement system

华兴证券:混合云原生架构下的 Kitex 实践

视频内容生产与消费创新

电子元器件行业在线采购系统精准匹配采购需求,撬动电子产业数字化发展

拓维信息使用 Rainbond 的云原生落地实践

【TiDB】TiCDC canal_ Practical application of JSON

Electronic components bidding and purchasing Mall: optimize traditional purchasing business and speed up enterprise digital upgrading
![[Collection - industry solutions] how to build a high-performance data acceleration and data editing platform](/img/56/9f3370eac60df182971607aa642dc2.jpg)
[Collection - industry solutions] how to build a high-performance data acceleration and data editing platform

CODING 正式入驻腾讯会议应用市场!

Pytorch learning (III)
随机推荐
《客从何处来》
The easynvr platform equipment channels are all online. What is the reason for the "network request failure" in the operation?
PC wechat multi open
ForkJoinPool
LeetCode之合并二叉树
OneFlow源码解析:算子签名的自动推断
Troubleshooting MySQL for update deadlock
Full recharge, im+rtc+x full communication service "feedback season" starts
Vulnerability recurrence ----37. Apache unomi Remote Code Execution Vulnerability (cve-2020-13942)
「经验」我对用户增长的理解『新用户篇』
医疗行业企业供应链系统解决方案:实现医疗数智化供应链协同可视
正则表达式(正则匹配)
AI chief architect 10-aica-lanxiang, propeller frame design and core technology
EasyNVR平台设备通道均在线,操作出现“网络请求失败”是什么原因?
Openlayers roller shutter map
Summary of methods for offline installation of chrome extensions in China
这里数据过滤支持啥样的sql语句
MySQL找不到mysql.sock文件的臨時解
基于STM32F1的环境光与微距离检测系统
Sword finger offer 17 Print from 1 to maximum n digits