報文格式:xml 、定長報文、變長報文

来源:http://www.cnblogs.com/zhangym118/archive/2016/09/23/5899937.html
-Advertisement-
Play Games

目前接觸到的報文格式有三種: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

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • <!DOCTYPE>到底是個神馬? 前兩天和朋友談到<!DOCTYPE>,今天將網上學習到的資料在這裡整理一下 因為HTML5的風靡人們慢慢的弱化了對<!DOCTYPE>的理解,但是現在還是有很多的面試官在問這個問題,所以還是有必要對其瞭解一下,以便以後有些許談資。 1.<!DOCTYPE>有神馬作 ...
  • [1]原理介紹 [2]數字加減 [3]元素尺寸 [4]內容滾動 ...
  • 這兩天整個技術圈都炸鍋了,微信小程式(微信應用號)發佈內測,首批200家收到邀請,但是沒受邀請的同學,也不用擔心,下麵介紹一下解決方法。 首先需要下載ide,昨天只需要下載0.9版本的編輯器並替換文件就行了,但是可能微信那邊修複了,導致不可用。現在我們要準備兩個版本:0.7盒0.9的版本,我測試過了 ...
  • [1]原理簡介 [2]範圍圈定 [3]大小改變 [4]代碼優化 ...
  • 首先說明一下,即使不熟悉fis3,閱讀文本應該也會有所收穫。 本文以fis-parser-imweb-tplv2插件為模板插件,目的不在於使用哪個模板,而是組件可視化的實現思路,不必擔心。 先說說模板插件 首先說明一下,我們的項目使用的fis3自帶的mod.js做模塊化開發。 fis-parser- ...
  • 前段時間在研究canvas,感覺還挺好玩的,就寫了一個小demo,效果如下: 第一次嘗試用js面向對象的方式來寫,經驗不足,還請大家多多包涵。 下麵開始簡單介紹代碼: canvas畫布: 彩虹球的隨機顏色是通過下麵兩個方法來實現的,在 "《js常用方法和一些封裝(2) 隨機數生成》" 中曾經提到過。 ...
  • 1.article元素(標簽) 用於定義一個獨立的內容區塊,比如一篇文章,一篇博客等。 article元素內可以嵌套其他元素,它可以有自己的頭、尾、主體等內容,是用時要特別註意內容的獨立性一般獨立完整的內容才使用article元素,如果只是一段內容的話應該是用section元素。 2.section ...
  • bootstrap scrollspy && bootstrap dropdown ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...