本文已参与「新人创作礼」活动,一起开启掘金创作之路。
最近在写一个插件, 用来将IntelliJ平台上面的项目中有xml文件按照name属性进行字母表排序. 在写插件的过程, 涉及大量的对xml格式及API的处理, 这里简要记录一下收获与心得.
标记语言
标记语言(Markup Language), 是一种电脑文字编码, 通过将文本(text)以及文本相关其它信息结合起来, 展现出关于文档结构和数据处理的细节. 当前广泛使用的标记语言有HTML(HyperText Markup Language, 超文本标记语言)和XML(Extensible Markup Language, 可扩展标记语言). 标记语言在网页以及网络服务中普通应用.
HTML vs XML
HTML和XML是由同一种语言发展出来的, 其共同父语言是SGML(Standard Generalized Markup Language, 标准通用标记语言).
XML由HTML发展而来, 格式与之相似, 但更加严格.
| \ | HTML | XML |
|---|---|---|
| 格式 | 例如 link | 同HTML |
| 关注点 | 数据的展示和用户的体验 | 数据本身 |
| 扩展性 | tag是预定义的, 不可扩展 | tag可扩展, 可自定义 |
XML描述的是结构, 内容和语义, 它不描述页面元素的格式化. HTML则侧重于如何表现信息, 内容的描述和展示融为一体. XML中每个元素名称都是成对出现的, 结束的时候在标签前加/.
XML作用
XML可以用来数据的描述, 存储和交换. 作为一种通用的数据格式, 它是平台无关, 语言无关, 系统无关的, 极大地方便于数据的集成和交互.
- 存储和交换数据
XML只用元素和属性来描述数据, 而不提供数据的显示方法, 这使得XML具有能够运行于不同系统平台之间和转换成不同格式目标文件. 用XML在应用程序和公司之间作数据交换, 几个应用程序可以共享和解析同一个XML文件, 不必使用传统的字符串解析或拆解过程.
- 配置
许多应用都将配置数据存储在各种文件里, 如SSH, Android. 使用XML配置文件的应用程序能够方便地处理所需数据, 不用像其它应用那样要经过重新编译才能修改和维护应用系统. XML比数据库占用的资源少, 操作方便, 用来存储简单的信息, 现在主要用在程序的配置文件上(比如web.xml). 现在有越来越多的设备也支持XML了.
XML文件的后缀名是xml, 每个XML文件有且仅有一个根元素, 所谓根元素就是包含了其他所有元素的元素. XML目前只有一个版本, 即1.0. XML是自描述数据, 使用现有的国际标准. XML中有良构的(Well-formed)XML和合法的(validate)XML两种标准.