混合コンテンツのマッピング

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  マッピングのデザイン > マッピング接続の種類 > ソース優先マッピング >

混合コンテンツのマッピング

以下のサンプルでは ...\MapForceExamples\Tutorial\ フォルダー以下にある Tut-OrgChart.mfd、 Tut-OrgChart.mfd.xml、 Tut-OrgChart.mfd.xsd, Tut-Person.xsd を使用します。

 

ソース XML インスタンス

このセクションで使用されている Tut-OrgChart.XML ファイルの一部を以下に示します。ここで注目したいのは 「bold」 ならびに 「italic」 子ノードも含まれている 「para」 の混合コンテンツです。

 

para 要素には処理命令 (<?sort alpha-ascending?>)  だけではなく、コメントテキスト(<!--Company details... -->)も含まれていることに注目してください。これらのデータもマッピングすることができます。

 

mixed-1

 

XML インスタンスファイルにあるテキストのシーケンスならびに bold/italic ノードは以下のような構成(順序)となっています:

 

<para> The company...

<bold>Vereno</bold>in 1995 ...

<italic>multi-core...</italic>February 1999

 

<bold>Nano-grid.</bold>The company ...

<italic>offshore...</italic>to drive...

</para>

 

初期のマッピング

Tut-OrgChart.mfd を開いたときのマッピングを以下に示します。

 

mixed-2

 

上のマッピングを出力

上に示されるマッピング結果を以下に示します。組織図 や個々のオフィス名が表示されます。

 

mixed-3

 

para 要素のマッピング

以下のスクリーンショットは混合コンテンツマッピングの例です。混合コンテンツの para 要素にコネクタが接続されており、点線によりそれが混合コンテンツであることを表しています。text() ノードにはテキストデータが含まれており、ターゲットコンポーネントへテキストを表示するには、このノードをマッピングする必要があります。

 

mixed-4

 

コネクタを右クリックしてプロパティを選択することで、コネクタに注釈を追加し、ラベルを付与することができます。詳細については 接続の注釈 を参照ください。

 

以下のイメージは Tut-OrgChart.xsd スキーマファイルにある Desc 要素のコンテンツモデルを表しています。この例の場合、この定義はソースならびにターゲットスキーマの両方にて共通したものとなっています。

 

alp-mix1

 

コンテンツモデルにある para 要素について、以下の事柄を理解できます:

 

para  は 「TextType」 という型で、mixed="ture" の複合型です。
bold ならびに italic 要素は両方とも "xs:string" 型となっており、この例では再帰的な型として定義されていません(つまり bolditalic も "TextType" 型ではありません)。
bold ならびに italic 要素は、para 内部においてどのような順序でも無制限の数だけ出現することができます。
para 要素内では bold ならびに italic 要素とともに、任意のテキストを入力することができます。

 

アイテム間で混合コンテンツの接続を作成:

1.メニューオプションの「接続 | 子要素の自動接続」を選択して、有効にします(既に有効になっていない場合)。
2.ソーススキーマにて para アイテムから、ターゲットスキーマの para アイテムへの接続を行います。MapForce にコネクタをソース優先にするかを問うメッセージが表示されます。

 

 

dlg_mixed_content_notice

 

3.「はい」をクリックして混合コンテンツ接続を作成します。

 

メモ:para は混合コンテンツであるため、この時点でメッセージが表示されます。自動接続オプションを無効にした状態で、para アイテムを直接接続した際にも混合コンテンツのメッセージが表示されます。

 

 

para アイテムにある全ての子アイテムが接続されました。para アイテムへ接続しているコネクタが点線で表示され、それが混合コンテンツであることを表しています。

 

4.出力タブをクリックして、マッピングの結果を確認します。

 

mixed-5

5.出力タブのアイコンバーにあるワードラップアイコン ic-wrap をクリックして、全てのテキストを出力ウィンドウにて表示します。

 

mixed-6

 

各オフィスに関する記述である混合コンテンツテキストが正しくマッピングされました。テキストだけでなく bold ならびに italic タグコンテンツが、XML ソースファイルにある通りにマッピングされました。

6.マッピングビューに切り替えます。

 

混合コンテンツからテキストノードを削除する:

1.text() ノードのコネクタをクリックして、Del キーを押下することで接続を削除します。

 

mixed-del

 

2.出力タブをクリックしてマッピングの結果を確認します。

 

mixed-8

 

結果:

para 要素内にある全てのテキストノードが削除されました。
それまでマッピングされていた bold ならびに italic 要素のテキストはまだ残っています。
bold ならびに italic アイテムのシーケンスもソース XML ファイルと同様のものとなっています。

 

処理情報とコメントのマッピング:

1.コンテンツ接続を右クリックして、プロパティを選択します。
2.ソースドライブ (混合コンテンツ) から、処理命令をマップコメントをマップのチェックボックスを選択します。

(C) 2019 Altova GmbH