目前接觸到的報文格式有三種:xml 、定長報文、變長報文 。 此處只做簡單介紹,日後應該會深入學習到三者之間如何解析,再繼續更新。——2016.9.23 XML XML 被設計用來傳輸和存儲數據。 HTML 被設計用來顯示數據。 XML 僅僅是純文本 XML 沒什麼特別的。它僅僅是純文本而已。有能力 ...
目前接觸到的報文格式有三種: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