0

0

什么是EXI高效XML交换 W3C二进制XML标准

煙雲

煙雲

发布时间:2026-01-07 10:11:19

|

334人浏览过

|

来源于php中文网

原创

EXI是W3C制定的二进制XML交换标准,通过语法结构重编码实现高压缩率与快速解析,解决文本XML体积大、解析慢、内存占用高问题,适用于嵌入式、V2G、IoT等资源受限场景。

什么是exi高效xml交换 w3c二进制xml标准

EXI(Efficient XML Interchange)是W3C制定的二进制XML交换标准,核心目标是把传统文本XML高效压缩为紧凑、可快速解析的二进制流,不是简单打包,而是从语法结构层面重编码

它解决什么问题

XML人类可读、语义清晰,但体积大、解析慢、内存占用高——这对嵌入式设备、车载通信(如V2G充电)、物联网终端等资源受限场景很不友好。EXI直接在二进制层处理XML事件(开始标签、属性、文本、结束标签等),跳过字符解析和字符串比较,大幅降低CPU和带宽开销。

两种主要编码模式

Schema-less(无模式):不依赖XSD,自动学习文档中出现的元素名、命名空间、值等,动态构建字符串表。适合快速适配任意XML,压缩率中等,实现最简单。

Schema-informed(模式感知):提前加载XSD,预填字符串表,并利用类型约束做预测性编码。例如,若XSD规定某元素后必须跟特定子元素,该子元素在流中可编码为0位。这是压缩率最高、解析最快的方式,常用于ISO 15118等工业协议。

关键压缩技术

字符串表复用:元素名、属性名、命名空间URI等重复出现的字符串只存一次,后续用短整数索引代替。

事件驱动编码:不保存尖括号、引号、闭合标签等冗余符号,只记录XML解析器真正需要的“事件”及其参数。

Pippit AI
Pippit AI

CapCut推出的AI创意内容生成工具

下载

类型感知数值编码:整数、浮点数、布尔值等按实际类型用变长整数(如VLQ)、IEEE 754精简格式等编码,不转成字符串。

和普通ZIP压缩XML的区别

• ZIP/GZIP是对文本XML做通用字节流压缩,仍需先解析完整XML才能解压使用;EXI解码后可直接生成SAX/DOM事件或对象,边解码边处理。

• 同样内容,EXI体积通常只有原始XML的1%–5%,远高于ZIP(一般压缩到30%–50%);在V2G实测中可达1/100。

• EXI支持数字签名场景下的规范化(Canonical EXI),确保逻辑等价的XML生成完全一致的二进制,这点ZIP做不到。

相关专题

更多
Sass和less的区别
Sass和less的区别

Sass和less的区别有语法差异、变量和混合器的定义方式、导入方式、运算符的支持、扩展性等。本专题为大家提供Sass和less相关的文章、下载、课程内容,供大家免费下载体验。

199

2023.10.12

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1866

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2084

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

963

2024.11.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

253

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

206

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1462

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

612

2023.11.24

java学习网站推荐汇总
java学习网站推荐汇总

本专题整合了java学习网站相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.08

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Rust 教程
Rust 教程

共28课时 | 4.2万人学习

Git 教程
Git 教程

共21课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号