問題タブ [codesynthesis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1373 参照

c++ - CodeSynthesis XSD ツリー マッピングを使用する C++ 型

CodeSynthesis XSD C++/ツリー マッピング ユーティリティを使用して、既存の xsd を値を入力できる C++ コードに変換しています。

変換を行った後、テストできるように動作させようとしています。問題は、私はこれを C++ で行うことに慣れておらず、このツールを初めて使用することです。

versno_typeまず、ABSTRACTNETWORKMODEL と呼ばれる、型とfromtime_type typedef を内部に持つクラスから始めます。これは、私が使用しようとしているコンストラクターとtypedefです

これらはすべて ABSTRACTNETWORKMODEL クラスにあり、double_ と time の定義は次のとおりです。

time の定義は、複数のコンストラクターを持つクラスです。

新しい ABSTRACTNETWORKMODEL を正しく作成していないことはわかっていますが、これを行う必要があるかどうかはわかりません。この時点で私がやろうとしているのは次のとおりです。

もちろん、これは2番目のパラメーターの変換に関するエラーをスローしますが、何が間違っているのか教えてもらえますか? または、少なくとも私が今やろうとしていることの 1 つは C++ をもっと学ぶことなので、正しい道を教えてくれます。

0 投票する
2 に答える
531 参照

c++ - コード合成で「有効な」xml ツリーが生成されないようです

コード合成 xsd を使用して xml ツリーを生成し、元の xsd への xml 出力の一貫性を確保しています。

最初のテストの後、すべて問題ないように見えましたが、無効な値 (正しいタイプですが、定義された範囲外) を入力しようとすると、値が許可されました。

xml は整形式で、xsd で設定された型に準拠していますが、スキーマに関しては有効な xml ではありません。

他の誰かがこのツールを使用したり、この問題に遭遇したりしましたか?

0 投票する
3 に答える
2210 参照

c++ - XSTREAMと同様のC++シリアル化クリーンXML

設定をXML形式で保存し(手作業で簡単に編集できるように)、ソケットとHTTPを介してXMLメッセージを介して既存のアプリと通信するLinuxc++アプリを作成する必要があります。問題は、私を助けるインテリジェントなライブラリを見つけることができなかったことです。非常に単純なメッセージを書き込んだり読んだりするためだけにDOMまたはSAXコードを書く気は特にありません。

Boost Serializationはほぼ一致しましたが、生成するxmlに多くのBoost固有のデータが追加されます。これは明らかにインターチェンジ形式ではうまく機能しません。BoostSerializationまたは他のc++シリアル化ライブラリでクリーンなxmlを生成できるかどうか疑問に思っています。バージョン属性など、必要な追加の属性があるかどうかは気になりませんが、それらの名前を制御し、使用しない「機能」を削除できるようにしたいと思います-tracking_levelとclass_id for実例。

理想的には、Javaのxstreamに似たものが欲しいだけです。私は、C ++には内省がなく、したがって手動でコーディングする必要があるという事実を認識しています。しかし、単純なXMLを恨みなく読み書きするだけのクリーンなソリューションがあれば、それは素晴らしいことです。

これができない場合は、XMLスキーマが正規のリソース(最初にコントラクト)であるツールにも興味があります。これは、C++に代わる優れたJAXBです。これまでのところ、CodeSynthesisXSDのような商用ソリューションしか見つかりませんでした。私はオープンソースソリューションを好みます。私はgSoapを試しましたが、それは本当に醜いコードを生成し、SOAP固有でもあります。

必死になって、私はプロトバッファの代替シリアル化フォーマットも検討し始めました。これは存在しますが、Javaの場合のみです。プロトコルバッファがXMLよりもサポートされているデータ交換形式の方が優れているように思われることに本当に驚いています。

私はこのアプリのライブラリを見つけるだけで怒ってしまいます。本当にいくつかの新しいアイデアが必要です。誰?

0 投票する
1 に答える
2702 参照

c++ - XSD:子要素タイプで属性値を設定する方法は?

xsdファイルには、この要素の基本型があります。

そして、子タイプの属性の値を定義したいtypeので、これを試しました:

Visual Studioは気にしないようですが、CodeSynthesis C ++コードジェネレーターは同意していないようです:

エラー:属性'type'はすでにベースで定義されています

これはどのように書くべきですか?属性の値typeをそれぞれの異なる子タイプに固有にする必要があります。

編集 - -

質問をより明確にするために、私がやりたいのと同じことをC++で記述します。

基本クラスは次のとおりです。

これで、子の1つを次のように実装できます。

ご覧のとおり、子クラスは基本クラスによって定義される属性の値を定義します。xsdで表現することさえ可能ですか?

0 投票する
3 に答える
1537 参照

c++ - XSD : ポリモーフィックな「リスト」を作成するには?

change他のいくつかの子型の基本型である要素型のリストを保持する要素型を構築しようとしています。私はこのコードを得ました:

CodeSynthesis を使用して C++ コードを生成しています。

ここでは、さまざまな型へのアクセスを明確に定義しているため、これはやり過ぎに思えます。私が欲しいのは、次のようなもっと単純なものだと思います:

変更のリスト。

これで、変更のサブタイプごとに異なるタグを付けることができなくなりました。だから私は多分良い解決策は置換グループを使うことだと思った.

しかし、そうすると、特定のサブタイプの属性と要素を使用できなくなります。

元の解決策はそれを行うのに適していますか(子型も取得できる基本型オブジェクトのリストを持っています)?

0 投票する
2 に答える
1575 参照

c++ - コード合成 - C++/Tree サブノードのシリアル化

この優れたツール (http://www.codesynthesis.com/products/xsd/c++/tree/) を使用して、xsd を C++ コードに変換しています。

サブノードから xml 文字列を取得しようとしていますが、取得できるのは次のようなすべての xml だけです。

すべてのxml:

次のようにして、すべてのxmlを取得できます。

しかし、私が望むのは、たとえば < address > xml サブノードのみを取得することです。これは可能ですか?どのように達成することができますか?

ありがとう

0 投票する
3 に答える
7568 参照

c++ - サンプル XSD が「エラー: 要素 X の宣言が見つかりません」で失敗する

xml 解析の分野ではまったくの初心者でしたが、xsd有効なファイルを作成c++し、コンパイルとリンクを正常に行うことができましたが、コンパイラはインスタンス化を最適化 (?) してしまいました。そこで、ステップ 1 から始めて、CodeSynthesis でhello world xml の例を試します。しかし、それは失敗します:

こんにちは.c++:

こんにちは.xml:

こんにちは.xsd:

これはまさにその通りだと思いますが、コマンドは文書化されているとおりには機能しません。xsdcxx私は正しいことをしているように見えることを発見しました( xsdC#またはvb.net出力を生成するのとは異なります)。

また、-I(dir) を含めず、問題なくコンパイルされます。どういうわけか間違ったインクルード ファイルを使用している可能性がありますか?

私は何を間違っていますか?たぶんxsd適切なツールではありませんか?

0 投票する
1 に答える
5297 参照

c++ - Java の JAXB のような C++ の XML データバインディング

この質問は、「C ++でのデータバインディングと解析の使用」のこの分野で完全な**ナイーブ**として書いています。では、ご容赦ください。:)

この質問は、THISの重複として見つかる場合があります

少しグーグルを行った後、「コード合成xsd」および「ブーストシリアライゼーション」の形式でXMLのオブジェクト表現のために、Java用のJAXBと同様のライブラリをC++が持っていることがわかりました

1) 今、私が聞きたいのは、CodeSynthesis が実行できるすべての機能を「Boost Serialization」で実行できるかということです。

2) はいの場合、考慮に入れればどちらを使用するのが良いでしょうか?

