HTML Hyper Text Markup Language 超级文本标记(标签)语言
    服务器给浏览器发送响应信息,浏览器懂这个规则 解析语言—-进行展示

    XML Extensible Markup Language 可扩展标记(标签)语言
    创建这个语言不是为了HTML扩展,更多的是关注数据的存储和传输

    1.写法
    创建一个文件,文件第一行写上头信息<?_xml version=”” encoding=””?>_

    2.规则
    规则一般分为结构良好的(有规则,标签对应)和结构有效的(在结构良好的基础上遵循很多规则—-写什么标签、名字叫什么、属性叫什么、顺序…)。如果想要让写完的xml遵循结构有效的,需要单独再写一个xml文件—-用来描述规则(类似元注解的作用)。
    .tld Tag Library Definition 用来描述标签的
    .dtd Document Type Difinition 文档类型描述
    .xsd Xml Schema Definition 用来描述xml文档内容
    .xml eXtensible Markup Language 用来存储数据的文档

    3.基本xml文件写法
    为了让xml文件中的内容遵循某些规则,自定义dtd。第一可以写在当前的xml文件中;第二可以写在一个外部的文件中引入,外部引入又有两种方法。**

    1. <!DOCTYPE school SYSTEM "当前系统内部去找,写文件名">
    2. <!DOCTYPE school PUBLIC "外部路径">

    描述根标记
    **<!DOCTYPE school [规则]>
    描述根标记中的其他标记<标签>
    **<!ELEMENT 元素名 类别|(元素里面的内容) >
    类别 通常是EMPTY
    元素内容 (其他标签,其他标签)
    标签内部没有标签 是普通的文字 PCDATA
    image.png
    正常情况下 描述标签内部的子标签时候 **默认认为是一个
    还需要在子标签基础上增加一个 对于个数的说明**

    符号 代表个数
    * 0-n
    0-1
    + 1-n
    都有
    | a或b其中一个
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!--根标记-->
    3. <!DOCTYPE school[
    4. <!ELEMENT school (class*)>
    5. <!ELEMENT class (teacher,student*)>
    6. <!ELEMENT teacher (sex1|sex2)>
    7. <!ELEMENT student EMPTY>
    8. <!ELEMENT sex1 (#PCDATA)>
    9. <!ELEMENT sex2 (#PCDATA)>
    10. ]>
    11. <school>
    12. <!-- 任意个class,1个teacher,任意个student,但teacher和student都必须有,1个sex1或者1个sex2-->
    13. <class>
    14. <teacher>
    15. <sex1></sex1>
    16. </teacher>
    17. <student></student>
    18. <student></student>
    19. </class>
    20. <class>
    21. <teacher>
    22. <sex2></sex2>
    23. </teacher>
    24. <student></student>
    25. </class>
    26. </school>

    每一个标记中还需要有属性
    <!ATTLIST> Attribute List
    **<!ATTLIST 标签名 属性名 什么类型 值>
    通常类型的描述
    CDATA Character DATA 原封不动 (通常用来描述属性名)
    (t1|t2|t3) 来描述
    通常值的描述
    默认值 “xxx”
    值的说明 (是否是必须 固定的。。)
    #REQUIRED必须 #IMPLIED非必需 #FIXED value固定的**

    <!--school标签中必须有id属性   写在根标记中-->
    <!ATTLIST school 
            id CDATA #REQUIRED
    >
    

    如果想要描述实体
    **<!ENTITY 实体名字 “实体的值”>
    例如:<!ENTITY spring “this is spring”>

    &spring;
    相当于
    this is spring
    **

    详细看这个https://www.w3school.com.cn/dtd/index.asp