• DTD——XML介绍和基本语法


    目录

    一.XML

    1.什么是XML

    2.为什么学习XML

    3.XML的作用

    4.标准的XM格式

    4.1.XML语法-文档声明

    4.2.XML语法-元素

    注意事项和细节问题:

    4.3.XML语法-属性

     4.4.XML—定义有效的属性

    ​编辑

    4.5.XML语法-CDATA节

    4.7.XML语法-注释


    一.XML

    1.什么是XML

    1. XML 指可扩展标记语言(EXtensible Markup Language)
    2. XML 是一种标记语言,类似 HTML
    3. XML 的设计宗旨是传输数据,而非显示数据
    4. XML 标签没有被预定义。您需要自行定义标签。
    5. XML 被设计为具有自我描述性。
    6. XML 是 W3C 的推荐标准

    2.为什么学习XML

    在XML语言中,它允许用户自定义标签。一个标签用于描述一段数据;一个标签可以分为开始标签和结束标签,在开始标签和结束标签之间,又可以使用其他标签描述其他数据,以此来实现数据关系的描述。

    3.XML的作用

    数据库交互

    做配置

    4.标准的XM格式

    1.文档声明 
    2.元素 
    3.属性 
    4.定义有效的属性
    5.CDATA区、特殊字符 

    6.注释

    4.1.XML语法-文档声明

    1. XML声明放在XML文档的第一行
    2. <?xml version="1.0" encoding="utf-8" standalone="yes" ?>

    XML声明由以下几个部分组成:

    version –文档符合XML1.0规范,我们学习1.0 
    encoding –文档字符编码,比如”GB2312”或者”UTF-8” 
    standalone –文档定义是否独立使用 
    standalone=”no”为默认值。yes代表是独立使用,而no代表不是独立使用

    4.2.XML语法-元素

    (1)每个XML文档必须有且只有一个根元素

    • 根元素是一个完全包括文档中其他所有元素的元素
    • 根元素的起始标记要放在所有其他元素的起始标记之前
    • 跟元素的结束标记要放在所有其他元素的结束标记之后

    (2)XML元素指的是XML文件中出现的标签,一个标签分为开始标签和结束标签,一个标签有如下几种书写方式,

    • 包含标签体:
    <a>www.sohu.com</a>
    • 不含标签体的:
    <a></a>,简写为:<a/>
    • (3)一个标签中也可以嵌套若干子标签。但所有标签必须合理地嵌套,绝对不允许交叉嵌套,例如
    <a>welcome to <b> www.sohu.com </a></b>

    注意事项和细节问题:

    • (3)一个标签中也可以嵌套若干子标签。但所有标签必须合理地嵌套,绝对不允许交叉嵌套,例如
    <a>welcome to <b> www.sohu.com </a></b>
    • 这种情况肯定是要报错的。

    (2)由于在XML中,空格和换行都作为原始内容被处理,所以,在编写XML文件时,要特别注意。

    (3)命名规范:一个XML元素可以包含字母、数字以及其它一些可见字符,但必须遵守以下规范:

    • 区分大小写,例如,元素P和元素p是两个不同的元素
    • 不能以数字或下划线”_”开头
    • 元素内不能包含空格
    • 名称中间不能包含冒号(:)
    • 可以使用中文,但一般不这么用

    4.3.XML语法-属性

    1. <student id="100">
    2. <name>Tom</name>
    3. </student>

    (1)属性值用双引号(”)或单引号(’)分隔,如果属性值中有单引号,则用双引号分隔;如果有双引号,则用单引号分隔。那么如果属性值中既有单引号还有双引号怎么办?这种要使用实体(转义字符,类似于html中的空格符),XML有5个预定义的实体字符,如下:

    XML实体字符

    (2)一个元素可以有多个属性,它的基本格式为:

    1. <元素名 属性名1="属性值1" 属性名2="属性值2">
    2. <person pid="p1" sex="男" qq="aaa" parent="p2">
    • (3)特定的属性名称在同一个元素标记中只能出现一次 

    (4)属性值不能包括<,>,&,如果一定要包含,也要使用实体

     4.4.XML—定义有效的属性

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

    4.5.XML语法-CDATA节

    假如有这么一个需求,需要通过XML文件传递一幅图片,怎么做呢?其实我们看到的电脑上的所有文件,本质上都是字符串,不过它们都是特殊的二进制字符串。我们可以通过XML文件将一幅图片的二进制字符串传递过去,然后再解析成一幅图片。那么这个字符串就会包含大量的<,>,&或者“等一些特殊的不合法的字符。这时候解析引擎是会报错的。

    所以,有些内容可能不想让解析引擎解析执行,而是当做原始内容处理,用于把整段文本解释为纯字符数据而不是标记。这就要用到CDATA节。

    语法如下:

    1. <![CDATA[
    2. ......
    3. ]]>

    CDATA节中可以输入任意字符(除]]>外),但是不能嵌套!

    如下例,这种情况它不会报错,而如果不包含在CDATA节中,就会报错:

    1. <stu id="001">
    2. <name>杨过</name>
    3. <sex></sex>
    4. <age>20</age>
    5. <intro><![CDATA[ad<<&$^#*k]]></intro>
    6. </stu>

    4.7.XML语法-注释

    XML的注释类似于HTML中的注释:

    <!--这是一个注释-->
    • (1)注释内容不要出现-- 

    (2)不要把注释放在标记中间; 
    (3)注释不能嵌套 
    (4)可以在除标记以外的任何地方放注释

  • 相关阅读:
    【代码源每日一题Div1】子串的最大差「单调栈?」「ST表 + 二分」
    【第2章 Node.js基础】2.1 JavaScript基本语法
    vue3 弹框随窗口大小实时变化
    PHP毕业设计源代码计算机学院师生招聘系统
    XShelll-修改快捷键-xftp-修改编辑器
    Java学习笔记(三十五)
    分类神经网络1:VGGNet模型复现
    [论文笔记]RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL
    谈一谈冷门的C语言爬虫
    dev的CheckedComboBoxEdit下拉框控件设置成单选框
  • 原文地址:https://blog.csdn.net/weixin_66277116/article/details/125541114