ターゲットコンポーネントとして FlexText を使用する

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

ホーム >  データソースとターゲット > MapForce FlexText >

ターゲットコンポーネントとして FlexText を使用する

FlexText コンポーネントの主な使用方法は、テキストファイルのセクションを削減し、分割し、 FlexText コンポーネントの対応するアイテムを他の ターゲット コンポーネントにマップすることです。 FlexText を、 しかしながら、 ターゲット コンポーネントとして使用し、個別のファイルを構成、または、再構成して、単一の ファイルに構成することができます。期待する結果を達成するには、試行錯誤を必要とする可能性があります。

 

FlexText コンポーネントを ターゲット として使用すると、以前に定義された操作が元に戻されます。ファイルを多数のサブセクションに分割する代わりに、ファイルを構成、または、再構成します。

 

一般的には、ターゲットとして使用される場合、  FlexText テンプレート内で定義されている各操作を元(ボトムアップ)に戻します、 :

 

「分割」 は、 「マージ」になります。 例 繰り返される分割のマッピングは、 「,」 により区切られ、マージ アイテムは 「,」により分割されます。
「保管」 は、 「ロード」になります。
「切り替え」 は、「最初の一致項目を選択する」になります。

 

ターゲット コンポーネントとして FlexText を使用する場合、以下に注意してください:

 

データ ソース コンポーネントと FlexText コンポーネントの入力 アイテム1つの間の接続が構築されると、  FlexText コンポーネント データ ソースは、無視されます。データは、新規にマップされたソースコンポーネントにより与えられ、優先順位を有します。
テキストは、(CSV と FLFとして保管 ) 「保管...」  コンテナにマップされ、セパレーターは保持されます。しかしながら、 「保管..」 ノードの上のノード内で固定長 分割が起こる場合、テキストは切り捨てられる可能性があります。
固定された幅の分割では、分割ベース=ヘッドの場合、左/上のセクションが定義されている長さに対し切り捨てられる可能性があります。 または、分割ベース=テールの場合、 右/下 セクションが定義されている長さに対し切り捨てられる場合があります。 テキストが短すぎる場合、 スペース 文字が、セクションに挿入されます。
FlexText は、通常、分割 操作のアイテムの間にセパレーター( 固定された分割のための空白スペース) を挿入します。 しかし、これは、 「区切られた (行ベース)」 分割には、適応されません。「区切られた (行ベース)」 操作は、操作を完全に元に戻すことはできません。  「区切られた」 テキストは、最初の行内で発生し、テキストに含まれます、このための、自動的な処理により 正確に追加することはできない可能性があります。
o区切られた (行ベース) は、最初の行が不在の場合セパレーターは追加されません。
o区切られた (フロート) は、 2つのセクション間にセパレーターを追加します。
切り替え 操作は、簡単なケース以外は元に戻すことはできません。このデータ 切り替えは、自身のブランチをデータが含まれる最初のブランチのためにスキャンし、このデータを使用、または、挿入します。切り替え操作の最初の接続のみがマップされます。  残りの切り替えコンテナにデータを転送するには、フィルターを残りの接続のために定義し、繰り返される分割アイテムに入力されるように、切り替えアイテムが単一アイテムを返すように切り替え親アイテムの複製を作成する必要があります。
単一の 分割 コンテナの子に対してマッピングすると、最後のアイテム以外すべてのマッピングの結果は破棄されます。 複数の結果が生成された場合でも、単一の 結果が時保持されます。

 

次の XML スキーマ コンテンツモデルの例は、ターゲットとして使用されている FlexText の 振る舞いについて説明しています:

 

繰り返される分割は、繰り返し要素です。
単一の 分割は、 'シーケンス' コンテンツモデル グループの一部を作成します。
保管は 'choice' コンテンツモデル グループを作成します。各ケースが可能な子要素です。
保管は、単純型の要素を作成します。

(C) 2019 Altova GmbH