ヘッダーをスキップ
Oracle SOA Suite開発者ガイド
10g(10.1.3.1.0)
B31839-01
  目次へ
目次
索引へ
索引

前へ
前へ
 
次へ
次へ
 

8.5 Rule Authorを使用したデータ・モデルへのXMLスキーマのインポート

ルールを使用して評価するBPELのdecideアクティビティに対して条件を指定するルールを定義するには、Oracle Business Rulesデータ・モデルを定義する必要があります。 データ・モデルには、XMLスキーマに基づいたXMLファクトなど、ファクト用のビジネス・データ定義(ルールで使用されるデータ・オブジェクト)が含まれます。

たとえば、SOA Order Bookingアプリケーションには、OrderBookingRules.xsdファイルが含まれています。 このファイルには、顧客情報のスキーマが指定されています。デシジョン・サービスはこのスキーマをファクトとしてルール・エンジンに送信し、ルール・エンジンはそのスキーマを処理して、注文に対して手動による承認が必要かどうかを判断します。 Oracle Business Rulesは、Java Architecture for XML Binding(JAXB)を使用して、XMLスキーマをJavaクラスにバインドします。 カスタム・バインディング宣言の使用方法については、次のWebサイトのJava Architecture for XML Binding(JAXB)の仕様を参照してください。

http://java.sun.com/webservices/jaxb/index.jsp

8.5.1 データ・モデルへのXMLスキーマのインポート方法

ビジネス・ルールを定義する際にビジネス・オブジェクトを使用できるように、XMLスキーマを処理し、処理したXMLスキーマ要素をデータ・モデルにインポートする必要があります。

8.5.1.1 XMLスキーマ処理の実行

データ・モデルでXML要素を使用するには、Rule Authorを使用して、XMLスキーマで検出されたXML要素を表すクラスを生成する必要があります。 次の手順では、JAXBクラスを生成し、生成したクラスおよびXMLスキーマに関連付けられているパッケージをRule Authorで参照できるようにします。

Rule Authorを使用してスキーマを準備する手順は、次のとおりです。

  1. 必要に応じて、「リポジトリ」タブをクリックしてディクショナリをロードします。

  2. 「定義」タブをクリックします。 ナビゲーション・ツリーに、使用可能な定義が格納された「定義」フォルダが表示されます。

  3. ナビゲーション・ツリーの「定義」フォルダに、「ファクト」フォルダが表示されます。このフォルダには、使用可能なファクト・タイプのJavaファクトXMLファクトおよびRLファクトが含まれています。 Javaクラスに基づいたビジネス・オブジェクトで作業する場合は、Javaファクトを使用します。 Javaファクト・タイプを使用すると、選択したプロパティとJavaクラスのメソッドを宣言できるため、ルールでは、そのJavaクラスのインスタンスに対するアクセス、作成、変更および削除が可能になります。 Oracle Business RulesのRL Languageファクトで作業する場合は、RLファクトを使用します。 RL Languageファクトには、RL Languageファクト・タイプ、Javaファクト・タイプまたはプリミティブ型のいずれかのメンバーのリストが含まれています。 RL Languageファクト・タイプを使用すると、ルール・エンジンの実行時に使用できる動的な仮想型を提供することでビジネス・モデルを拡張できます。

    「XMLファクト」をクリックして、XMLファクト・サマリー・ページを表示します(図8-6を参照)。 XMLファクト・タイプを使用すると、選択した属性とXML要素のサブ要素またはcomplexTypeを宣言できるため、ルールでは、そのインスタンスに対するアクセス、作成、変更および削除が可能になります。 たとえば、SOA Order Bookingアプリケーションでは、このタイプがビジネス・オブジェクトの定義に使用するタイプです。

    図8-6 Rule Authorの「定義」タブのXMLファクト・サマリー・ページ

    Rule Authorの「定義」タブのXMLファクト・サマリー・ページ
    「図8-6 Rule Authorの「定義」タブのXMLファクト・サマリー・ページ」の説明

  4. 「作成」をクリックします。

    XMLスキーマ・セレクタ・ページが表示されます。

  5. XMLスキーマ・セレクタ・ページの「XMLスキーマ」フィールドに、スキーマに対するパスまたはHTTP URLを入力します。 たとえば、次のいずれかを使用できます。

    • C:/demo/OrderBookingRules.xsd

    • http://www.myCompany.com/xsd/product.xsd

  6. 「JAXBクラス・ディレクトリ」フィールドに、Rule AuthorでJAXB生成クラスを格納するディレクトリを入力します(書込み可能なディレクトリを指定する必要があります)。 たとえば、次のように入力します。

    c:/demo/xml
    
    
  7. 「ターゲット・パッケージ名」フィールドに値を入力します。 このフィールドを空のままにすると、JAXBクラス・パッケージ名は、JAXB XMLからJavaへのデフォルトのマッピング・ルールを使用して、XMLスキーマのターゲット・ネームスペースから生成されます。 たとえば、ネームスペースrules.oracle.comはcom.oracle.rulesにマップされます。

    入力した値によって、生成されたクラス・パッケージの名前が指定されます。 たとえば、「generated」と入力します。 この例では、名前にgeneratedを使用しますが、generatedという名前に特別な意味はありません。 この値によって、JAXB生成クラスに対するパッケージ名が指定されます(図8-7を参照)。

    図8-7 Rule AuthorのXMLスキーマ・セレクタ・ページ

    Rule AuthorのXMLスキーマ・セレクタ・ページ
    「図8-7 Rule AuthorのXMLスキーマ・セレクタ・ページ」の説明

  8. 「スキーマの追加」をクリックします。

    スキーマの処理とJAXBのコンパイルでは、該当するスキーマのサイズに応じて、この手順の完了にしばらく時間がかかる場合があります。 この手順が完了すると、「スキーマの追加」テキスト入力フィールドが空白になり、Rule Authorによって「現在のXMLスキーマ」フィールドが更新され、「生成したJAXBクラス」ボックスが表示されます(図8-8を参照)。

    図8-8 Rule Authorの「定義」タブにあるXMLスキーマ・セレクタ(XMLスキーマ追加後)

    Rule Authorの「定義」タブにあるXMLスキーマ・セレクタ
    「図8-8 Rule Authorの「定義」タブにあるXMLスキーマ・セレクタ(XMLスキーマ追加後)」の説明

