• XML 和 JSON 学习笔记(基础)


    XML

    XML 与 HTML 的比较
    XMLHTML
    数据传输和存储数据显示数据(排版)
    大小写严格区分不区分
    根元素数目规范下的 XML 有且只会有一个根元素HTML 可以有多个根元素
    标签可以根据需要自定义,并且可扩展属于预定义的标签
    总结XML 不是 HTML 的升级,也不是 HTML 的代替品,虽然两者有点相似,但它们的应用领域及其范围都不同。

    Why

    XML 的出现背景:在实际开发中,不同语言(如 Java、JavaScript 等)的应用程序之间数据传递的格式不同,导致它们进行数据交换时很困难,XML 就应运而生了!(XML 是一种通用的数据交换格式,可以十分方便地实现格式交换)

    XML 的简单易于在任何应用程序中读/写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其他的数据交换格式,但不久之后它们都将支持 XML,那就意味着程序可以更容易的与 Windows、Mac OS、Linux 以及其他平台下产生的信息结合,然后可以很容易加载 XML 数据到程序中并分析它,并以 XML 格式输出结果。

    What

    XML 是一种类似 HTML 的标记语言,叫可扩展标记语言(Extensible Markup Language)。通过标准的数据包装格式,它可以用于数据的说明、储存、传输。

    How

    XML 文件现在多用于作配置文件,设置文件比较多,很多软件,框架都会采取 XML 作为配置文件。

    文档声明

    在一个完整的 XML 文档中必须包裹一个 XML 文档声明,且此声明必须位于文档的首行。

    (XML 声明表示此文档是一个 XML 文档,以此判断需要遵循哪个 XML 版本的规范)

    1. XML 文档声明的语法格式如下:
    2. "version" encoding="value" standalone="value"?>
    3. version 版本号
    4. encoding 编码集
    5. standalone 指定该 XML 文档是否与一个外部文档嵌套使用,取值为 yes/no

    XML 文档的主体内容由元素 Element 组成。元素以树状分层排列,一个元素可以嵌套在另一个元素上。但 XML 文档有且仅有一个根元素。

    1. 元素一般由开始标签、元素内容和结束标签构成,示例:
    2. <城市>北京城市>

    在 XML 文档中可以为元素定义多个属性。属性是对元素的进一步描述/说明。

    1. 属性是依附于元素而存在的,且每个属性都有自己的名称和取值,示例:
    2. <价格 单位="元">¥17.00价格>

    注释

    XML 也有注释,它们不会被 XML 解析器处理。

    1. 格式如下:

    XML 约束

    如果一篇文章的语法正确,但其内容包含违法言论或逻辑错误,如此的文章应该不允许被发表的。同理,在 XML 文档里也可以对其内容进行某些条件的限制。

    DTD 约束

    DTD 是 XML 约束模式语言的一种,根据它语法创建的文件称为 DTD 文件。

     book.dtd 文件示例:

    1. 元素定义格式:
    2. #PCDATA)>
    3. #PCDATA)>
    4. #PCDATA)>

    book.xml 文件示例:

    1. "1.1" encoding="UTF-8"?>
    2. SYSTEM "book.dtd">
    3. <书架>
    4. <>
    5. <书名>西游记书名>
    6. <作者>吴承恩作者>
    7. <售价>¥56.00售价>
    8. >
    9. <>
    10. <书名>呼啸山庄书名>
    11. <作者>艾米莉·勃朗特作者>
    12. <售价>¥54.00售价>
    13. >
    14. 书架>

     公共 DTD 文件引用需要声明 PUBLIC 属性,示例:

    1. web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    2. "http://java.sun.com/dtd/web-app_2_3.dtd">

    内部嵌

    1. DTD 文件完整内部嵌入格式如下:
    2. "1.1" encoding="UTF-8" standalone="yes"?>
    3. DTD 定义语句
    4. ···
    5. ]>
    6. book_DTDinset.xml 示例:
    7. "1.1" encoding="UTF-8" standalone="yes"?>
    8. #PCDATA)>
    9. #PCDATA)>
    10. #PCDATA)>
    11. ]>
    12. <书架>
    13. <>
    14. <书名>西游记书名>
    15. <作者>吴承恩作者>
    16. <售价>¥56.00售价>
    17. >
    18. <>
    19. <书名>呼啸山庄书名>
    20. <作者>艾米莉·勃朗特作者>
    21. <售价>¥54.00售价>
    22. >
    23. 书架>

    解释 DTD 元素的五种内容形式
    格式说明
    (#PCDATA)表示元素中嵌套的内容是普通文本字符串
    (子元素, ···)说明元素会包含其它元素(即有子元素)
    (#PCDATA | 子元素, ···)说明元素既可以包含字符数据,也可以包含子元素
    EMPTY说明该元素是一个无内容的空元素。假如文档中元素本身就有明确的含义,就会使用 EMPTY
    ANY表示该元素可以包含任何东西。。像根元素一样

     介绍 DTD 元素的一些常用符号形式:

    • 问号[?]:表示该对象可以出现 0 or 1 次
    • 星号[*]:表示该对象可以出现 >=0 次
    • 加号[+]:表示该对象可以出现 >=1 次
    • 竖线[|]:表示必须在其列出的对象中选择 1 个
    • 逗号[,]:表示对象们必须按照指定的顺序出现
    • 括号[()]:用于分类、分组

    属性定义

    1. 属性名1 属性类型 设置说明
    2. 属性名2 属性类型 设置说明
    3. ···
    4. >
    5. 属性名1 属性类型 设置说明
    6. 属性名2 属性类型 设置说明
    7. ···
    8. >
    9. ······

    1. ]>
    2. ANY>
    3. EMPTY>
    4. ]>
    5. #PCDATA)>
    6. EMPTY>
    7. 编号 ID #REQUIRED
    8. 上司 IDREF #IMPLIED>
    9. 上班时间 IDREFS #REQUIRED>
    10. ]>
    11. <幸福超市>
    12. <介绍 成立时间="诞生于1996"/>
    13. 幸福超市>
    14. <购物篮>
    15. </>
    16. < 品种="鱼肉"/>
    17. < 品种="牛肉"/>
    18. 购物篮>
    19. <员工们>
    20. <员工 编号="110">
    21. <姓名>张三姓名>
    22. <联系电话>110联系电话>
    23. <上班时间 星期="一 三 五">
    24. 员工>
    25. <员工 编号="119" 上司="王五">
    26. <姓名>李四姓名>
    27. <联系电话>119联系电话>
    28. <上班时间 星期="二 四 六"/>
    29. 员工>
    30. 员工们>

    DTD 属性定义的四种设置说明

    格式说明
    #REQUIRED表示元素此属性是必须设置的。多定义在 id 上
    #IMPLIED表示元素该属性可有可无。
    #FIXED表示元素该属性的默认值。
    "默认值"与 #FIXED 一样,但有所不同的是如果 XML 文档中设置了该属性的值,则此值可以覆盖原来的默认值。

     DTD 常用属性类型的介绍:

    1. CDATA:表示属性类型是字符类型,与元素内容说明中的 #PCDATA 一样
    2. (···):即 | 枚举类型 Enumerated,多中选一
    3. ID:作为 ID 类型的属性可用来唯一标识 XML 文档中某个元素。一个元素只能有一个 ID 类型的属性,且 ID 类型属性的设置说明必须是 #REQUIRED 或 #IMPLIED
    4. IDREF 和 IDREFS:前者是建立一对一的关系,后者是建立一对多的关系

    Schema 约束

    出现背景:由于 DTD 采用的是非 XML 语法格式,且其描述不全面;而 Schema 采用的是本身就是一个 XML 文档

    SchemaDT D
    XML 语法格式,其本身就是一种 XML 文档非 XML 语法格式,其描述有局限
    本身有 XML 一样的合法性验证机制本身缺失较好的验证机制,必须独立处理
    名称空间支持度:Schema > DTD
    数据类型支持数目:Schema > DTD
    约束能力:Schema > DTD

    JSON

    暂空

    更多的看这篇文章就好了

    https://www.cnblogs.com/SanMaoSpace/p/3139186.htmlicon-default.png?t=N7T8https://www.cnblogs.com/SanMaoSpace/p/3139186.html

  • 相关阅读:
    MySQL 中with rollup的用法,对分组再汇总
    HTML学生个人网站作业设计:基于HTML+CSS+JavaScript制作简单响应式个人博客HTML模板(8页)
    springboot11:原生组件注入
    禅道开源改造
    redis极速的奥秘
    Android Accessibility -- 抖音自动化-实现无障碍
    基于SpringBoot的大型商场应急预案管理系统
    在nodejs中使用typescript
    聚焦千兆光模块和万兆光模块的测试技术及设备
    2.3 LINQ
  • 原文地址:https://blog.csdn.net/2301_76632538/article/details/132725631