12

ACORD Standardを使用して WCF Web サービスを実装する必要があります。

ただし、この標準はヒューモンゴスで非常に複雑であるため、どこから始めればよいかわかりません。私の目には完全な混乱。

私が持っている複数の XSD からクラスを抽出するために WSCF.Blue を使用しようとしていますが、これまでのところ、私の VS2010 を常にフリーズさせる 50,000 行以上のコードを含む .cs ファイルです。

死の谷 (ACORD 標準) を歩いて通り抜けた人はいますか? 助けていただければ幸いです。

4

5 に答える 5

5

私は ACORD から C# へのクラス ライブラリ コンバーターを作成しました。これはその後、いくつかの大規模な商用保険商品で使用されました。それは、すべての ACORD XML を簡潔で拡張可能な C# クラスに非常に適切にマッピングすることを特徴としていました。だから私はあなたがどこから来たのか知っています!

掘り下げればそれほど悪くはありませんが、平均的なコーダーがフルタイムで作業した場合、約3〜4か月は「理解」できないと私は主張します(問い合わせスタイルのメッセージ以外は何もないと仮定します)。真の問題は、バックエンド データベースから、および別の ACORD WS への/からのマッピングを行おうとしたときに発生します。すべての運送業者、ベンダー、および代理店にはカスタム ルールがあります。

私の最善の提案は、動作するコード例 (必要に応じてたくさんあります) と、テスト環境で ACORD ws に接続できるベンダーまたはキャリアを見つけることです。

于 2012-07-27T14:42:29.873 に答える
4

正しい道を進んでいるように聞こえますが、森の中で迷子になっています。
ACORD 標準は、何百もの異なるメッセージをサポートするため、意図的に巨大です。いくつかの記事を取得するためにウィキペディアのすべてをダウンロードするわけではないのと同様に、いくつかのメッセージの実装をサポートするために ACORD 標準のすべてのクラスが必要なわけではありません。サポートする必要があるメッセージがわかっている場合は、非常に扱いやすい完全な XSD のサブセットを生成できます。

Hugh の応答で述べたように、1 つのメッセージに対して、完全な XSD の一部のみが使用されます。それをどのように行うかは、プロジェクトの詳細によって異なります。完全な XSD のサブセットを生成する方法についてのアイデアを探している場合は、PCS@acord.orgで ACORD スタッフに連絡してください。彼らはあなたが始めるのにいくらかの助けを提供できるはずです.

于 2012-06-27T20:44:54.223 に答える
2

私は Accord PCS 曝露報告基準に取り組んできましたが、悪夢でした。また、FPML や SportsML などの他の大規模な標準にも取り組んできました。

必要なスキーマの型を正確に把握する必要があります。これをどのように行うかはあなた次第ですが、VS スキーマ ビューアーで処理できるはずです。XmlSpy を試していない場合は、必要に応じて手動で実行してください。手に良いBAがあることを確認してください...

標準で使用可能なタイプの約 1% を使用することで、要件を満たすことができる可能性があります。

おそらくわかることは、ほとんどのノードがminOccurs=0またはであるため、コア オブジェクトを非常に最小限の値のセットで表現できるということですnillable

次に、xsd.exe で /element スイッチを使用して、必要な型だけのコードを生成できます。

あるコメンテーターが言うように、ここには簡単に飲み込める薬はありません。皮肉なことに、標準はすべての人の生活を楽にするはずです。

于 2012-06-21T07:03:45.203 に答える
2

.NET を使用して ACORD ドキュメントの読み書きを検討している場合、CodePlex のhttp://ivc.codeplex.comで「ACORD 標準の IVC ソフトウェア ファクトリ」を偶然見つけました。

限定されたドキュメントから、このライブラリーはオブジェクトを ACORD XML ドキュメントに、またはその逆に変換できるように見えます。ソース コードには、さまざまな「プロバイダー」、つまり 103 や 121 などのさまざまな ACORD トランザクション タイプが付属しています。

お役に立てれば。

于 2014-05-14T14:57:13.843 に答える
1

標準全体のモデルを作成しないことをお勧めします。XML を渡すだけで、モデルにシリアル化するのではなく、XDocument/XElement に読み込み、Linq を使用してクエリを実行し、Linq を使用して DOM を Xml に更新することができます。したがって、厳密に型指定されたモデルに XML をロードするのではなく、XML をロードするだけです。モデルはなく、XML ドキュメントのみです。

そこから、必要に応じて XML からデータを取り出すことができます。

このアプローチを使用すると、XElements があらゆる場所に渡されるため、コードは見苦しく、コンテキストがほとんどなくなります。また、要素をクエリおよび定義するための XPath の魔法の文字列が大量に存在しますが、機能します。また、すべてが文字列であるため、数値、日時などに変換するためのユーティリティ変換メソッドがあります。

私の予想では、XmlSerializer を使用して Acord の一部をオブジェクト モデルにモデル化しましたが、それは 500 をはるかに超えるクラスです。モデルは XSD などから作成されたものではなく、手動で作成され、時間がかかりました。ツールを使用すると、モンスターの使用できないクラスが生成されます (前述のとおり) および/または完全なクラッシュが発生します。例として、XSD を Stylus Studio に読み込もうとしたところ、何度かクラッシュしました。

したがって、時間がない場合の最善の策は、モデル内のすべてをマッピングしようとするのではなく、XDocument に読み込むことです。私はそれがひどいことを知っていますが、一般的にAcordは基本的に巨大なデータの混乱です。

于 2017-05-24T20:22:50.520 に答える