2010-07-08 123 views
1

我不確定什麼是正確的術語,有點像使用XML作爲數據存儲的ORM。是否有任何體面的工具可以基於XML模式自動生成C++類(包括數據和序列化/反序列化)?或者將創建基於C++類定義的XML同步代碼和模式?C++代碼/ XML生成工具

TinyXML非常好,但它花費所有時間編寫代碼來將XML數據加載/保存到類中是如此的老派。我已經看到類似的工具集中在SOAP/WSDL上,但他們在基礎之上生成了各種其他代碼。

那裏有好的開源庫嗎?

+0

根據我的經驗,基於XML模式自動生成C++類不是一個好主意,特別是如果模式很大和/或可能會更改。每次模式更改時,都必須重新生成所有類,這通常需要完全重建系統的其餘部分。 – 2010-07-08 15:27:19

+3

更好,我必須重建比我的代碼是錯誤的。重建的時間比編寫和測試超枯燥的XML(de)序列化代碼的日子要好。 – 2010-07-08 15:41:48

回答

2

我所見過的唯一嘗試做到這一點的是CodeSynthesisXSD

+1

我們試過這個以及其他約5種產品,這是贏家。 也很好的支持。 – 2010-07-08 15:56:05

+0

格雷格沒有提到他和他的合作者嘗試過的其他產品,但是響應[XML Schema to C++ Classes](http://stackoverflow.com/q/445905/1497596)提供了許多其他可能性。 – DavidRR 2013-10-23 13:40:33

0

不是開源的,但不會XML Thunder適合你嗎?

+0

這是C而不是C++,但值得一看。我看不到他們網站上的下載/購買/定價鏈接,可以嗎? – 2010-07-08 15:45:29

+0

除了他們已經做了很長時間以外,對他們不瞭解的很多。祝你好運。 – 2010-07-08 16:23:15

0

如果你正在尋找一個開源和商業許可的工具自動生成的C++類,包括數據和序列化/反序列化,基於XML模式,那麼我強烈建議GSOAP。它易於使用,符合行業標準,並得到積極維護。

又見http://www.rpbourret.com/xml/XMLDataBinding.htm

我感到失望的是保證完整的數據綁定,但將無法處理更廣泛的套WSDL和模式,如ONVIF的其他許多C++ XML工具。不得不重整整個項目是一件痛苦的事情。我知道GSOAP將完成這項工作。一個贏家恕我直言。