# ドキュメントタイプの設定

## このタスクについて

[Document] (ドキュメント)データ型は、 Talend で提供されるデータ型の1つです。[Document] (ドキュメント)タイプは、[Schema editor] (スキーマエディター)で対応するデータのスキーマを編集する際にセットアップします。スキーマエディターの詳細は、[\[Schema Editor\] (スキーマエディター)の使用](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/setting-schemas-in-map-editor#using-the-schema-editor_c)をご覧ください。

次の図では、入力フローでの例を説明しており、Customerを[Document] (ドキュメント)タイプにセットアップしています。複製するには、マップエディターで、[+]ボタンをクリックして[Schema editor] (スキーマエディター)の入力側で1行を追加し、名前を変更して、ドロップダウンリストで表示されたデータ型の中から[Document] (ドキュメント)を選択します。

![スキーマエディターからのドキュメントタイプ。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/Mapping_XMLMap1.png)

多くの場合、tXMLMapは前後のコンポーネントのスキーマをtFileInputXMLコンポーネントなどから取得し、ESBで使用する場合はtESBProviderRequestコンポーネントから取得します。そうすることで、XMLフローの処理でDocument (ドキュメント)タイプをセットアップする手間を大幅に省略できます。ただし、ドキュメント行のコンテンツとなるXMLストラクチャーを変更するには、引き続きマップエディターを使用する必要があります。

情報メモ注: [Document] (ドキュメント)フローには、ユーザー定義のXMLツリーが含まれますが、他のスキーマと同じく単一フィールドのスキーマとなり、フィールド間でデータ型が異なる場合があることにご注意ください。スキーマを設定する方法の詳細は、[\[Basic settings\] (基本設定)タブ](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/basic-settings-tab)をご覧ください。

データの行で[Document] (ドキュメント)タイプをセットアップすると、マップエディターの対応するデータフローテーブルに、このストラクチャーの詳細を反映する基本的なXMLツリーストラクチャーが自動的に作成されます。この基本ストラクチャーは、tXMLMapを使用する有効なXMLツリーに必要な最小エレメントを示しています。

* ルートエレメント: XMLツリーの階層データを読み取るために反復処理するエレメントを判別します。

* ループエレメント: XMLツリーの階層データを読み取るために反復処理するエレメントを判別します。デフォルトでは、ルートエレメントはループエレメントとしてセットアップされます。

![ルートエレメントとループエレメント。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/Mapping_XMLMap2.png)

この図は、入力フローCustomerの例を示します。デフォルトでroot (ルート)とタグ付けされ生成されたXMLルートに基づいて、目的のXMLツリーストラクチャーを開発できます。

この操作は次の手順で行います。

## 手順

1. 以下のいずれかのソースのタイプからカスタムXMLツリーストラクチャーをインポートします。
   * XMLまたはXSDファイル(関連項目: [XMLおよびXSDファイルからXMLツリーストラクチャーをインポート](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/importing-xml-tree-structure-from-xml-and-xsd-files))

     情報メモ注: XSDファイルをインポートする場合、このXSDファイルで記述するXML構造を作成します。

   * Talend Studioの[Repository] (リポジトリー)で作成および保存されたファイルXML接続(関連項目: [リポジトリーからXMLツリーストラクチャーをインポートする](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/importing-xml-tree-structure-from-repository))。

   情報メモ注: 必要に応じて、コンテキストメニューで提供されるオプションを使用してXMLツリーを手動で開発できます。
2. 必要に応じて、作成するXMLツリーのループエレメントをリセットします。必要な数だけループを設定できます。このステップでは、次のような状況について考慮しなければならない場合があります。
   * 複数のXMLツリーを作成する場合、それぞれについてループエレメントを定義する必要がある。

   * [Repository] (リポジトリー)からXMLツリーをインポートする場合、ループエレメントはソースストラクチャーのセットに応じて設定される。ただし、ループエレメントはリセットできます。

     詳細は、[インポートされたXMLストラクチャーのループエレメントを設定またはリセット](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/setting-or-resetting-loop-element-for-imported-xml-structure)をご覧ください
3. オプション: 必要に応じて、コンテキストメニューで提供されるオプションを使用してインポートしたXMLツリーを引き続き変更できます。次の表では、使用可能なオプションで実行できる操作を説明しています。
   | オプション | オペレーション |
   | --- | --- |
   | [Create Sub-element] (サブエレメントの作成)および[Create Attribute] (属性の作成) | XMLツリーを開発するためのエレメントまたは属性を追加します。関連項目: [サブエレメントまたは属性をXMLツリーストラクチャーに追加する](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/adding-sub-element-or-attribute-to-xml-tree-structure) |
   | [Set a namespace] (ネームスペースの設定) | インポートしたXMLツリーのネームスペースを追加および管理します。関連項目: [ネームスペースを管理](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/managing-namespace) |
   | [Delete] (削除) | エレメントまたは属性を削除します。関連項目: [XMLツリーストラクチャーからエレメントまたは属性を削除](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/deleting-element-or-attribute-from-xml-tree-structure) |
   | [Rename] (名前の変更) | エレメントまたは属性の名前を変更します。 |
   | [As loop element] (ループエレメントとして) | エレメントをループエレメントとして設定またはリセットします。複数のループエレメントおよびオプションのループエレメントがサポートされています。 |
   | [As optional loop] (オプションループとして使用) | このオプションは、ループエレメントを定義するまで使用できません。<br><br>対応するエレメントがソースファイルに存在する場合、オプションループエレメントは通常のループエレメントと同様に機能します。存在しない場合は、ループエレメントとして自動的にその親エレメントがリセットされます。ソースファイルの親エレメントがない場合は、ルートエレメントまで高いレベルのエレメントが採用されます。ただし実際の運用では、XMLツリーとソースファイルストラクチャーに相違がある場合、ソースファイルにXMLツリーを適合させてより高いパフォーマンスを得ることをおすすめします。 |
   | [As group element] (グループエレメントとして) | 出力側のXMLツリーで、エレメントをグループエレメントとして設定します。関連項目: [出力データをグルーピング](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/grouping-output-data) |
   | [As aggregate element] (集約エレメントとして) | 出力側のXMLツリーで、エレメントを集約エレメントとして設定します。関連項目: [出力データを集計](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/aggregating-output-data) |
   | [Add Choice] (選択の追加) | 選択エレメントを設定します。この下で開発されたすべての子エレメントは、この定義に含まれることになります。この選択エレメントは、XSDコンセプトの1つに由来します。これにより、tXMLMapでドキュメントフローを読み書きするXSD選択エレメントの機能を実行できます。<br><br>tXMLMapで選択エレメントが処理される際、マッピング式が適切に定義されていないと、定義に含まれるエレメントが出力されません。<br><br>情報メモ注:<br><br>tXMLMapコンポーネントでは、インポートしたXSDファイルで設定済みのすべての選択エレメントが自動的に定義されます。 |
   | [Set as Substitution] (代替として設定) | 置換エレメントを設定して、対応する XSD で定義されている特定のヘッドエレメントの置換可能なエレメントを指定します。これにより、tXMLMapでドキュメントフローを読み書きするXSD選択エレメントの機能を実行できます。<br><br>tXMLMapが置換エレメントを処理する際に、マッピング式が適切に定義されていないと、その定義に含まれるエレメントは出力されません。<br><br>情報メモ注:<br><br>tXMLMapコンポーネントでは、インポートしたXSDファイルで設定済みのすべての代替エレメントが自動的に定義されます。 |

   次のセクションでは、XMLツリーを作成するプロセスの詳細を説明しています。