xsd2ccC++代碼生成器
Xsd2cc是一個(gè)霸氣的C++代碼生成器,直接從指定的XML數(shù)據(jù)格式定義文件(.xsd)生成對(duì)應(yīng)的C++類代碼,然后將這些代碼和xsd2cc庫結(jié)合(自帶的),就可以非常方便的寫XML數(shù)據(jù)解析了(未來準(zhǔn)備自動(dòng)生成)。Xsd2cc是基于C++的對(duì)象模型構(gòu)建的,僅僅依賴libxml庫,支持快速、高效的XML文檔解析。Xsd2cc是由STL實(shí)現(xiàn),無異常,無需手工內(nèi)存管理,安全、可靠,簡(jiǎn)單易用。
根據(jù)作者大量調(diào)查分析,目前xsd2cc是此類場(chǎng)景下最好用的C++開源軟件。如果你正在處理類似的場(chǎng)景,xsd2cc正是你需要的,千萬不要錯(cuò)過。高效的自動(dòng)化代碼生成才是王道,才是應(yīng)對(duì)變化的秘密武器。Xsd2cc在GPL下開源,歡迎使用和反饋。
Xsd2cc的主要產(chǎn)出物:
(1)xsd2cc: 可執(zhí)行程序,用于從.xsd生成C++代碼文件;
(2)libxsd2cc.a: 業(yè)務(wù)編寫所需的靜態(tài)庫;
(3)xsd2cc.h: 業(yè)務(wù)編寫需要的API文件(已include到自動(dòng)生成的代碼中)。
xsd2cc的主要特色:
(1)從指定的.xsd文件,生成高效的C++類代碼,以解析xsd對(duì)應(yīng)的各種XML數(shù)據(jù);
(2)支持XML的序列化和反序列化操作。通俗的講,就是XML的讀和寫;
(3)提供業(yè)務(wù)編寫所需的靜態(tài)庫xsd2cc和自描述的API文件;
(4)構(gòu)建于C++對(duì)象系統(tǒng)之上,僅依賴于C++ STL,無需手工內(nèi)存管理,安全可靠;
(5)生成的代碼遵從Google C++編碼規(guī)范,表里如一;
(6)具備良好的跨平臺(tái)移植能力(當(dāng)然 Windows 除外):目前支持Linux, IBM AIX, HP-UX and Mac OS X。
(7)在GPL下開源。
具體的流程圖,如下:(以 test.xsd 為例。紅色內(nèi)容為工具使用者需要供的部分。)
xsd2cc的缺點(diǎn):
(1)僅針對(duì)C++應(yīng)用。
xsd2cc的TODO:
(1)多文件處理支持:進(jìn)一步優(yōu)化xsd語法中 include和import的支持;
(2)自動(dòng)化生成XML讀寫代碼邏輯,減少用戶編寫代碼的量;
(3)代碼優(yōu)化。
預(yù)知詳情,請(qǐng)?jiān)L問 http://xsd2cc.github.io 并參考 https://github.com/xsd2cc/xsd2cc/tree/master/tests 下的測(cè)試代碼。
======== 更新 ===== 2015-04-18=======
(1)增加了部分Wiki文檔,和簡(jiǎn)要的使用說明。(后續(xù)應(yīng)該會(huì)寫一個(gè)基于 gitbook 的使用手冊(cè))
