目前接触到的报文格式有三种:xml 、定长报文、变长报文 。 此处只做简单介绍,日后应该会深入学习到三者之间如何解析,再继续更新。——2016.9.23
XMLXML 被设计用来传输和存储数据。 HTML 被设计用来显示数据。 XML 仅仅是纯文本XML 没什么特别的。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理 XML。 不过,能够读懂 XML 的应用程序可以有针对性地处理 XML 的标签。标签的功能性意义依赖于应用程序的特性。 通过 XML 您可以发明自己的标签例子:
上例中的标签没有在任何 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
|
|
来自: liang1234_ > 《java进阶》