XML デコーダーグループ

XMLファイルからデータを抽出するデコーダーを定義するログソースとしてのXMLファイルの処理。

メモ

XMLログソースに対してXMLデコーダーグループを定義するには、XMLファイルの構造と内容、抽出するデータ、およびそのデータが格納されるフィールドに関する知識が必要です。 この節では、デコーダー用に指定できるパラメーターについて簡単に説明します。デコーダーの使用方法は、目的のソースデータが格納されている XML ファイルによって異なります。

XML ログソースの形式の要件について詳しくは、 ログソース. XML デコーダーの定義に関して不明な点がありましたらアドビにお問い合わせください。

XML デコーダーの最上位の要素はデコーダーグループ(XMLDecoderGroup)です。特定の形式の XML ファイルからデータを抽出するための一連のデコーダーテーブルが、デコーダーグループにまとめられています。異なる複数の形式の XML ファイルがある場合は、その形式ごとにデコーダーグループを定義する必要があります。各デコーダーグループは、少なくとも 1 つのデコーダーテーブルから成ります。

次の表に、XMLデコーダーグループを定義するために指定する必要があるTablesパラメーターとすべてのサブパラメーターを示します。

パラメーター 説明
テーブル

デコーダーグループ内の各テーブルは、XML ファイルから抽出する 1 階層分のデータを表します。例えば、訪問者に関するデータを抽出したい場合、それぞれの訪問者について抽出する情報から成るデコーダーテーブルを作成します。デコーダーテーブル内にデコーダーテーブルを作成することもできます(「Children」を参照)。

デコーダーグループにテーブルを追加するには

  • Tables を右クリックし、新規追加XMLDecoderTable をクリックします。

Fields

データが格納される拡張フィールド(x-trackingid、x-email など)。フィールドに格納されるデータは、サブフィールドである Path と Operation(両方またはそのどちらか一方)によって決まります。

Path は、構造化 XML ファイル内のフィールドの階層です。フィールドのパスは、それが定義されているテーブルのパスに対して相対的に指定します(例:tag.tag.tagtag.tag.tag.@attribute)。パスの大文字と小文字が区別されることに注意してください。

指定したパスのそれぞれの行に Operation が適用されて、出力結果が生成されます。次の演算を適用できます。

  • LAST:XML ファイル内で最後に出現するパスの値がフィールドに格納されます。
  • RANDOM:フィールドにランダム値を割り当てます。x-trackingid フィールドなど、一意の ID を生成する必要がある場合に利用できます。
  • INHERIT:定義されているフィールドの値は、親テーブルの対応するフィールドから継承されます。
  • "constant ":定数は引用符で囲む必要があります。定数演算を使用すると、特定のパスの存在をチェックできます。パスが存在する場合、対象のフィールドに定数の値が割り当てられます。

デコーダーテーブルにフィールドを追加するには

  • Fields を右クリックし、新規追加XMLDecoderField をクリックします。必要に応じて Field、Operation、Path を定義します。

パス

デコーダーテーブルに格納される情報の、構造化 XML ファイル内における階層。子の XML デコーダーテーブルの場合、親テーブルのパスに対して相対的に指定します。パスの大文字と小文字が区別されることに注意してください。

例えば、XML ファイルが次のような構造になっているとします。

<訪問者>

 

...

 

 </visitor>

 </logdata>    <p> 次に、パスはlogdata.visitorに<span class="filepath">なりま</span>す。</p> </td>
テーブル

このパラメーターの値は常に「Log Entry」にする必要があります。

注意:変更が必要な場合は必ずアドビまでご相談ください。

Children

(オプション)埋め込みのデコーダーテーブル(複数可)。それぞれの子に、前述した Fields、Path、Table の各パラメーターが存在します。

デコーダーテーブルに子を追加するには

  • Children を右クリックし、新規追加XMLDecoderTable をクリックします。必要に応じて Field、Operation、Path を定義します。

データセットのログソースとして XML ファイルを使用するには、データセットへと加工される情報を抽出する XML デコーダーグループと XML デコーダーテーブルを定義する必要があります。以降、Web データセットのサンプル XML ログソースを例に、デコーダーグループとデコーダーテーブルを定義する方法を紹介します。

次のXMLファイルには、Experience CloudID、電子メールアドレス、住所、訪問者のページビューに関する情報など、Webサイト訪問者に関する情報が含まれています。

