Altova MapForce (または同様のもの) を使用して、XSLT および/または Java または C# クラスを生成して翻訳を行うことを検討しています。現在、私たちはデータベースからデータを引き出し、Web サービスに投稿する XML 文字列を手動で作成しています。
db -> (内部)XML -> XSLT -> (外部)XML にする必要がありますか? 広い世界で何をしているの?
Altova MapForce (または同様のもの) を使用して、XSLT および/または Java または C# クラスを生成して翻訳を行うことを検討しています。現在、私たちはデータベースからデータを引き出し、Web サービスに投稿する XML 文字列を手動で作成しています。
db -> (内部)XML -> XSLT -> (外部)XML にする必要がありますか? 広い世界で何をしているの?
すぐに使える XML シリアライゼーション クラスの 1 つを使用して内部 XML を生成し、XSLT を使用して外部 XML に変換します。オブジェクトへの変更によって問題が発生した場合に、変換コード (XSLT 変換を駆動するものは何でも) が変換に必要な XML を取得し続けるように、スキーマを生成することもできます。
市場には、マッピングを行うのに役立つ XSLT エディターが多数ありますが、私は通常の XML エディターを使用することを好みます。
ええ、MapForce で正しい道を進んでいると思います。実際の変換を実行するコードを書きたくない場合、MapForce はそれを行うことができます。これは、維持するコードが少ないため、長期的にはより良いかもしれません。
B2B の統合とオーケストレーションが本当に必要でない限り、より高価なオプション (BizTalk など) は避けてください。
どのデータベースを使用していますか? 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 (Lightweight Objects for XML)です。
パブリック API は Builder デザイン パターンを使用します。内部の魔法により、不正な形式の XML を作成することは不可能です。
注意:もし XML が答えなら、あなたは間違った質問をしています。時々、私たちは何らかの方法でそれを使用することを自分の意志に反して強制されます. そのような場合、開発者の労力を最小限に抑え、コードの保守性を向上させるツールを使用することが重要です。