Xerces/Xalan-C++ で XML

バージョンを吸収しよう

最終更新: 2015-03-31 (火) 22:05:09 (1359d)

概要

Xerces-C++ は、バージョン 3.0.0 に大きなインターフェイスの変更があった。

このようなことを事前に予期してか Xerces-C++ にはバージョンに応じた条件付き取り込みの仕組みが提供されている。

xercesc/util/XercesVersion.hpp にバージョン番号に関する定数が定義されている。

例えば Xerces-C++ 2.8.0 では、バージョン番号に関する定数は

#define XERCES_VERSION_MAJOR 2
#define XERCES_VERSION_MINOR 8
#define XERCES_VERSION_REVISION 0

であり、Xerces-C++ 3.0.0 では、

#define XERCES_VERSION_MAJOR 3
#define XERCES_VERSION_MINOR 0
#define XERCES_VERSION_REVISION 0

と定義されている。

これを使うことでバージョンの違いを吸収することができる。

多くの場合は、Xerces-C++ 3.0.0 以降とそれより前の違いを吸収することになるだろう。

その場合の書き方は以下の通りだ。

#if XERCES_VERSION_MAJOR >= 3
  // Xerces-C++ 3.0.0 以降のコード
#else
  // Xerces-C++ 3.0.0 より前のコード
#endif

局所的になるとは考えられるが、両方をサポートしていくのは難しい。

よほどの理由がない限り、3.0.0 以降を使う(新規開発なら、もちろんこちらがオススメだと思う)か 3.0.0 より前を使い続けるか、どこかのタイミングで判断を下すのが懸命と考えられる。

コメント

コメントはありません。 コメント/xerces/versioned

お名前: