XQuery Mapper を使用したデータの変換

     前  次    新しいウィンドウで目次を開く     
ここから内容

XQuery Mapper を使用したデータの変換

XQuery Mapper のグラフィカル インタフェースでは、ソース スキーマの要素をターゲット スキーマの要素にマップして、データ トランスフォーメーションを作成できます。XQuery Mapper により XQuery が作成され、.xq ファイルとして保存されます。

次の節では、XQuery Mapper を使用してデータを変換する手順について説明します。

 


XQuery Mapper の起動

  1. [スタートプログラムOracle WebLogicWorkshop for WebLogic 10gR3] を選択します。
  2. [ワークスペース ランチャー] ダイアログ ボックスが表示されます。

    図 2-1 ワークスペース・ランチャー


    ワークスペース・ランチャー

  3. [ワークスペース] フィールドで、プロジェクト ファイルを格納する必要があるフォルダを指定します。
  4. 注意 : 必要に応じて、[この選択をデフォルトとして使用し、今後この質問を表示しない] チェック ボックスを選択し、[OK] をクリックします。
  5. Workshop メニューから [ウィンドウパースペクティブを開くXQuery トランスフォーメーション] を選択して、XQuery トランスフォーメーション パースペクティブを開きます。
  6. XQuery ファイルを開くと、XQuery トランスフォーメーション パースペクティブが自動的に起動します。ただし、XQuery Mapper が開いており、XQuery ファイルが開いていない場合は、XQuery トランスフォーメーション パースペクティブを手動で起動する必要があります。

 


XQuery Mapper サンプル プロジェクトの作成

XQuery Mapper サンプル プロジェクトにはサンプル スキーマと XML ファイルが含まれています。「例 : XQuery Mapper を使用したデータ トランスフォーメーション」の説明に従い、これらを使用して XQuery トランスフォーメーションを作成できます。

XQuery トランスフォーメーション パースペクティブの内部からウィザードを使用して、サンプル プロジェクトを作成できます。

  1. Workshop メニュー バーから [ファイル新規その他WebLogic Integrationチュートリアル : XQuery トランスフォーメーション] を選択し、[次へ] をクリックします。
  2. サンプル プロジェクトの名前を入力し、[終了] をクリックします。
  3. サンプル プロジェクトが作成され、[ナビゲータ] ビューに表示されます。プロジェクトには以下のフォルダが含まれています。

    • schemas フォルダ : サンプル プロジェクトの XML スキーマ (.xsd) ファイルが含まれています。
    • XML フォルダ : 一部のサンプルで必要なテスト XML ファイルが含まれています。
    • XQueryTransformations フォルダ : このフォルダにサンプルの XQuery ファイルが作成されます。

プロジェクトの作成およびそれらのプロジェクトで必要なファイルのインポートの詳細については、以下のトピックを参照してください。

注意 : プロジェクト固有の XML スキーマ、Web Service Definition Language (WSDL) ファイル、およびメッセージ フォーマット言語 (MFL) ファイルを任意の場所からインポートできます。 ビジネス ニーズを満たすフォルダ構造を作成してからファイルをインポートすることをお勧めします。詳細については、「スキーマ ファイルのインポートと作成」を参照してください。

 


XQuery Mapper プロジェクトの作成

  1. [ウィンドウパースペクティブを開くXQuery トランスフォーメーション] を選択して、XQuery トランスフォーメーション パースペクティブに切り替えます。
  2. [ファイル新規プロジェクト] を選択します。
  3. [新規プロジェクト] ウィザードが開きます。

  4. [一般プロジェクト] を選択し、[次へ] をクリックします。
  5. プロジェクト名を入力します。
  6. [デフォルト・ロケーションの使用] チェック ボックスが選択されていることを確認します。
  7. [終了] をクリックします。

 


スキーマ ファイルのインポートと作成

スキーマ ファイルは任意の場所に作成またはインポートできます。以下のスキーマ タイプがサポートされています。

XML スキーマと MFL ファイルのインポート

  1. [ウィンドウパースペクティブを開くXQuery トランスフォーメーション] を選択して、XQuery トランスフォーメーション パースペクティブに切り替えます。
  2. [ナビゲータ] ビューで、XML スキーマまたは MFL ファイルをインポートするプロジェクトを選択します。
  3. [ファイルインポート] を選択します。
  4. [インポート] ウィザードが開きます。

  5. XML スキーマおよび MFL ファイルをさまざまなソースからインポートできます。適切なソースを選択し、[次へ] をクリックします。
  6. 必要なファイルを参照し、選択してから、[完了] をクリックします。

インポートされたスキーマ ファイルまたは MFL ファイルは、[新しい XQuery トランスフォーメーション] ウィザードで使用できるようになります。

次の図に、[新しい XQuery トランスフォーメーション] ウィザードでのインポートされた XML スキーマを示します。

図 2-2 新しい XQuery トランスフォーメーション

新しい XQuery トランスフォーメーション

XML スキーマの作成

XML スキーマ エディタを使用して XML スキーマを作成できます。

  1. [ウィンドウパースペクティブを開くXQuery トランスフォーメーション] を選択して、XQuery トランスフォーメーション パースペクティブに切り替えます。
  2. [ナビゲータ] ビューで、スキーマ ファイルを作成するプロジェクトを選択します。
  3. [ファイル新規その他...] を選択します。
  4. [新規] 画面が表示されます。

    図 2-3 ウィザードの選択


    ウィザードの選択

  5. XML ノードを展開します。
  6. [XML スキーマ] を選択し、[次へ] をクリックします。
  7. スキーマ ファイルを作成する親フォルダを選択します。
  8. スキーマ ファイルの名前を入力し、[完了] をクリックします。

指定したプロジェクトにスキーマ ファイルが作成されます。これで、スキーマの詳細を指定し、ファイルを保存できます。

XML スキーマ エディタの使用の詳細については、 http://www.eclipse.org/webtools/community/tutorials/XMLSchemaEditor/XMLSchemaEditorTutorial.html にある「Introduction to the XSD Editor」を参照してください。

XML スキーマからの XML ファイルの作成

  1. [ウィンドウパースペクティブを開くXQuery トランスフォーメーション] を選択して、XQuery トランスフォーメーション パースペクティブに切り替えます。
  2. [ナビゲータ] ビューで、スキーマ ファイルを作成するプロジェクトを選択します。
  3. [ファイル新規その他...] を選択します。
  4. [新規] 画面が表示されます。

  5. XML ノードを展開します。
  6. [XML] を選択し、[次へ] をクリックします。
  7. [XML ファイルの作成] ダイアログ ボックスが開きます。

    図 2-4 XML ファイルの作成


    XML ファイルの作成

  8. [XML スキーマ・ファイルから XML ファイルを作成] オプションを選択し、[次へ] をクリックします。
  9. XML ファイルを作成する親フォルダを選択します。
  10. XML ファイルの名前を入力し、[次へ] をクリックします。
  11. XML ファイルを作成する基になる XML スキーマを選択し、[次へ] をクリックします。
  12. XML ファイルのルート要素を選択し、[完了] をクリックします。

XML ファイルが指定のフォルダに作成されます。 これで、ファイルの詳細を指定し、保存できます。

XML エディタの使用の詳細については、http://www.eclipse.org/webtools/community/tutorials/XMLWizards/XMLWizards.html にある「Creating XML files Tutorial」を参照してください。

WSDL ファイルの作成

  1. [ウィンドウパースペクティブを開くXQuery トランスフォーメーション] を選択して、XQuery トランスフォーメーション パースペクティブに切り替えます。
  2. [ナビゲータ] ビューで、WSDL ファイルを作成するプロジェクトを選択します。
  3. [ファイル新規その他...] を選択します。
  4. [新規] ウィザードが開きます。

  5. XML ノードを展開し、[WSDL] を選択し、[次へ] をクリックします。
  6. WSDL ファイルを作成する親フォルダを選択します。
  7. WSDL ファイルの名前を入力し、[次へ] をクリックします。
  8. WSDL ファイルのターゲット ネームスペースおよびプレフィックスを入力します。
  9. 必要に応じて、[WSDL スケルトンの作成] チェック ボックスをオンにします。
  10. プロトコルとバインディング オプションを選択し、[完了] をクリックします。

