XMLメッセージ機能の実装にBusiness Components for Javaとともに使用できるAPIとしては、Sun社のJava Message Service(JMS)APIおよびOracle9iに用意されているAdvanced Queueing(AQ)APIがあります。
XMLメッセージ機能を実装するには、ViewObjectImplクラスおよびViewRowImplクラス内のビジネス・コンポーネント・フレームワーク・メソッドを使用します。これらのメソッドにより、標準形式のXMLデータを読み書きできます。
writeXML()
: 現行のオブジェクトをXML要素に書き込みます。XML要素は、XMLメッセージのペイロードとしてのXML文書を含む、すべてのXML文書に追加可能です。
Javadocで説明されているように、writeXMLパラメータはサイクルの中断に使用でき、XMLデータの生成方法を詳細に制限できます。
createXMLDefinition()
: ViewObjectまたはViewRowにXML DTDを作成します。
readXM()
: XML要素から属性値または行をこのオブジェクトに読み込みます。XML要素は、XML文書またはXMLメッセージから導出できます。
ビュー・オブジェクトからのXMLのレンダリングが無限にループする場合があることに注意してください。次の2つのビュー・リンクを持つDepartmentsViewおよびEmployeesViewの2つのビュー・オブジェクトを作成するとします。
この場合、一方のビューでwriteXML
をコールすると、Business Components for Javaがこれらの関係を再帰的に横断するため、無限ループになることがあります。たとえば、Business Components for Javaのウィザードを使用してEMPLOYEES表およびDEPARTMENTS表のデフォルト・エンティティ・オブジェクト、ビュー・オブジェクト、ビュー・リンクおよびアプリケーション・モジュールをOracle9i共通スキーマに生成する場合、DEPARTMENTSからEMPLOYEES、およびEMPLOYEESからDEPARTMENTSの外部キーの存在により、一方から他方、またその逆のビュー・リンクを使用することでこの状況が起こります。対処方法としては、一方のビュー・リンクを削除します。または、DEPARTMENTSに基づいて2つの異なるビューを作成し、DepartmentsViewがEmployeesViewに、EmployeesViewがDepartmentsView2にリンクするようビュー・リンクを再作成します。
ビジネス・コンポーネント・メソッドの詳細は、Javadocを参照してください。JMSの詳細は、JavaソフトウェアのWebサイトを参照してください。AQの詳細は、Oracle9iのドキュメントを参照してください。