質問

Altova MapForce (または同様のもの) を使用して XSLT および/または Java または C# クラスを生成して変換を行うことを検討しています。現在、私たちはデータベースから直接データを取得し、Web サービスに投稿する XML 文字列を手動で構築しています。

db -> (内部)XML -> XSLT -> (外部)XML にする必要がありますか?君たちは広い世界で何をしているの?

役に立ちましたか?

解決

私なら、すぐに使える XML シリアル化クラスの 1 つを使用して内部 XML 生成を実行し、次に XSLT を使用して外部 XML に変換します。スキーマを生成して、オブジェクトの変更によって問題が発生した場合でも、変換コード (XSLT 変換を実行するものは何でも) が変換に必要な XML を引き続き取得できるようにすることもできます。

マッピングに役立つ XSLT エディタが多数市販されていますが、私は通常の XML エディタを使用することを好みます。

他のヒント

そうですね、MapForce で正しい道を進んでいると思います。実際の変換を実行するコードを記述したくない場合は、MapForce がそれを行うこともできます。これは、保守するコードが少なくなるため、長期的には優れている可能性があります。

より高価なオプション(例:BizTalk)、B2B 統合とオーケストレーションが本当に必要な場合を除きます。

どのようなデータベースを使用していますか?Oracle には優れた XML マッピング ツールがいくつかあります。Java バインディング ツールはいくつかあります (そのうちの 1 つは http://java.sun.com/developer/technicalArticles/WebServices/jaxb)。ただし、余裕がある場合は、優れた "to_xml" メソッドが組み込まれている Ruby の使用を検討してください。

ヒント #1:XSLT の使用はすべて避けてください。

ツールサポートは最悪です。結果として得られるソリューションは保守不可能になります。

ヒント #2:不要な手順をすべて削除します。

結果セット (JDBC または同等のものを使用していると仮定) を送信 XML に変換するだけです。

ヒント #3:スキーマベースのツールの使用はすべて間違っていると想定し、それに応じて計画を立ててください。

言い換えれば、それを偽造するだけです。突然変異した SOAP (冗長であることはわかっています) ペイロードを吐き出す必要がある場合は、動作する SOAP メッセージをモックアップして、それをテンプレートに変換するだけです。速度は悪くない。

とはいえ、最良/正しい答えは、「XML Writer」スタイルのソリューションを使用することです。いくつかあります。

一番いいのは私が書いたものですが、 LOX (XML 用軽量オブジェクト).

パブリック API は Builder 設計パターンを使用します。内部の魔法により、不正な XML を作成することは不可能です。

ご注意ください: XML が答えである場合、あなたは間違った質問をしたことになります。時々、私たちは自分の意志に反して、何らかの方法でそれを使用することを余儀なくされることがあります。そのような場合は、開発者の労力を最小限に抑え、コードの保守性を向上させるツールを使用することが重要です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top