当前位置: 首页 > news >正文

第二章 EXI协议原理与实现--7.5 Efficient XML库和OpenEXI.jar编解码交叉测试

7.5 Efficient XML库和OpenEXI.jar编解码交叉测试

本节对Efficient XML库和OpenEXI.jar库进行编解码交叉测试,目的是验证Efficient XML库的兼容性。

7.5.1 测试方案

目标文件:  flightdata.xml、flightdata.xsd、flightdata.cxs

由于efficientXML库默认使用compress压缩选项,而ISO15118系统中不使用option,所以针对有无oprion设计两套测试方案:

(1)有compress压缩选项

测试示例代码结果:

自编自解  encode、decode               [default option: compress]

自编他解  encode、OpenEXI.jar        [default option: compress]

他编自解  OpenEXI.jar、decode        [default option: compress]

他编他解  OpenEXI.jar、OpenEXI.jar [default option: compress]

(2)无compress压缩选项

关闭掉compress选项,重新测试结果:

自编自解  encode、decode               [default option: compress=false]

自编他解  encode、OpenEXI.jar        [default option: compress=false]

他编自解  OpenEXI.jar、decode        [default option: compress=false]

他编他解  OpenEXI.jar、OpenEXI.jar [default option: compress=false]

7.5.2 有compress压缩选项

测试结果如下:

1自编自解  encode、decode       [default option: compress]

运行encode程序,得到flightdata.xml编码后的文件-- flightdata-xcode.xml.exi:

运行decode程序,对flightdata-xcode.xml.exi解码,输出的文件flightdata-xcode-out.xml内容与flightdata.xml完全相同。 

2自编他解  encode、OpenEXI.jar  [default option: compress]

运行encode程序,得到flightdata.xml编码后的文件-- flightdata-xcode.xml.exi。

使用OpenEXI.jar解码,必须选中Alignment:compress选项:

解码输出文件-- flightdata-xcode.xml_decode.xml

除了域名空间不同,二者内容完全相同。表明解码成功。

3他编自解  OpenEXI.jar、decode  [default option: compress]

使用OpenEXI.jar编码输出文件--flightdata_encode.exi,字节内容与自编结果有所差异,字节数相差1:

除了长度不同,字节内容也不同:

现在使用decode解码 flightdata_encode.exi文件,成功得到解码内容 flightdata-xcode-out.xml:

与原始文件比较完全相同,说明解码成功。

4他编他解  OpenEXI.jar、OpenEXI.jar [default option: compress]

解码选项:

输出文件 flightdata_encode_decode.xml

与原始内容比较, 只有域名空间差异,内容一致:

7.5.3 无compress压缩选项

测试结果:

1 自编自解  encode、decode       [default option: compress=false]

运行encode程序,得到flightdata.xml编码后的文件-- flightdata-xcode.xml.exi:

运行decode程序,得到解码后的文件-- flightdata-xcode-out.xml:

内容与flightdata.xml完全相同。 

2 自编他解  encode、OpenEXI.jar  [default option: compress=false]

运行encode程序,得到flightdata.xml编码后的文件-- flightdata-xcode.xml.exi。

使用OpenEXI.jar解码,必须选中Alignment:bitPacked选项:

解码输出文件-- flightdata-xcode.xml_decode.xml

除了域名空间不同,内容完全相同。表明解码成功。

3 他编自解  OpenEXI.jar、decode  [default option: compress=false]

使用OpenEXI.jar编码输出文件--flightdata_encode.exi,字节内容与自编结果完全一致:

运行decode程序,解码成功。

4 他编他解  OpenEXI.jar、OpenEXI.jar [default option: compress=false]

输出文件 flightdata_encode_decode.xml

与原始内容比较, 只有域名空间差异,内容一致:

【测试结论】

经过有option/无option选项编解码,自编他解/他编自解,表明efficientXML 编解码功能与OpenEXI.jar完全兼容,输出结果是一致的。唯一的差别是OpenEXI.jar 多输出了两个标准域名空间,域名符号不同,但是这都不影响正常使用。

相关文章:

  • Linux网络相关概念和重要知识(2)(UDP套接字编程、聊天室的实现、观察者模式)
  • XGBoost
  • 1987-2023年各省进出口总额数据整理(含进口和出口)(无缺失)
  • 目标检测中归一化的目的?
  • 大模型agent的构建
  • Python高级——类的知识
  • 域渗透工具推荐:impacket
  • 第6关:部分快速排序-用分治法实现
  • 2.Linux基本指令(下)
  • conda报错activate没办法激活环境
  • 从TouchDriver Pro到Touchdriver G1,Weart触觉手套全系解析:XR交互的“真实触感”如何实现?
  • 【北京迅为】iTOP-RK3568开发板OpenHarmony系统南向驱动开发UART接口运作机制
  • 各种排序汇总
  • Linux驱动开发基础(can)
  • 文献检索与下指南
  • fetch,ajax,axios的区别以及使用
  • 【python】OpenCV—Template Matching
  • 数学建模 第三节
  • Python绘图技巧,主流绘图库
  • Day 21: 数组中的逆序对
  • 湖北宜化拟斥资超32亿加价回购“弃子”,布局上游煤炭业务
  • 警方通报男子广州南站持刀伤人:造成1人受伤,嫌疑人被控制
  • 经济日报:美国滥施汽车关税损人不利己
  • 首映|奥斯卡最佳国际影片《我仍在此》即将公映
  • 智能手表眼镜等存泄密隐患,国安部提醒:严禁在涉密场所使用
  • 巴基斯坦称未违反停火协议