8.5.1.2 データ・モデルへのXMLスキーマ要素のインポート

次の手順では、XMLスキーマ要素を表すJAXB生成クラスを(サンプル・スキーマOrderBookingRules.xsdから)データ・モデルに移動します。

ルールを作成して結果を出力するために、必要なデータを表すスキーマをインポートする手順は、次のとおりです。

  1. 「定義」タブをクリックして定義ページを表示します。

  2. ナビゲーション・ツリーの「XMLファクト」フォルダをクリックします。

  3. XMLファクト・サマリー・ページの「作成」をクリックします。 XMLスキーマ・セレクタ・ページが表示されます。

  4. XMLスキーマ・セレクタ・ページの「生成したJAXBクラス」ボックスで、「ApproveType」、「Approve」および「ObjectFactory」が表示されるまでナビゲーション・ツリーを開きます。

  5. 「generated」フォルダのチェック・ボックスを選択します。

  6. 「インポート」をクリックします。

    Rule Authorによって、「1つのクラスまたはパッケージがインポートされました。」という確認メッセージが表示されます(図8-9を参照)。

  7. 「生成したJAXBクラス」ボックスの「generated」ノードを開いて、インポートされたクラスを確認します


    注意:

    インポートされた要素は太字で表示されます。

    図8-9 Rule AuthorのXMLスキーマ・セレクタの確認メッセージ

    Rule AuthorのXMLスキーマ・セレクタの確認
    「図8-9 Rule AuthorのXMLスキーマ・セレクタの確認メッセージ」の説明

8.5.1.3 ディクショナリの保存

「定義」タブでデータ・モデルを操作している場合、および作業を完了する場合は、ディクショナリを保存することが重要です。

ディクショナリを保存する手順は、次のとおりです。

  1. Rule Authorページの上部にある「ディクショナリの保存」リンクをクリックします。

  2. ディクショナリの保存ページで、「保存」をクリックします。

8.5.2 ビジネス・モデルへのXMLスキーマのインポート時の処理内容

XMLスキーマをデータ・モデルにインポートすると、インポートしたタイプと要素を組み込むためにデータ・モデルが更新されます。 これによって、Rule Authorを使用してルールを作成および変更するときに表示されるリストに、インポートした要素とタイプを表示できます。

ディクショナリを保存すると、指定したバージョン名を使用して、そのディクショナリに関連したルールとデータ・モデルが格納されます。

8.5.3 XMLスキーマをインポートする際の注意事項

XMLスキーマへのアクセスにURLの使用を選択したときに、プロキシ・サーバーが使用されている場合は、次のシステム・プロパティを設定する必要があります。

proxyHost = $YourProxyHost
proxyPort = $YourProxyPort
proxySet = true

次に例を示します。

-DproxyHost=www-proxy.myCompany.com -DproxyPort=80 -DproxySet=true

OC4Jインスタンスのシステム・プロパティ設定の詳細は、『Oracle Containers for J2EE構成および管理ガイド』を参照してください。