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

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解析器真正需要的“事件”及其参数。
• 类型感知数值编码:整数、浮点数、布尔值等按实际类型用变长整数(如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做不到。