指定したプロジェクトに WSDL ファイルが作成されます。

WSDL エディタの使用の詳細については、http://www.eclipse.org/webtools/community/tutorials/WSDLEditor/WSDLEditorTutorial.html にある「Introduction to the WSDL Editor」を参照してください。

MFL ファイルの作成

Format Builder ツール ([スタートプログラムOracle WebLogic IntegrationWebLogic Integration 10gR3Format Builder]) を使用すると、MFL ファイルを作成できます。

Format Builder ツールの詳細については、Format Builder のオンライン ヘルプを参照してください。

 


ソースとターゲットのデータ型の選択

データ トランスフォーメーションを作成する前に、ソース データ型とターゲット データ型を定義する必要があります。ソースおよびターゲットの型には、非 XML、XML、および単純データ型を指定できます。

  1. ソースとターゲットのデータ型を選択するプロジェクトを選択します。
  2. 右クリックし、[新規XQuery トランスフォーメーション] を選択します。
  3. [新しい XQuery トランスフォーメーション] ウィザードが開きます。

  4. .xq ファイル名を入力します。
  5. [次へ] をクリックします。
  6. [ソース型] ダイアログ ボックスが表示されます。

  7. [使用可能なソースの型] ペインで、ソース データ型を選択します。
    • ソースが XML データの場合は、[XML] を選択する。
    • ソースが MFL データの場合は、[非 XML] を選択する。
    • ソース データが booleanStringint などの標準型の場合は、[単純] を選択する。
  8. 必要なソースのデータ要素を選択します。
  9. 注意 : スキーマを [使用可能なソースの型] ペインおよび [使用可能な対象の型] ペインに表示するには、まず Workshop でこれらのスキーマを含む XML ファイルおよび非 XML ファイルをインポートまたは作成する必要があります。
    注意 : [使用可能なソースの型] および [使用可能な対象の型] ペインには、XQuery トランスフォーメーション プロジェクトの schemas フォルダに存在するスキーマのみが表示されます。スキーマを他のフォルダに格納するほうがよい場合は、プロジェクトの XMLBeans の設定で、そのフォルダのパスを指定する必要があります ([プロジェクトプロパティー] を選択してから、[XMLBean] ページの [ソース パス] タブを表示)。

    たとえば、schemas/Dates.xsd から入力データを追加するには、次の図のように、スキーマで date 要素を入力要素として選択し、[追加] をクリックします。

    図 2-5 ソース型の選択


    ソース型を選択する

    [選択されたソースの型] ペインに、選択した要素を構成している要素と属性が表示されます。

  10. 必要なソース型を選択したら、[次へ] をクリックします。
  11. [対象の型] ダイアログ ボックスが表示されます。

  12. [使用可能な対象の型] ペインでターゲット データ型を選択し、[追加] をクリックします。
  13. [選択された対象の型] ペインに、選択した要素を構成している要素と属性が表示されます。

    注意 : ターゲット データ型は 1 つしか指定できません。
  14. [終了] をクリックします。

デザイン ビューに .xq ファイルが表示されます。選択したソースとターゲットのデータ型が示されています。

 


データ トランスフォーメーションの作成

以下の種類のデータ トランスフォーメーションを実行できます。

基本的な要素トランスフォーメーションの作成

基本的な要素トランスフォーメーションでは、ソース要素をターゲット要素にマップします。ソースとターゲットの要素には同じ名前、型、またはスコープを指定できる場合があります。

実行できる基本的な要素トランスフォーメーションの種類について、いくつかの例を以下に示します。

前提条件

XQuery ファイルが「ソースとターゲットのデータ型の選択」に従って作成されている。

要素-要素リンクの作成

  1. 要素-要素リンクを作成するプロジェクトを選択し、トランスフォーメーションを格納する XQuery ファイルを開きます。
  2. [ソース] ペインの必要な要素を [対象] ペインのターゲット要素にドラッグします。
  3. たとえば、ソース スキーマの customer-name 要素とターゲット スキーマの customer-name 要素の間にリンクを作成するには、customer-name を [ソース] ペインから [対象] ペインにドラッグします。 次の図のように、2 つの要素間に矢印が表示されます。

    図 2-6 要素-要素リンク


    要素-要素リンク

    注意 : [ソース] ペインから [対象] ペインへのドラッグ時、2 つの要素の間には一時的な破線が表示されます。 リンク パターンの詳細については、「リンクのパターン」を参照してください。
  4. 必要な要素-要素リンクを作成したら、変更を保存します。

基本的な属性トランスフォーメーションの作成

基本的な属性トランスフォーメーションでは、ソース属性をターゲット属性にマップします。ソースとターゲットの属性には同じ名前、型、またはスコープを指定できる場合があります。

基本的な属性トランスフォーメーションのいくつかの例を以下に示します。

前提条件

XQuery ファイルが「ソースとターゲットのデータ型の選択」に従って作成されている。

属性-要素リンクの作成

  1. 属性-要素リンクを作成するプロジェクトを選択し、トランスフォーメーションを格納する XQuery ファイルを開きます。
  2. [ソース] ペインの必要な属性を [対象] ペインの適切な要素にドラッグします。
  3. たとえば、ソース スキーマの address 要素の street 属性とターゲット スキーマの street 要素の間にリンクを作成するには、次の図のように、street 属性を [ソース] ペインから [対象] ペインにドラッグします。

    図 2-7 属性-要素リンク


    属性-要素リンク

  4. 必要なリンクを作成したら、変更を保存します。

同様に、要素-属性リンクおよび属性-属性リンクを作成できます。

複雑なトランスフォーメーションの作成

複雑なトランスフォーメーションでは、複雑なソース (たとえば、反復する要素) から複雑なターゲット (たとえば、非反復要素) にマップします。複雑なトランスフォーメーションのいくつかの例を以下に示します。

前提条件

XQuery ファイルが「ソースとターゲットのデータ型の選択」に従って作成されている。

複雑なトランスフォーメーションの作成

  1. リンクを作成するプロジェクトを選択し、トランスフォーメーションを格納する XQuery ファイルを開きます。
  2. [ソース] ペインの必要な要素または属性を [対象] ペインの適切な要素または属性にドラッグします。
  3. たとえば、product (ソース スキーマの反復グループ) と product (ターゲット スキーマの反復グループ) の間にリンクを作成するには、次の図のように、product を [ソース] ペインから [対象] ペインにドラッグします。

    図 2-8 反復グループ間のリンク


    反復グループ間のリンク

  4. 必要なリンクを作成したら、変更を保存します。

 


データ トランスフォーメーションの編集

デザイン ビューでデータ トランスフォーメーションを作成した後は、ソース ビューで直接コードを編集するか、デザイン ビューで複雑な式を追加して、XQuery コードを追加、変更、および削除できます。

注意 : XQuery 言語の詳細については、http://www.w3.org/XML/Query を参照してください。

この節では、以下のトピックを取り上げます。

XQuery ファイルの表示と編集

  1. 編集する XQuery ファイルが含まれているプロジェクトを選択します。
  2. XQuery ファイルをダブルクリックします。
  3. 注意 : XQuery ファイルが XQuery 2002 準拠である場合、ファイルは自動的に XQuery 2002 トランスフォーメーション エディタで開きます。これにはソース ビューとテスト ビューのみが含まれています。 詳細については、「XQuery 2002 および 2004 のサポート」を参照してください。
  4. ソース ビューを選択します。
  5. XQuery コードが表示されます。無効なコードは赤い下線で示されます。

  6. 必要な変更を加えます。
  7. 注意 : 必要に応じて、ルート要素を除く関数内のすべてのコードを削除することで、ソース ビューでデータ トランスフォーメーションを削除できます。
  8. 変更を保存します。

結合と和集合の作成

XQuery トランスフォーメーション パースペクティブの [制約] ビューを使用すると、反復するソース要素とターゲット要素の間の関係を制限したり操作したりできます。

[制約] ビューでは、以下の [制約の種類] オプションを使用できます。

If-Then-Else 式の作成

[対象の式] ビューでは、if-then-else 式を作成できます。

if-then-else 式を含むクエリが実行されると、if 式を構成する条件が評価されます。 結果に応じて、異なる値がターゲット ノードに返されます。

図 2-9 に、以下のロジックの実装に使用できる XQuery コードを示します。

