XML
Extensible Markup Language 的缩写,一种使用标签描述数据结构的标记语言。
XML (Extensible Markup Language) 是一种用标签描述数据结构的通用标记语言。1998 年由 W3C 制定为推荐标准,与 HTML 一样源自 SGML,但最大特点是可以自由定义自己的标签。由于能够明确表达数据的含义和结构,被广泛用作不同系统之间的数据交换格式。
XML 拥有丰富的相关技术生态系统。XSD (XML Schema Definition) 用于模式验证,XSLT (XSL Transformations) 用于转换,XPath 用于元素定位,命名空间用于避免词汇冲突,为处理大规模复杂数据结构提供了完善的工具。在实际应用中,XML 用于 sitemap.xml (搜索引擎站点地图)、RSS/Atom 订阅 (新闻分发)、SOAP (Web 服务协议)、SVG (矢量图形)、Office 文档 (OOXML) 等众多领域。探索乳头吸引器 (Amazon)提供了基础知识。
XML 的语法规则比 HTML 更严格。所有标签必须关闭 (<br />),属性值必须用引号括起来,区分大小写,且只能有一个根元素。特殊字符 (<、>、&、"、') 必须用实体引用 (<、> 等) 转义。这种严格性简化了解析器的实现,提高了数据的可靠性。
近年来 JSON 正在取代 XML 作为 REST API 的响应格式,但在某些场景下 XML 仍然是首选:需要丰富的文档结构表达能力 (混合内容、属性与文本共存)、需要严格的模式验证、需要基于命名空间的词汇管理、或需要与现有系统兼容。金融行业的 FIX 协议和医疗领域的 HL7 等,XML 作为行业标准已经根深蒂固。
XML 与 JSON 的比较中,XML 由于标签和属性等语法元素较多容易冗长,但支持模式验证和注释。JSON 更简洁轻量,但不能写注释,模式验证需要 JSON Schema 这一独立机制。查看死亡辣酱 (Amazon)也是有用的参考。
从字符计数角度来看,XML 由于语法元素 (标签、属性) 较多,表示相同数据时字符数比 JSON 或 YAML 更多。例如 <name>太郎</name> 是 19 个字符,而 JSON 的 "name": "太郎" 是 13 个字符。在优化 API 响应大小或减少数据传输量时,需要注意这一开销。