この例では、XML ファイルが 1 つなので、必要なデコーダーグループは 1 つだけです。このデコーダーグループの名前は「Sample XML Format」とします。ファイルの形式が同じであれば、他の XML ファイルにも、このデコーダーグループを適用できます。このデコーダーグループ内に XML デコーダーテーブルを作成するにはまず、抽出する情報とそのデータの格納先となるフィールドを決める必要があります。

この例では、訪問者とそのページビューに関する情報を抽出することにします。そこで、訪問者に関する情報を格納する最上位(親)の XML デコーダーテーブルと、その訪問者のページビューに関する情報を格納する埋め込み(子)の XML デコーダーテーブルを作成します。

親(訪問者)テーブルの情報は次のとおりです。

  • XML ファイルの各データ行のデータタイプ識別子。ページビューに関連したデータ行ではなく、訪問者に関連したデータ行であることがすぐにわかるよう、ここでは「VISITOR」を識別子として使用します。この値は x-rowtype フィールドに格納することができます。
  • 訪問者の ID。この ID は x-trackingid フィールドに格納します。
  • 訪問者の電子メールアドレス(contact.email)。x-email フィールドに格納します。
  • 訪問者の登録ステータス。訪問者が登録ユーザーである場合、x-is-registered フィールドに値「1」を格納します。
  • Pathの値はlogdata.visitor、Tableの値はLog Entryです。 これらのパラメーターについて詳しくは、上の表(「XMLDecoderGroup」)を参照してください。

子(ページビュー)テーブルの情報は次のとおりです。

  • XML ファイルの各データ行のデータタイプ識別子。訪問者のみに関連したデータ行ではなく、訪問者のページビューに関連したデータ行であることがすぐにわかるよう、ここでは「PAGEVIEW」を識別子として使用します。この値は x-rowtype フィールドに格納します。
  • 訪問者の ID。この値は親テーブルから継承し、x-trackingid フィールドに格納します。
  • 各ページビューのタイムスタンプ。x-event-time フィールドに格納します。
  • 各ページビューの URI。cs-uri-stem フィールドに格納します。
  • Path の値は pageview で、Table の値は「Log Entry」。これらのパラメーターについて詳しくは、上の表(「XMLDecoderGroup」)を参照してください。

次の画面キャプチャは、Log Processing Dataset Includeファイルの一部と、サンプルXMLファイル用のXMLデコーダーグループを示しています。このグループは、親と子のXMLデコーダーテーブルで扱う構造に基づいています。

サンプル XML ファイルに対してこのデコーダーを適用した場合の出力結果は、次のようなテーブルになります。

x-rowtype cs–uri-stem x-email x-is-registered x-event-time x-tracking-id
VISITOR foo@bar.com 1 1
PAGEVIEW /index.html 2006-01-01 08:00:00 1
PAGEVIEW / 2006-01-01 08:00:30 1

同様のテーブルは、Data Workbench でフィールドビューアのインターフェイスを使用して作成できます。フィールドビューアのインターフェイスについて詳しくは、 データセット設定ツール.

XML要素#valueを使用して、その属性値を読み取る

XMLパスで​#value​タグを使用して、XML要素の値を取り込めるようになりました。

例えば、以前は​<Hit><Page name="Home Page" index="20">home.html</Page></Hit>​パスを指定していたので、<Page>タグの値を読み取ることができません。 <Page>タグとその属性の値を読み取るには、それぞれHit.Page.@nameとHit.Page.@indexを使用します。 Hit.Page.#value​式を使用してタグの値を引き出すこともできます。

例えば、次のフィールドをデコーダーに追加することで、タグ<varValue>の値を読み取ることができます。

7 = XMLDecoderField: 
Field = string: x-varvalue-name-added 
Operation = string: LAST 
Path = string:  
<b>#value</b> 
Path = string: varValue 
Table = string: Log Entry

同様に、デコーダーに次のフィールドを追加することで、タグ<Rep>の値を読み取ることができます。

7 = XMLDecoderField: 
Field = string: x-rep-name-added 
Operation = string: LAST 
Path = string: Rep.# 
<b>value</b> 
Path = string: Reps 
Table = string: Log Entry

一方、属性のない要素タグの値を読み取るには、<line>タグの下の<text>タグとその値を、デコーダーの構築方法に応じて、パスに「text」を付けるかline.textを使用して、直接読み取ることができます。

2 = XMLDecoderField: 
Field = string: x-chat-text 
Operation = string: LAST 
Path = string:  
<b>text</b> 
Path = string:  
<b>line</b> 
Table = string: Log Entry

このページ