次の図のように、If 条件に複数の式を追加できます。

図 2-10 [対象の式] ビューの If-Then-Else 式

[対象の式] ビューの If-Then-Else 式

条件を選択して [上へ移動] または [下へ移動] ボタンをクリックすると、条件の位置を変更できます。 条件を選択して [削除] をクリックすると、条件を削除できます。

注意 : [編集 : If 条件] ペインでは、[削除] ボタンを使ってすべての式を削除した場合でも、ソース ビューの if-then-else 式がすべて削除されるわけではありません。以下のコード リストのように、if 条件に関連付けられた式は削除されますが、then および else の式は保持されます。
注意 : <ns0:partId>
{
if (fn:boolean("true"))
then 4554
else 5894
}
</ns0:partId>
注意 : XQuery では常に then 式が返されます。else 式はコード内に保持されるため、必要に応じて後から再利用できます。

詳細については、「ネストされた If-Then-Else 式の作成」を参照してください。

For-Let-Where-Order By-Return (FLWOR) 式の作成

[対象の式] ビューでは、次の図のように、FLWOR 式を作成できます。

図 2-11 FLWOR 式

FLWOR 式

次の表に、FLWOR 式の構成要素を示します。

表 2-1 FLWOR 式の句
コンポーネント
説明
省略可能/必須
許可されたネスト式
For
For 句は一連の入力項目を反復処理し、項目ごとの値を返す。
最低 1 つの For または Let
  • If-Then-Else
  • FLWOR
  • Typeswitch
Let
Let 句は変数を宣言し、その変数に値を代入する。
最低 1 つの For または Let
  • If-Then-Else
  • FLWOR
  • Typeswitch
Where
Where 句は入力データを振り分ける基準を指定する。 If 句と同じである。
省略可能
 
Order By
Order By 句はクエリ出力を並べ換える基準を指定する。
省略可能
  • If-Then-Else
  • FLWOR
  • Typeswitch
Return
Return 式はクエリの出力を定義する。
必須 (1 つのみ)
  • If-Then-Else
  • FLWOR
  • Typeswitch

For、Let、Order By、Return の下にネストされた式を挿入するには、これらを右クリックし、メニューから必要な式を選択します。

注意 : デザイン ビューで、反復要素の間にリンクを作成すると、For...Return 式 (暗黙的な FLWOR 式) がソース ビューに自動的に生成されます。[制約] ビューを使用して、この FLWOR 式に Where 句を追加できますが、Let 句と Order By 句は追加できません。暗黙的な FLWOR 式は [対象の式] ビューに表示されません。

詳細については、「FLWOR 式の作成」を参照してください。

Typeswitch 式の作成

以下の状況では、Typeswitch 式が必要になる場合があります。

[対象の式] ビューでは、次の図のように、typeswitch 式を作成できます。

図 2-12 Typeswitch 式

Typeswitch 式

次の表に、typeswitch 式の構成要素を示します。

表 2-2 Typeswitch 式の句
コンポーネント
説明
省略可能/必須
許可されたネスト式
Operand
Operand は型が評価される式である。
必須 (1 つのみ)
 
Case
Case 句は評価される型の名前と、評価が真の場合に返される式を指定する。
必須 (最低 1 つ)
  • If-Then-Else
  • FLWOR
  • Typeswitch
Default
Default 句は、Case 句で指定されたどの型にもオペランド式の値が一致しない場合に使用する必要のあるリターン式を指定する。
必須 (1 つのみ)
  • If-Then-Else
  • FLWOR
  • Typeswitch

XQuery 関数の挿入

XQuery Mapper には、W3C 標準の XQuery 関数と演算子のセットが用意されています。 XQuery ファイルおよびデータ トランスフォーメーション ファイルに、標準 XQuery 関数またはユーザ定義関数を追加できます。 たとえば、upper-case XQuery String 関数を使用して、XML 文字列値の文字を大文字に変換できます。