3) Java JAXB と比較した場合、そのパフォーマンスはどうなりますか? [オプションの質問...誰かがベンチマークへのリンクを持っている場合のみ]

ありがとう。

0 投票する
2 に答える
268 参照

c++ - 正準関係演算子(==、<、...)

Rすべてが特定の関係を実装するメンバーを持つ構造体(例:複数のメンバーの愚かな誇張)を考えてみましょう<

ほとんどの演算子には、の正規の定義がありX R Xます。例えば:

これは、すべての演算子に対して行うのはかなり退屈です。特に、そのような構造体が1つだけではなく、かなりの数のメンバーがいる場合はなおさらです。

ご覧のとおり、operator<overはそのメンバータイプ(、)Xのみに依存しており、。を使用する必要があります。operator<ABbool || bool

そのような演算子を一般的に(テンプレートまたはビルトインを介して)指定する方法はありますか?ブーストはオプションではありません(それでも、これができると面白いでしょう)。

メンバーの評価順序(スピード)を指定できればさらに素晴らしいです。

編集この質問はC++03を考慮していますが、そうでなければ使用できるstd::tupleと思います。

0 投票する
1 に答える
219 参照

c++ - c++ および xml バインディング simpletype

最近、C++ の XML データ バインディングを学びたいと思っているので、XSD ファイルから C++ コードを生成するライブラリを見つけました。Hello World の例をテストしたところ、ヘッダー ファイルと C++ ファイルの 2 つのファイルの作成に成功しました。ライブラリはCodeSynthesis XSDと呼ばれます。

詳細については:

www.codesynthesis.com/products/xsd/

しかし、このライブラリは複雑な型 (クラス、列挙、共用体など) のみを生成することに注意してください。私の質問は、単純な型をどのように生成できるかです。たとえば、次のようになります。

解決策やチュートリアルが見つからずに数時間グーグルで検索したためです。