Integration Serviceは、XML Parserトランスフォーメーションを処理する場合、XMLデータの行を読み込み、XMLを解析し、出力グループを介してデータを返します。 XML Parserトランスフォーメーションはパススルーポート内に非XMLデータを返します。 JMSやIBM WebSphere MQなどのソースからXMLのメッセージを解析できます。XMLパーサートランスフォーメーションはアクティブなトランスフォーメーションです。
XML Parserトランスフォーメーションには1つの入力グループおよび1つ以上の出力グループがあります。入力グループには、文字列でXMLドキュメントを受け取る1つの入力ポートDataInputがあります。
XML Parserトランスフォーメーションを作成する場合は、XMLウィザードを使用してXML、DTD、またはXMLスキーマファイルをインポートします。 たとえば、以下のDTDファイルEmployeeをインポートすることができます。
<!ELEMENT EMPLOYEES (EMPLOYEE+)>
<!ELEMENT EMPLOYEE (LASTNAME, FIRSTNAME, ADDRESS, PHONE+, EMAIL*, EMPLOYMENT)>
<!ATTLIST EMPLOYEE EMPID CDATA #REQUIRED
DEPTID CDATA #REQUIRED>
<!ELEMENT LASTNAME (#PCDATA)>
<!ELEMENT FIRSTNAME (#PCDATA)>
<!ELEMENT ADDRESS (STREETADDRESS, CITY, STATE, ZIP)>
<!ELEMENT STREETADDRESS (#PCDATA)>
<!ELEMENT CITY (#PCDATA)>
<!ELEMENT STATE (#PCDATA)>
<!ELEMENT ZIP (#PCDATA)>
<!ELEMENT PHONE (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT EMPLOYMENT (DATEOFHIRE, SALARY+)>
<!ATTLIST EMPLOYMENT EMPLSTAT (PF|PP|TF|TP|O) "PF">
<!ELEMENT DATEOFHIRE (#PCDATA)>
<!ELEMENT SALARY (#PCDATA)>
このXMLパーサートランスフォーメーションは、ルートビューがX_Employeesであり、X_EmployeesはX_Employeeの親になっています。X_Employeeは、X_Salary、X_Phone、およびX_Emailの親です。
以下の図に、エンティティリレーションの作成を選択した場合にDesignerが作成するXMLパーサートランスフォーメーションを示します。
DesignerはルートビューのX_Employeesを作成します。 X_Employeesは、X_Employeeの親です。 X_Employeeは、X_Salary、X_Phone、およびX_Emailの親です。
XML Parserトランスフォーメーションの各ビューは、別のビューとのリレーションを確立するためのキーを少なくとも1つ持っています。 ユーザーがXMLエディタでキーを指定しなかった場合は、Designerがビューごとにプライマリキーと外部キーを作成します。 キーのデータ型は、bigint型です。 Integration ServiceがXML Parserトランスフォーメーションから行を返すたびにキー値を作成するため、キーは生成キーと呼ばれます。
Designerはプライマリキーまたは外部キーのカラムを作成する場合に、プレフィックスの付いた列名を割り当てます。XML定義の場合、生成されたプライマリキー列にはXPK_、生成された外部キー列にはXFK_がプレフィックスとして付けられます。 外部キーは、常に他のグループのプライマリキーを参照します。生成された外部キー列は、生成されたプライマリキーカラムを必ず参照します。
たとえば、グループX_Employeeは、XPK_Employeeプライマリーキーを持ちます。 Designerは、X_Phone、X_Email、およびX_SalaryをX_Employeeグループに接続する外部キー列を作成します。 各グループは、外部キー列XFK_Employeeを持ちます。
リポジトリはキー値を格納します。 リポジトリの値を変更することはできませんが、セッション後のシーケンス番号のリセットまたはリスタートを選択することができます。