注意 : XQuery 1.0 および XPath 2.0 の関数と演算子の詳細 (W3C の作業草案、2004 年 7 月 23 日) については、http://www.w3.org/TR/2004/WD-xpath-functions-20040723/ を参照してください。
  1. [ウィンドウパースペクティブを開くXQuery トランスフォーメーション] を選択して、XQuery トランスフォーメーション パースペクティブに切り替えます。
  2. XQuery トランスフォーメーション パースペクティブに [式の関数] ビューがあります。

  3. XQuery 関数を挿入する XQuery ファイルを開きます。
  4. デザイン ビューで、関数呼び出しを追加するリンクを選択または作成します。
  5. リンクが緑色になります。

  6. [対象の式] ビューを選択します。
  7. [対象の式] ビューが表示されていない場合は、[ウィンドウビューの表示対象の式] を選択します。

    [一般式] ペインに、選択したターゲット ノードとソース ノードをリンクする XQuery コードが表示され、選択されます。このコードを選択したままにして、次の手順に進みます。

  8. [一般式] ペインで既存の XQuery コードを削除します。
  9. [式の関数] ビューで挿入する関数を探します。
  10. この例では、String Functions フォルダから upper-case 関数を選択します。この関数はソース要素のすべての文字を大文字に変換します。

  11. upper-case 関数を [一般式] ペインにドラッグします。
  12. [一般式] ペインで選択されている関数のパラメータ (この例では、upper-case 関数の $string-var パラメータ) を選択されたままにしておきます。

    注意 : Oracle によって定義された XQuery 関数 (例 : trim-left) には fn-bea: というプレフィックスが付いています。
    注意 : [式の関数] ビューに表示されない XQuery 関数でも XQuery 仕様で定義されていればfn: プレフィックスを付けて使用できます。
  13. 次のいずれかの方法で、関数のソース パラメータを選択します。
    • デザイン ビューの [ソース] ペインからソース要素を選択し、[一般式] ペインの $string-var パラメータの上にドラッグ アンド ドロップする。
    • [式の変数] ビューからソース要素を選択し、[一般式] ペインの $string-var パラメータの上にドラッグ アンド ドロップする。
  14. 必要な関数を挿入し、関数にパラメータを割り当てたら、[一般式] ペインで [適用] をクリックします。

式の変数の挿入

XQuery で使用可能な変数とその下位要素は、[式の変数] ビューに表示されています。

注意 : [式の変数] ビューが表示されていない場合は、[ウィンドウビューの表示式の変数] を選択します。

式の変数ビューには、以下の種類の変数が表示されます。

式の変数は、以下の方法で挿入できます。

スキーマ プロパティの表示

デザイン ビューで XQuery ファイルを編集するときに、[プロパティ] ビューを使用すると、ソースとターゲットの XSD または MFL ファイルを開かずに、現在のトランスフォーメーション内のノードのスキーマ プロパティを表示できます。

[プロパティ] ビューを表示するには、[ウィンドウビューの表示プロパティ] を選択します。

注意 : 要素または属性のスキーマ プロパティを変更するには、対応するスキーマ ファイル (XML スキーマの場合は XSD、非 XML スキーマの場合は MFL) を編集します。

オプション要素の出力の制限

データ トランスフォーメーションのターゲット スキーマにオプション要素 (minOccurs="0") が含まれている場合は、値が存在する場合 (つまり、ソース XML ファイルの要素が空でない場合) にのみ出力 XML ファイルに要素が含まれるように、要素へのリンクをデザインできます。

次のコード リストのソース XML データがあるとします。

コード リスト 2-1 オプション要素を持つ XML データ
<address>
<Address_Line_1>1 Elm Street</Address_Line_1>
<Address_Line_2/>
<City>San Jose</city>
<State>California</State>
<Country>US</Country>
</address>

Address_Line_2 要素はオプションであり、空です。Address_Line_2 がターゲット スキーマの対応する要素にマップされた場合は、デフォルトで、出力 XML ファイルには空の Address_Line_2 要素が含まれます。

このようなオプション要素の出力を制限するには、次の図のように、リンクを右クリックし、[空のノードの削除] を選択します。

図 2-13 空のノードの削除

空のノードの削除

リンクの基になる XQuery コードは、トランスフォーメーションの結果の値が空でない場合にのみターゲット要素を生成する if-then-else 式に囲まれます。

if-then-else 式を削除するには、次の図のように、リンクを右クリックし、[空のノードの保持] を選択します。

