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

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

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

注意:就像一棵树只有一个根,XML只能有一个根元素。

<!DOCTYPE root[]>
①空元素
<!ELEMENT element-name EMPTY>
②文本元素
<!ELEMENT element-name (#PCDATA)>
③混合元素
<!ELEMENT element-name (e1,e2)>

ps:默认的次数是?
<!ATTLIST element-name att-name type desc>
| ID | 要求文档中所有标记ID类型的属性值一定不能相同 |
| Enumerated | 必须从枚举过的数据类型中选取,如(true|false),也可以不写类型,直接写成(true|false) |
| CDATA | 该类型的属性值不能含有“<”和“””,但实体可以出现在该字符串中 |
| IDREF | 用于表示XML文档中标记之间关系的一种类型,其值必须是文档中被定义好的某一标记的ID类型的属性值 |
| IDREFS | 类似于IDREF,但可以引用多个ID,多个ID之间用空格隔开 |
- #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>123@qq.com</email>
- </contact>
- </person>
- </persons>
好啦,我们下期再见,如果有没有补充到的地方欢迎大家在评论区留言!