当前位置:网站首页>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>好啦,我们下期再见,如果有没有补充到的地方欢迎大家在评论区留言!
边栏推荐
- 【TiDB】TiCDC canal_json的实际应用
- Leader: who can use redis expired monitoring to close orders and get out of here!
- Sword finger offer 17 Print from 1 to maximum n digits
- GameFi链游系统开发NFT技术
- Flink series: checkpoint tuning
- How to do a good job in software system demand research? Seven weapons make it easy for you to do it
- TiDB Dashboard里面可以写sql执行吗
- Another CVPR 2022 paper was accused of plagiarism, and Ping An insurance researchers sued IBM Zurich team
- 冰河老师的书
- ONEFLOW source code parsing: automatic inference of operator signature
猜你喜欢

MRO工业品采购管理系统:赋能MRO企业采购各节点,构建数字化采购新体系

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

When selecting smart speakers, do you prefer "smart" or "sound quality"? This article gives you the answer

Full recharge, im+rtc+x full communication service "feedback season" starts

程序员女友给我做了一个疲劳驾驶检测

mysql for update 死锁问题排查

3.10 haas506 2.0开发教程-example-TFT

AI chief architect 10-aica-lanxiang, propeller frame design and core technology

Adhering to the concept of 'home in China', 2022 BMW children's traffic safety training camp was launched

Deep learning compiler understanding
随机推荐
Openlayers roller shutter map
Sword finger offer 16 Integer power of numeric value
TCP粘包问题
AI chief architect 10-aica-lanxiang, propeller frame design and core technology
Reading notes of "high EQ means being able to talk"
Merged binary tree of leetcode
联想YOGA 27 2022,超强配置全面升级
Troubleshooting MySQL for update deadlock
EasyNVR平台设备通道均在线,操作出现“网络请求失败”是什么原因?
剑指 Offer 16. 数值的整数次方
Vulnerability recurrence ----- 35. Uwsgi PHP directory traversal vulnerability (cve-2018-7490)
Where do the guests come from
如何利用AI技术优化独立站客服系统?听听专家怎么说!
剑指 Offer 17. 打印从1到最大的n位数
TeamTalk WinClient编译问题及解决方案
Compilation problems and solutions of teamtalk winclient
《所谓情商高,就是会说话》读书笔记
Rust 文件系统处理之文件读写 - Rust 实践指南
Redis入门到精通01
Tensorflow2 深度学习十必知