図 2-14 空のノードの保持

空のノードの保持

注意 : [空のノードの削除] (または [空のノードの保持]) オプションは、オプションのターゲット要素へのリンクを右クリックした場合にのみ表示されます。

 


データ トランスフォーメーションのテスト

デザイン ビューで XQuery トランスフォーメーションを作成したら、テスト ビューで予期された XML または非 XML 出力が正しく生成されたかどうかをテストできます。

トランスフォーメーションのテストには、自動生成の XML ファイルまたはカスタムの XML ファイルおよび非 XML ファイルを使用できます。

テスト ビューの機能

次の図に、テスト ビューの機能を示します。

図 2-15 テスト ビュー

テスト ビュー

関連トピック

XQuery のテスト ビューに適用される制限

 


デザイン ビューのグラフィカルな機能

この節では、XQuery Mapper のグラフィカルな機能や、XQuery Mapper のデザイン ビューのグラフィカルな表現を使用するために役立つ情報について説明します。

右クリック メニュー オプション

次の表に、リンクまたは要素を右クリックしたときに XQuery Mapper のデザイン ビューで使用できるオプションの一覧を示します。

表 2-3 右クリック メニュー オプション
メニュー オプション
表示するには
操作結果
[コードの表示]
任意のリンクまたはターゲット要素を右クリック
ソース ビューに表示が切り替わり、リンクの XQuery コードが選択される。
[定数の作成]
任意の単純型のターゲット要素を右クリック
ターゲット要素に定数値を割り当てる。
[対象ノードの無効化]
任意のリンクまたはターゲット要素を右クリック
選択したリンクの XQuery コードの周りにブロック用の XQuery コードが追加される。 ブロック コードによって実行時にリンクの XQuery コードが実行されなくなる。

注意 : [対象ノードの無効化] メニュー オプションはターゲット型のルート ノードでは使用できない。

[対象ノードの有効化]
無効なリンクまたはターゲット要素を右クリック
選択したリンクからブロック用の XQuery コードが削除されて、実行時にリンクの XQuery コードが実行される。
[空のノードの削除]
オプションのターゲット要素へのリンクを右クリック
トランスフォーメーションの結果の値が空でない場合にのみターゲット要素を生成する if-then-else 式でリンクが囲まれる。
[空のノードの保持]
すでに [空のノードの削除] オプションが選択されている (オプションのターゲット要素への) リンクを右クリック
トランスフォーメーションの結果の値が空でない場合にのみターゲット要素を生成する if-then-else 式を削除する。
[ワイルドカード ノードの再定義]
ソースまたはターゲットのワイルドカード要素 (any 型) をクリック
ワイルドカード要素の特定のデータ型を指定する。

注意 : ワイルドカード ノードを再定義 (つまり、特定のデータ型を定義) した後に、〔Ctrl〕+〔Z〕を使用して any 型に戻すことはできない。

[ワイルドカード ノードに戻す]
すでに [ワイルドカード ノードの再定義] オプションを使用して特定の型を指定した、ソースまたはターゲットのワイルドカード要素 (any 型) をクリック
要素のデータ型が以前指定した特定の型からワイルドカード (any 型) に変更される。
[自動マップ]
構造的なリンクをクリック
リンクのソースおよびターゲットの子要素が同じサブスキーマ型を持つ場合、選択した構造的なリンクの子ノード間にデータ リンクまたはデータの構造的なリンクが作成される。

注意 : [自動マップ] オプションで子リンクを作成するには、ターゲットとソースの子要素が同じ名前とデータ型を持ち、同じ順序である必要がある。

[リンクの削除]
任意のリンクをクリック
  • デザイン ビュー : リンクが削除される。
  • ソース ビュー : リンクの基になる XQuery コードが削除される。
[すべてのリンクを削除]
[ソース] ペインと [対象] ペインの間にあるペインの空いている場所を右クリック
  • デザイン ビュー : ソースとターゲットの要素/属性の間にあるトランスフォーメーションを表す線が削除される。
  • ソース ビュー : 生成された XQuery コードが削除される。

注意 : [ソース] ペインと [対象] ペインの間にあるペインの空いている場所を右クリックすると、すべてのノードの選択が解除される。

