2017-08-10 4 views
0

非常に大規模スキーマ(数百のグローバル要素、数千のグローバル複合型)があります。 Liquid Studioのデータバインディングツールを使用してスキーマからC++データバインディングを生成すると、結果のプロジェクトは64kシンボル(65535)のDLLエクスポートシンボル制限を超えます。実際には、スキーマを6つの異なるスキーマ(いくつかの複雑な複合タイプを持つ)に分割して、各プロジェクトがシンボルのエクスポート制限の下にとどまるように分割するだけで十分です。LiquidXML生成コードがDLLエクスポート制限を超過

もっと良い選択肢はありますか?たくさんのシンボルをエクスポートしようとしないように、Liquid Studioで設定できるものはありますか?私はまったく同じスキーマで別のツールを使用しました。結果のコードには、ファクトリクラスを持つ抽象的なインターフェイスがほとんど生成され、目的のオブジェクトを作成するため、この問題は発生しません。したがって、エクスポートする必要があるシンボルは、ファクトリの作成メソッドだけです。今はLiquidXMLのデータバインディングに悩まされているので、更新があるたびにスキーマを分割する手作業のすべてを避けることができれば、本当にうれしいでしょう。

答えて

0

XMLデータバインダーウィザードで、目的のルート要素を選択すると、ジェネレータは残りの要素を無視します。ただし、スキーマの構造によっては、少数のルート要素からスキーマの多くが潜在的にアクセス可能であることがわかるかもしれませんが、これは非常に効果的です。

結果のxdbprojファイルは、コマンドラインから再実行できます。自動化されたビルドでこのアプローチはあなたのために動作しない場合は

Liquid XML Data Binder Select Elements

は、スキーマや興味のあるルート要素へのリンクを投稿してください、私はより詳細にそれに見ていきます。

+0

これは、基本的に自動スクリプトを除いて私たちが行っていることです。私は、スキーマを壊したり、複数のライブラリを構築する必要がないソリューションを探しています。 – Moohasha

+0

残念ながら私はスキーマをオンラインで投稿できません。 – Moohasha

+0

サポートチケットを介して液体技術に転送できるものがあれば教えてください。そうすれば、サードパーティーのスキーマを推測できます。 – Sprotty

関連する問題