• dtd建模


    目录

    什么是DTD?

    什么是XML?

    XML是用来干嘛的?

    XML的亲戚 :

    1.XML的好哥哥——HTML

    2.XML的好闺蜜——JSON

    XML的数据结构——树状结构:

    XML的标准格式:

     元素定义:

    1.在XML中加入DTD声明:

    2.元素的分类:

    3.元素的限制:

    属性定义:

    1.语法:

    2.属性类型:

    3.属性描述:

    案例:


     

    什么是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的缺陷与局部性。

    ②在使用方面的区别:

    比较内容HTMLXML
    作用 显示数据传输和存储数据
    语法无右述要求要求嵌套 、配对 ,并遵循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才能够指定默认值。

    案例:

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!DOCTYPE persons[
    3. <!ELEMENT persons (person+)>
    4. <!ELEMENT person (name,age,contact,br*)>
    5. <!ELEMENT name (#PCDATA)>
    6. <!ELEMENT age (#PCDATA)>
    7. <!ELEMENT contact (phone|email)>
    8. <!ELEMENT br EMPTY>
    9. <!ATTLIST person
    10. pid ID #REQUIRED
    11. sex (男|女) '男'
    12. qq CDATA #IMPLIED
    13. parent IDREF #IMPLIED
    14. >
    15. ]>
    16. <persons>
    17. <person pid="p1" sex="男" qq="aaa" parent="p2">
    18. <name>张小明</name>
    19. <age>10</age>
    20. <contact>
    21. <phone>1234567</phone>
    22. </contact>
    23. <br/>
    24. </person>
    25. <person pid="p2">
    26. <name>张大明</name>
    27. <age>35</age>
    28. <contact>
    29. <email>123@qq.com</email>
    30. </contact>
    31. </person>
    32. </persons>

    好啦,我们下期再见,如果有没有补充到的地方欢迎大家在评论区留言!

  • 相关阅读:
    英特尔会是下一个诺基亚吗?
    Django实战项目-学习任务系统-任务完成率统计
    【Linux】exec函数族及进程控制相关
    Docker 配置基础优化
    Type android.support.v4.app.INotificationSideChannel is defined multiple times
    如何kill一条TCP连接?
    VirtualBox Ubuntu系统硬盘扩容
    低代码自动翻页采集山姆商品数据
    深入理解计算机网络-4信号编码与调制3
    Redis篇(3)——事件循环与io模型
  • 原文地址:https://blog.csdn.net/m0_67376124/article/details/125533193