欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

报文格式:xml 、定长报文、变长报文

程序员文章站 2022-07-10 15:25:50
...

目前接触到的报文格式有三种:xml 、定长报文、变长报文 。

此处只做简单介绍,日后应该会深入学习到三者之间如何解析,再继续更新。——2016.9.23

 

XML

XML 被设计用来传输和存储数据。

HTML 被设计用来显示数据。

XML 仅仅是纯文本

XML 没什么特别的。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理 XML。

不过,能够读懂 XML 的应用程序可以有针对性地处理 XML 的标签。标签的功能性意义依赖于应用程序的特性。

通过 XML 您可以发明自己的标签

例子:

XML 使用简单的具有自我描述性的语法:

<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body>

  

上例中的标签没有在任何 XML 标准中定义过(比如 <to> 和 <from>)。这些标签是由文档的创作者发明的。

这是因为 XML 没有预定义的标签。

在 HTML 中使用的标签(以及 HTML 的结构)是预定义的。HTML 文档只使用在 HTML 标准中定义过的标签(比如 <p> 、<h1> 等等)。

XML 允许创作者定义自己的标签和自己的文档结构。

 

优缺点:

可读性强,易于维护;

国际通用标准格式,不易于被防火墙拦截;

节点臃肿,占用大量内存,传输慢。

定长报文

  目前应用最广泛的报文。

  定义:使用固定的长度表示一个信息。定长定长,就是固定长度,我暂时是这样理解的。

  优点:省去多余的节点,传输数据更快。

  局限性:担心以后所定义域的长度要加长,配置或程序就要随之改变,维护困难。

例子:

比如定义一个18字节的报文:abcde12345fghigklm

abcde为一个域,12345为一个域,fghigklm为一个域。这些都是根据编写者定义的。如果业务需求要求报文增加日期,则需要修改报文为:abcde12345fghigklm20160923,现在则是一个26字节的报文了。

如果定长报文含有多个域,并且后期更改的域的格式有很多,这种情况就凸显了定长报文的局限性。

 

变长报文

结合xml的可维护性和定长报文的占空间少。

1 例子:03abc051234502ef
2 说明:03  此域的长度标识(没有规范命名,暂且成为长度标识),向后取3位,即:abc
3    05 此域的长度标识,向后取5位,即: 12345
4 02 向后取2位,即: ef