ナビゲーションをスキップ

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

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

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

この節では、BEA XQuery Mapper を使用してデータ トランスフォーメーションをグラフィカルに作成する方法について説明します。グラフィカル インタフェースを使用して、スキーマのソース要素をスキーマの対象要素にマップできます。マップを行うと、XQuery Mapper により XQuery が生成され、.xq ファイルとして保存されます。

この節の内容は以下のとおりです。

 


XQuery Mapper の起動

BEA AquaLogic Service Bus をインストールすると、Eclipse 3.0 と Eclipse 用の XQuery Mapper プラグインが共にインストールされます。

注意 : AquaLogic Service Bus 2.0 リリースの場合、Eclipse 3.0 は Windows プラットフォームでのみサポートされます。

XQuery Mapper インストールの一部として、デフォルトのスキーマを含むサンプル プロジェクトが提供されます。サンプル プロジェクトの詳細については、「XQuery Mapper サンプル プロジェクト」を参照してください。

Eclipse を起動するには

  1. [スタート] メニューから、[プログラムBEA ProductsToolsXQuery Mapper] を選択します。
  2. Eclipse メニュー バーから、[WindowOpen PerspectiveOtherXQuery トランスフォーメーション] を選択して XQuery Transformation Perspective を開きます。
  3. 注意 : XQuery ファイルを開くと、XQuery Transformation Perspective が自動的に起動します。ただし、XQuery Mapper が開かれており、XQuery ファイルが開かれていない場合は、XQuery Transformation Perspective を手動で起動する必要があります。

 


XQuery Mapper サンプル プロジェクト

サンプル プロジェクトを起動すると、「例 : XQuery を使用したデータの操作と制約」に示されているように、サンプル スキーマ ファイルを使用して XQuery トランスフォーメーションを作成できます。

詳細については、以下のトピックを参照してください。

サンプル プロジェクトを起動するには

サンプル プロジェクトは、Eclipse 内または Windows ファイル システムから起動できます。

XQuery トランスフォーメーションを作成する前に、プロジェクト固有の XML または非 XML スキーマ ファイルをインポートします。ファイルはどの場所からでも XQuery Mapper にインポートできます。Eclipse にファイルをインポートする前に、ビジネス ニーズに応じたフォルダ ディレクトリ構造を作成することをお勧めします。詳細については、「スキーマ ファイルのインポート」を参照してください。

サンプル プロジェクトには、以下のフォルダとファイルが含まれます。

 


新しい XQuery Mapper プロジェクトの作成

新しいプロジェクトを作成するには、Eclipse の [New Project] ウィザードを使用します。このウィザードでは、さまざまな種類のプロジェクトから新しいプロジェクトを選択するよう求められます。XQuery Mapper の場合は、[Simple] を選択して基本的なプロジェクトを作成します。

新しい XQuery Mapper プロジェクトを作成するには

  1. XQuery Mapper の起動」で示された手順に従って、Eclipse で XQuery Mapper Perspective を起動します。
  2. [FileNewProject] を選択します。
  3. [New Project] ウィザードが開きます。ウィザードで、以下のいずれかを選択するよう求められます。

  4. [SimpleProject] を選択します。
  5. [Next] をクリックします。
  6. プロジェクト名を入力します。
  7. 例 : TestProject1

  8. [Use Default] がチェックされていることを確認します。
  9. [Finish] をクリックします。

 


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

スキーマ ファイルはどの場所からでもインポートできます。以下のスキーマ タイプがサポートされています。

この節の内容は以下のとおりです。

XML スキーマのインポート

XML スキーマは、Eclipse の外部で作成および格納されます。インポートされたスキーマ ファイルは、以下の図に示されているように [新しい XQuery トランスフォーメーション] ウィザードで使用できます。

図 2-1 [新しい XQuery トランスフォーメーション] ウィザード


 

XML スキーマをインポートするには

  1. XQuery Mapper の起動」で示された手順に従って、Eclipse で XQuery Mapper Perspective を起動します。
  2. [Navigator] ウィンドウで、スキーマをインポートするプロジェクトを選択します。
  3. [FileImport] を選択します。
  4. [Import] ウィザードが表示されます。このウィザードを使用すると、スキーマをさまざまなソースからインポートできます。選択するインポート ソースは、スキーマが格納されている場所によって異なります。

  5. インポート タイプを選択してから、[Next] をクリックします。
  6. 選択したインポート タイプに応じて、適切なファイルを検索します。
  7. たとえば、ローカル ファイル システムからインポートする場合は、ローカルに格納されているファイルを検索するよう求められます。

  8. 入力スキーマを検索し選択してから、[Finish] をクリックします。

MFL スキーマのインポート

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

MFL スキーマをインポートするには

  1. Eclipse で XQuery Mapper Perspective を起動します。
  2. Eclipse と XQuery Perspective の起動の詳細については、「XQuery Mapper の起動」を参照してください。

  3. [Navigator] ウィンドウで、スキーマをインポートするプロジェクトを選択します。
  4. [FileImport] を選択します。[Import] ウィザードが開きます。このウィザードを使用すると、スキーマをさまざまなソースからインポートできます。選択するインポート ソースは、スキーマが格納されている場所によって異なります。
  5. インポート タイプを選択し、[Next] をクリックします。
  6. 選択したインポート タイプに応じて、インポート ファイルを検索するよう求められます。
  7. たとえば、ローカル ファイル システムからインポートする場合は、ローカルに格納されているファイルを検索するよう求められます。

  8. 入力スキーマを検索し選択してから、[Finish] をクリックします。

MFL ファイルを作成するには

MFL ファイルは Format Builder ツールを使用して作成します。このツールは、Windows の [スタート] メニューまたは Eclipse から起動できます。

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

 


ソース データと対象データを選択して XQuery を生成する

[Design] タブをクリックし、XQuery Mapper のデザイン ビューを開きます。このビューでは、ソース データと対象データを選択して、トランスフォーメーション マップを作成できます。デザイン ビューでは、ソース要素と対象要素をグラフィカルにリンクできます。ソース要素と対象要素の間にリンクを作成すると、XQuery ファイル (マップ) が生成されます。XQuery ファイル (マップ) は、デザイン ビューに表示されます。生成された XQuery コードは、[Source] タブをクリックすると表示されます。

ソース データと対象データの組み合わせは以下のとおりです。

ソース データと対象データを選択するには

  1. マップを作成するプロジェクトを選択します。
  2. 右クリックして、[NewXQuery トランスフォーメーション] を選択します。
  3. [新しい XQuery トランスフォーメーション] ウィザードが開きます。

  4. トランスフォーメーションのファイル名を入力します。
  5. 例 : Transform1

  6. [Next] をクリックします。
  7. [ソースの型] ページが開きます。このページでは、トランスフォーメーションのソースの型を選択できます。

  8. [使用可能なソースの型] ペインで、ソースのデータ型を選択します。
  9. ソースのデータ要素を選択します。
  10. たとえば、Schemas/Dates.xsd から入力データを追加する場合は、以下の図に示されているように、最初にそのファイルを選択しその内容を展開して、入力要素として dates を選択します。

    図 2-2 ソースの型の選択


     
  11. ソースの入力パラメータを選択してから、[追加] をクリックします。
  12. [選択されたソースの型] ペインに、選択した要素を構成する要素と属性が表示されます。

  13. ソースの型を追加するには、以上の手順を繰り返します (ソースの型は複数指定できます)。
  14. [Next] をクリックします。
  15. [対象の型] ページが開きます。このページでは、トランスフォーメーションの対象データを選択できます。

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

    対象のデータ型は 1 つしか指定できません。

  20. [Finish] をクリックします。

 


デザイン ビューでのデータ トランスフォーメーションの作成

この節の内容は以下のとおりです。

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

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

その例のいくつかを以下に示します。

要素-要素トランスフォーメーションを作成するには

  1. マップを作成するプロジェクトを選択します。
  2. マップを作成する .xq ファイルを開きます。
  3. これは、マップ ファイルが「デザイン ビューでのデータ トランスフォーメーションの作成」の説明に従って作成されていることを前提としています。

  4. 要素-要素リンクを作成するには、[Source] ペインの要素を [Target] ペインの要素にドラッグします。
  5. たとえば、ソース要素 name と対象要素 name の間に要素-要素リンクを作成する場合は、以下の図に示されているように [Source] ペインの要素を [Target] ペインにドラッグします。

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


     
  6. 目的の要素がすべてマップされるまで、以上の手順を繰り返します。
  7. 作業内容を保存します。

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

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

その例のいくつかを以下に示します。

属性-要素トランスフォーメーションを作成するには

  1. マップを作成するプロジェクトを選択します。
  2. マップを作成する XQuery ファイルを開きます。
  3. 属性-要素リンクを作成するには、[Source] ペインの属性を [Target] ペインの要素にドラッグします。
  4. たとえば、namename の間に属性-要素リンクを作成する場合は、以下の図に示されているように [Source] ペインの要素を [Target] ペインにドラッグします。

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


     
  5. 目的の属性がすべてマップされるまで、以上の手順を繰り返します。

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

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

反復グループ-反復グループのトランスフォーメーションを作成するには

  1. マップを作成するプロジェクトを選択します。
  2. マップを作成する XQuery ファイルを開きます。
  3. これは、マップ ファイルが「デザイン ビューでのデータ トランスフォーメーションの作成」の説明に従って作成されていることを前提としています。

  4. 反復グループ-反復グループのリンクを作成するには、[Source] ペインの要素または属性を [Target] ペインの要素または属性にドラッグします。
  5. たとえば、namename の間に反復グループ-反復グループのリンクを作成する場合は、以下の図に示されているように [Source] ペインの要素を [Target] ペインにドラッグします。

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


     
  6. 目的の要素と属性がすべてマップされるまで、以上の手順を繰り返します。

 


マップ トランスフォーメーションの編集

トランスフォーメーションは、作成後に [Source] タブで変更、更新、または削除することができます。

この節の内容は以下のとおりです。

生成された XQuery ファイルの表示と編集

ソース データと対象データ間のリンクを作成すると、その関係を示す XQuery ファイルが生成されます。XQuery Mapper でサポートされている XQuery 言語については、以下の URL を参照してください。

http://www.w3.org/XML/Query

XQuery ファイルを開いて表示および編集するには

  1. 生成された XQuery ファイルを含むプロジェクトを選択します。
  2. 編集する XQuery ファイルを開きます。
  3. [Source] タブをクリックします。
  4. XQuery コードが表示されます。無効な XQuery コードには赤色の下線が付きます。

  5. 必要に応じて、赤色の下線で示されたエラーを修正します。
  6. 必要な場合は、XQ ファイルのソース ビューですべての XQuery コードを削除できます。ネームスペース宣言の後にあるすべての XQuery ソース コードを削除して、デザイン ビューでリンクを再作成します。

  7. 変更内容を保存します。

 


[制約] タブの使用

XQuery Mapper の [制約] タブを使用すると、反復するソース要素と対象要素の間の関係に制約を付けたり操作することができます。

[制約] タブから以下の [制約の種類] オプションを使用できます。

デザイン ビューで反復する要素の間に構造リンクを作成すると、反復する要素を繰り返し処理するための for ループが XQuery 内に生成されます。[制約] タブの [Where 句式] ペインを使用し、XQuery の for ループに where 句を追加することで、反復する対象要素に制限や制約を付けることができます。[制約] タブの [Where 句式] ペインで、XQuery の for ループの where 句に対する複合条件を作成できます。複合条件は、OR または AND で結合された条件で構成されています。次に例を示します。

((data($PurchaseOrderDoc/partId) > 200 and data($PurchaseOrderDoc/partId) <= 400))

実行時には、複合条件を満たす反復要素についてのみ for ループが反復処理されます。

[制約] タブの詳細な使用例については、「反復するソースと反復しない対象の間のトランスフォーメーションの作成」を参照してください。

 


[対象の式] タブの使用

[対象の式] タブを使用して、ソース要素と対象要素の間のリンクを表示および変更できます。[対象の式] タブでは、ソース要素と対象要素の間に複雑な式を作成できます。

この節の内容は以下のとおりです。

[対象の式] タブでのリンクの XQuery コードの編集

リンクの XQuery コードを編集するには

  1. 編集する XQuery ファイルを開きます。
  2. デザイン ビューで、ソース ノードと対象ノードの間のリンクを選択または作成します。
  3. このリンクを選択したままにします。

  4. [対象の式] タブを選択します。
  5. デフォルトでは、[一般] オプションが選択され、リンクの XQuery コードが [一般式] ペインに表示されます。

  6. [対象の式] タブを選択します。
  7. 生成された XQuery コードを編集します。
  8. クエリは、XQuery 言語で記述されます。XQuery コードの詳細については、以下の URL を参照してください。

    http://www.w3.org/XML/Query

[対象の式] タブでのリンクへの If-Then-Else 構文の追加

[対象の式] タブを使用して、リンクに if-then-else 構文を追加できます。if-then-else のあるクエリを呼び出すと、if 式を構成する条件が評価され、その結果に応じて異なる値が対象ノードに返されます。

たとえば、次の図の例に示すように、ソース ノード quantity の値が 500 より大きい場合は、対象ノード ID の値として 4554 が返されますが、ソース ノード quantity の値が 500 以下である場合は、対象ノード ID の値として 5894 が返されます。

図 2-6 If-Then-Else


 

リンクに単純な if-then-else 式を追加する以下の手順に加えて、より複雑な例もあります。

これらの例については、「反復するソースと反復しない対象の間のトランスフォーメーションの作成」を参照してください。

 


XQuery 関数の呼び出しの挿入

この節では、[対象の式] タブを使用して、関数の呼び出しをクエリに挿入する方法について説明します。

XQuery 関数および演算子の詳細については、http://www.w3.org/TR/2005/WD-xpath-functions-20050404/ を参照してください。

この節の内容は以下のとおりです。

クエリ内での XQuery 関数の呼び出し

XQuery Mapper には、標準の W3C XQuery 関数と演算子のセットが用意されています。トランスフォーメーションを作成すると XQuery 言語でクエリが記述され、このクエリによってデータ変換が行われます。生成されたクエリには、標準の XQuery 関数またはユーザ定義関数を追加できます。たとえば、トランスフォーメーションの一部として、XML 文字列を大文字に変換することができます。

Eclipse で XQuery 関数および変数を表示するには

  1. Eclipse で XQuery Mapper Perspective を起動します。
  2. [式の関数] を表示するには、[WindowShow View式の関数] を選択します。
  3. [式の変数] を表示するには、[WindowShow View式の変数] を選択します。

XQuery 関数を呼び出すには

  1. XQuery を開きます。
  2. [Design] タブで、関数呼び出しを追加するリンクを選択または作成します。
  3. これら 2 つのノード間のリンクが緑色になります。

  4. [Design] タブの下部にあるペインで、[対象の式] タブを選択します。
  5. [対象の式] タブが表示されていない場合は、メニュー バーから [WindowShow View対象の式] を選択してください。

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

  6. [Delete] をクリックします。
  7. [一般式] ペインのテキストが削除されます。

  8. フォルダを折りたたんだり展開したりして、目的の関数を検索します。
  9. この例では、String Functions フォルダから upper-case 関数を選択します。

  10. [式の関数] ペインで目的の関数を選択したら、それを [一般式] ペインにドラッグします。
  11. 以降の手順を行うために、[一般式] ペインのパラメータ (この例では $string-var) を選択したままにしておきます。

  12. 次のいずれかの方法でソース パラメータを選択します。
  13. 関数のすべてのパラメータが割り当てられるまで、以上の手順を繰り返します。
  14. [適用] をクリックします。
  15. この例を実行すると、upper-case 関数によって $quoteDoc/name 要素のすべての文字が大文字に変換されます。

 


式の変数の使用

XQuery Mapper の式の変数ビューを使用して、変数とその下位要素にアクセスできます。式の変数ビューから、[制約] タブと [対象の式] タブに変数またはその下位要素をドラッグ アンド ドロップできます。

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

 


XQ ファイル編集時のプロパティ エディタの使用

[Design] タブで XQuery ファイルを編集するときにプロパティ エディタを使用すると、ソースと対象の XSD または MFL ファイルを開かずに、現在のマップ内のノードに関するスキーマ プロパティを表示できます。プロパティ エディタには、選択した要素のスキーマ プロパティに関する読み取り専用のビューが表示されます。

プロパティ エディタ ビューを有効にするには、[WindowShow ViewProperties] を選択します。

 


マップ トランスフォーメーションのテスト

XQuery Mapper の [Test] タブを使用して、XQuery トランスフォーメーションを検証できます。

この節の内容は以下のとおりです。

XQuery ファイルのテストの詳細については、「XQuery ファイルのテスト」を参照してください。

XQuery Mapper テスト機能の概要

[Test] タブでは以下の機能を使用できます。

 


設計時の検証

設計時には、選択されたソース パラメータまたは結果データが型付きのグローバル XML 要素である場合に、XQuery ファイルの [Test] タブにある [ソース データ] ペインおよび [結果データ] ペインで [検証] がアクティブになります。詳細については、「XML のグローバル要素、グローバル型、およびローカル要素」を参照してください。

選択されたソース パラメータまたは結果データが次のいずれかのタイプである場合、検証機能はアクティブになりません。

XQuery ファイルの [Test] タブにある [ソース データ] ペインと [結果データ] ペインのいずれかで [検証] をクリックすると、表示された XML がスキーマに対してチェックされ、設計時のエラーが報告されます。テスト ビューで設計時に行われる検証は、実行時に行われるスキーマ検証とは異なります。設計時の検証では結果の XML ドキュメントは変更されませんが、スキーマで定義されている必須の要素または属性が存在しているかどうかがチェックされます。

 


デザイン ビューのグラフィカルな表現について

デザイン ビューを使用して、トランスフォーメーションをグラフィカルに作成、変更、または更新することができます。この節では、XQuery Mapper の [Design] タブのグラフィカルな表現について説明します。

この節の内容は以下のとおりです。

リンクのメニュー オプション

メニュー オプション

呼び出し方法

結果

[すべてのリンクを削除]

デザイン ビューで [Source] ペインと [Target] ペインの間の空いている場所で右クリックして、ドロップダウン メニューから [すべてのリンクを削除] を選択する。

注意 : [Source] ペインと [Target] ペインの間の空いている場所で右クリックすると、すべてのノードが選択されていない状態になる。

デザイン ビューでは、すべてのリンクのグラフィカルな表現が削除され、ソース ビューでは、ソース ノードと対象ノードのリンクについて生成された XQuery コードが削除される。

[自動マップ]

デザイン ビューで構造リンクを右クリックして、ドロップダウン メニューから [自動マップ] を選択する。

注意 : このメニュー オプションは、デザイン ビューで構造リンクが選択されている場合にのみ使用可能。

リンクのソース子要素と対象子要素が同じサブスキーマ タイプである場合、選択した構造リンクの子ノード間にデータ リンクまたはデータ構造リンクが作成される。[自動マップ] オプションで子のリンクを作成するには、対象子要素とソース子要素が同じ名前と同じデータ型を持ち、同じ順序になっている必要がある。

[コードの表示]

デザイン ビューでリンクを右クリックして、ドロップダウン メニューから [コードの表示] を選択する。

表示がデザイン ビューからソース ビューに変わり、リンクの間に生成された XQuery コードが表示される。選択したリンクの XQuery コードは青色で強調表示される。

[対象ノードの無効化]

デザイン ビューでリンクを右クリックして、ドロップダウン メニューから [対象ノードの無効化] を選択する。

選択したリンクの XQuery コードの周りに、ブロック用の XQuery コードが追加される。このコードによって、リンクの XQuery コードは実行時に実行されなくなる。

[対象ノードの有効化]

デザイン ビューで無効になっているリンクを右クリックして、ドロップダウン メニューから [対象ノードの有効化] を選択する。

選択したリンクからブロック用の XQuery コードが削除される。実行時に、リンクの XQuery コードが実行されるようになる。

[リンクの削除]

デザイン ビューで選択されているリンクを右クリックして、ドロップダウン メニューから [リンクの削除] を選択する。

デザイン ビューでは、選択したリンクのグラフィカルな表現が削除され、ソース ビューでは、ソース ノードと対象ノードのリンクについて生成された XQuery コードが削除される。


 

マップの表現について

データは、データ リンクによってソース ノードから対象ノードに直接変換されます。たとえば、次の図は、priceQuote/customerName 要素と quote/name 要素の間のデータ リンクを示します。

図 2-7 データ リンク


 

priceQuote/customerNamequote/name は、両方とも XML String 要素です。実行時に、priceQuote/customerName 要素のデータが上の図のように quote/name 要素に変換されます。

これら 2 つの要素をリンクする XQuery コードを変更すると、これらの要素間のリンクは、データ リンク (青色の線で表示) から暗黙的なリンク (明るいグレーの線で表示) に変更されます。

次の表に、さまざまなリンクの表現を示します。

リンクの種類

XQuery Mapper により生成

されたリンクかどうか

説明

XQuery Mapper で現在リンクが選択されているかどうか

リンクの表現

データ リンク

リンクはドラッグ アンド ドロップで生成される。

ソース ノードの値を対象ノードの値に直接変換するリンク。

未選択


 


 

選択


 

構造リンク

リンクはドラッグ アンド ドロップで生成される。

データを直接マップしない 2 つの親構造間のリンク。

未選択


 

選択


 

データ構造リンク

リンクはドラッグ アンド ドロップで生成される。

データ構造リンクは、以下の 2 つのリンクを組み合わせたものである。

  • 2 つのノード間のデータ リンク - ソース ノードの値を対象ノードの値に直接変換するリンク。

  • 構造リンク - 2 つの構造間のリンク。

: 反復する要素の任意の子ノード間のリンク。

未選択


 

選択


 


 

マップ トランスフォーメーションのリンクについて

[Source] ペインのノードを、[Target] ペインにドラッグしている間は、2 つのノードの間に一時的なリンク (破線) が表示されます。破線の色は、ソース ノードと対象ノードの間の互換性によって異なります。次の表を参照してください。

リンクの種類

Mapper によって作成

されたリンクかどうか

説明

Mapper で現在リンクが選択されているかどうか

リンクの表現

制約リンク

リンクはドラッグ アンド ドロップで生成される。

ソースの親構造間の結合の結果データに制約や制限を付けるリンク。制約リンクは 2 つのソース ノードで作成される。

: 制約リンクは、特定のソース要素の値が互いに等しい場合に、データを返すためにのみ、2 つの反復するソース要素の結合に追加できる。

未選択


 

選択


 

コピー リンク

リンクはドラッグ アンド ドロップで生成される。

2 つの同一のスキーマ サブ構造の間のリンク。実行時に、ソース データは対象データにブロックごと直接コピーされる。

型なしの XML ノードと型付きの XML 複合型ノードの間のマッピングを行うと、コピー リンクも生成される。

未選択


 

選択


 

暗黙的なリンク

新しい XQuery コードを記述したり既存の XQuery コードを変更したりすることで、ノード間にリンクが作成される。

XQuery コードが XQuery Mapper によって別のタイプのリンクであると解釈されないリンク。

: [対象の式] タブの [一般式] セクションまたはソース ビューを使用して変更されたデータ リンク。たとえば、xf:upper-case 関数をリンクに追加する場合など。2 つの構造リンクのセットに和集合の制約が適用されている場合に、子ノードの 2 番目のセット間に生成されるデータ リンク。子ノードは同じサブスキーマのものでなければならない。

未選択


 

選択


 

破線の色

説明

赤色

ソース ノードと対象ノードの間にリンクは作成できない。対象ノードのデータ型は、ソース ノードのデータ型に変換できない (リンクは無効なマッピングを表す)。たとえば、データ型が XML string であるノードは、反復する XML ノードに変換できない。ソース ノードを対象ノードにドラッグすると、赤色のエラー ダイアログ ボックスが表示される。

オレンジ色

ソース ノードと対象ノードの間にリンクを作成できるが、データ型に完全な互換性はない。ソース ノードを対象ノードにドラッグすると、非互換性または必要な変換を表すオレンジ色の警告ダイアログ ボックスが表示される。

緑色

ソース ノードと対象ノードの間にリンクを作成できる。ソース ノードのデータ型は、対象ノードのデータ型と互換性がある。


 

ソース ノードが対象ノード上にドロップされると、リンクを表す線が表示されます。対象ノードとソース ノードに応じて、破線または実線が表示されます。

 


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

XML スキーマの型または要素は、schema 要素の直接の子である場合は「グローバル」、schema 要素の直接の子でない場合 (他の要素にネストされている場合) は「ローカル」と見なされます。次の 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: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 におけるグラフィカルな表現を示します。

名前

XQuery Mapper での表現

上記の XML スキーマ例での名前

グローバル要素


 

localElement および anotherLocalElement

ローカル要素


 

globalElement

グローバル型


 

globalType


 

 

ナビゲーション バーのスキップ  ページの先頭 前 次