リンクのパターン

XQuery Mapper では、リンクの異なる種類を区別しやすくするため、さまざまな色とパターンのリンクが表示されます。 次の表に、XQuery Mapper で作成されるリンクのグラフィカルな表現を示します。

表 2-4 リンクのパターン
リンクのタイプ
説明
現在リンクが選択されているか
表現
データ リンク
ソース ノードの値をターゲット ノードの値に直接変換するリンク。
選択されていない

テスト ビュー

選択されている

テスト ビュー

暗黙的なリンク
基になる XQuery コードが変更されたデータ リンク。
XQuery コードが XQuery Mapper によって解釈できないリンク。
:
  • [対象の式] ビューの [一般式] セクションを使用して、fn:upper-case XQuery 関数を挿入したリンク。
  • 2 つの構造的なリンクのセットに和集合の制約が適用された場合に、2 番目の子ノードのセット間に生成されるデータ リンク。子ノードは同じサブスキーマのものでなければならない。
選択されていない

テスト ビュー

選択されている

テスト ビュー

構造リンク
データを直接マップしない、2 つの親構造の間のリンク。
選択されていない

テスト ビュー

選択されている

テスト ビュー

データ構造リンク
データの構造的なリンクは、データ リンクと構造的なリンクを組み合わせたものである。
: 反復要素のオプションの子要素の間のリンク。
選択されていない

テスト ビュー

選択されている

テスト ビュー

制約リンク
ソースの親構造間の結合の結果データに制約や制限を付けるリンク。制約リンクは 2 つのソース ノードで作成される。
: 特定のソース要素の値が互いに等しい場合にのみデータを返す 2 つのソース反復要素の結合。
選択されていない

テスト ビュー

選択されている

テスト ビュー

コピー リンク
2 つの同一のスキーマ サブ構造の間のリンク。実行時に、ソース データはターゲット データにブロックごと直接コピーされる。
型なしの XML ノードと型付きの XML 複合型ノードの間のマッピングを行うと、コピー リンクも生成される。
選択されていない

テスト ビュー

選択されている

テスト ビュー

リンクの色

[ソース] ペインのノードを [対象] ペインにドラッグすると、2 つのノードの間に一時的なリンク (破線) が表示されます。 線の色は、ソース ノードとターゲット ノードの間の互換性によって変わります。

リンクの作成が完了すると、ターゲット ノードとソース ノードに応じて、破線または実線が表示されます。

 


XML のグローバル要素、グローバル型、ローカル要素、および属性

XML スキーマ型または要素は、schema 要素の直接の子である場合はグローバル、schema 要素の直接の子でない場合 (他の要素にネストされている場合) はローカルと見なされます。

次の XML スキーマの例で、この違いを示します。

コード リスト 2-2 グローバル要素とローカル要素を持つ XML スキーマ
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.acme.org/globalExample"
xmlns="http://www.acme.org/globalExample"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="globalElement">
<xs:complexType>
<xs:sequence>
<xs:element name="localElement"
minOccurs="1" maxOccurs="1"
type="xs:string" />
</xs:sequence>
<xs:attribute name="attribute"
type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:complexType name="globalType">
<xs:sequence>
<xs:element name="anotherLocalElement"
minOccurs="0" maxOccurs="unbounded"
type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>

上の XML スキーマの例では、globalElementschema 要素の直接の子であるためグローバルです。localElementglobalElement の子であるためローカルです。

上の XML スキーマの下のほうにある globalType 要素のように、グローバル タイプを定義することもできます。XML スキーマに含めることのできるグローバル要素は 1 つだけですが、単一の XML スキーマ内に同じグローバル タイプを持つ複数の要素を (異なる名前で) 宣言できます。

次の表に、これらの異なる XML 構成要素の XQuery Mapper におけるグラフィカルな表現を示します。

表 2-5 XML 構成要素のグラフィカルな表現
コンポーネント
グラフィカルな表現
上記の XML スキーマ例での名前
グローバル要素

テスト ビュー

globalElement
ローカル要素

テスト ビュー

localElement
グローバル型

テスト ビュー

globalType
属性

テスト ビュー

globalElement に定義されている attribute


  ページの先頭       前  次