XML到底是干什么的

定义

XML本身是一种格式规范,是一种包含了数据以及数据说明的文本格式规范。

抛砖

比如,我们要给对方传输一段数据,数据内容是“too young,too simple,sometimes naive”,要将这段话按照属性拆分为三个数据的话,就是,年龄too young,阅历too simple,结果sometimes naive。
我们都知道程序不像人,可以体会字面意思,并自动拆分出数据,因此,我们需要帮助程序做拆分,因此出现了各种各样的数据格式以及拆分方式。
比如,可以是这样的数据为“too young,too simple,sometimes naive”然后按照逗号拆分,第一部分为年龄,第二部分为阅历,第三部分为结果。也可以是这样的数据为“too_young**too_simplesometimes_naive”从数据开头开始截取前面十一个字符,去掉号并把下划线替换为空格作为第一部分,再截取接下来的十一个字符同样去掉并替换下划线为空格作为第二部分,最后把剩下的字符同样去号体会空格作为第三部分。
这两种方式都可以用来容纳数据并能够被解析,但是不直观,通用性也不好,而且如果出现超过限定字数的字符串就容纳不了,也可能出现数据本身就下划线字符导致需要做转义。

引玉

上面的数据用XML表示:

   <person age="too young" experience="too simple" result="sometimes naive" />
<person>
    <age value="too young" />
    <experience value="too simple" />
    <result value="sometimes naive" />
</person>

这两种方式都是XML,都很直观,附带了对数据的说明,并且具备通用的格式规范,可以让程序做解释。
如果用json格式的话,表示是这样的:

{
    "age":"too young",
    "experience":"too simple",
    "result":"sometimes naive"
}

看出来没,其实数据都是一样的,不同的只是数据的格式而已,同样的数据,我用xml格式传给你,你用xml格式解析出三个数据,用json格式传给你,你就用json格式解析出三个数据,还可以我本地保存的是xml格式的数据,我自己先解析出三个数据,然后构造成json格式传给你,你解析json格式,获得三个数据,再自己构造成xml格式保存起来,说白了,不管是xml还是json,都只是包装数据的不同格式而已,重要的是其中含有的数据,而不是包装的格式。

### XML 文件的作用 XML(可扩展标记语言)是一种用于定义文本信息格式的强大工具,旨在传输和存储数据[^1]。通过使用元素和属性来描述数据,在数据传送过程中始终保持了诸如父/子关系这样的数据结构[^2]。 #### 数据交换与共享 多个应用程序能够轻松地共享并解析同一份XML文件,无需依赖传统字符串解析或拆解过程。这使得基于XML的数据交换更为灵活可靠,既可以通过位置访问数据项,也能依据元素名称获取特定信息。 ```xml <?xml version="1.0"?> <library> <book id="bk101"> <author>Author Name</author> <title>Title of the Book</title> </book> </library> ``` 此示例展示了如何利用XML表示图书馆藏书的信息,其中`<library>`作为根节点包含了若本书籍记录,每条记录由唯一的ID标识,并细分为作者姓名及书籍标题等字段。 #### 复杂映射关系处理 当面对较为复杂的查询逻辑以及涉及多种实体间关联的情况时,采用XML映射文件有助于提高代码的清晰度与后期维护便利性。尤其适用于MyBatis框架下的持久层设计模式中,相较于注解方式更适合表达多层次嵌套结构的数据模型[^3]。 #### 存储一对多的关系型数据 对于需要高效管理一对多关系的数据集而言,XML提供了一种直观而简便的方法来进行表述。例如在一个部门对应多名员工的情形下,可以直接在单一XML文档内构建相应的层次化树形结构,从而简化了此类复杂数据类型的储存操作[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值