1 対 1

反復リーフ単一レベル (対称)

注: 以下の例におけるモデル・グループは、反復しません。
ソース:
Person
  FullName
  CreditCardNo[]
ターゲット:
Consumer
  Name
  Bill[]
マッピング前:
<Consumer>
マッピング後: ステップ 1.
<Consumer>
  <Name>
    <MapFrom>
  <Bill>
    <MapFrom>
ステップ 2.
<Consumer>
  <Name>
    <MapFrom>
  <Bill>
    <MapFrom CreditCardNo>
ステップ 3.
<Consumer>
  <Name>
    <MapFrom>
  <ForEach CreditCardNo>
    <Bill>
      <MapFrom CreditCardNo>
  1. 取り込みを実行します。
  2. MapFrom: CreditCardNo または Bill (またはその両方) が複合の場合、MapFrom は関数呼び出し式を採用します。
  3. CreditCardNo- Bill から開始する ForEach は、反復ターゲット (Bill) および反復ソース (CreditCardNo) を検索し、ForEach ソースをターゲットの blockOpen とします。

リーフ反復から非反復へ (非対称)

ソース:
Person
  FullName
  CreditCardNo[]
ターゲット:
Consumer
  Name
  Liability
マッピング前:
<Consumer>
マッピング後:
<Consumer>
  <Name>
    <MapFrom>
  <ForEach CreditCardNo>
    <Qualify>
      <Condition occur(CreditCardNo)=1>
        <Liability>
          <MapFrom CreditCardNo>
  1. 取り込みを実行します。
  2. MapFrom: CreditCardNo または Bill (またはその両方) が複合の場合、MapFrom は関数呼び出し式を採用します。
  3. CreditCardNo - Liability から開始して、Liability 以降は反復しません。 アンマッチの反復 CreditCardNo。 ForEach を Qualify と共に挿入します。 合計を出すために Accumulate を呼び出します。

非反復からリーフ反復へ (非対称)

ソース:
Person
  FullName
  CreditCardNo
ターゲット:
Consumer
  Name
  Purchase[]
マッピング前:
<Consumer>
マッピング後:
<Consumer>
  <Name>
    <MapFrom>
  <Purchase>
    <MapFrom CreditCardNo>
  1. 取り込みを実行します。
  2. MapFrom: CreditCardNo または Bill (またはその両方) が複合の場合、MapFrom は関数呼び出し式を採用します。
  3. CreditCardNo - Purchase から開始し、Purchase は反復しますが、CreditCardNo 以降は、ソース内にマッチングする反復はありません。
  4. ForEach はありません。

単一レベル反復 (対称)

ソース:
Inventory
  Item[]
    ItemName
    ItemNumber
    ItemPrice
ターゲット:
Warehouse
  Product[]
    ProductID
    ProductName
    UnitPrice
マッピング前:
<Warehouse>
マッピング後:
<Warehouse>
  <ForEach Item>
    <Product>
      <ProductID>
        <MapFrom>
      <ProductName>
        <MapFrom ItemName>
      <UnitPrice>
        <MapFrom>
  1. ItemName - ProductName から開始します。
  2. Product は反復を検出し、ForEach は Product を出ます。
  3. Item は反復を検出します。
  4. Item は ForEach の式となります。
  5. 注: マップされたターゲットの兄弟は、同じ ForEach 内で終了します。

単一レベル反復 (非対称)

ソース:
Association
  Member[]
    Address
      PhoneNumber
      Street
      City
      Province
ターゲット:
Phonebook
  Subscriber[]
    Name
    Number
マッピング前:
<Phonebook>
マッピング後:
<PhoneBook>
  <ForEach Member>
    <Subscriber>
      <Name>
        <MapFrom>
      <Number>
        <MapFrom PhoneNumber>
  1. 前述の例と類似。
  2. PhoneName - Number から開始します。
  3. ForEach は反復ターゲット Subscriber から出ます。
  4. ForEach の式は Member です。

一様でない反復レベル(非対称) (a)

ソース:
Company
    Department[]
        Emplyee[]
            Salary
            Bonus
ターゲット:
Employer
  Worker[]
    Compensation
マッピング前:
<Employer>
マッピング後:
<Employee>
  <ForEach Department>
    <Qualify>
      <Condition occur(Department)=1>
        <ForEach Employee>
          <Worker>
            <Compensation>
              <MapFrom Salary>
  1. Salary から Compensation への一致した反復を ForEach に入れます。
  2. ソース反復 Department は一致できないので、その ForEach はありません。
  3. 注: 内側から外へ出ることは任意に決定します。 外側から入る場合、Qualify が生じます (Employee)。

一様でない反復レベル (非対称) (b)

ソース:
Employer
  Worker[]
    Compensation
ターゲット:
Company
  Department[]
    Emplyee[]
      Salary
      Bonus
マッピング前:
<Company>
マッピング後:
<Company>
  <Department>
    <ForEach Worker>
      <Employee>
        <Salary>
          <MapFrom Compensation>
        <Bonus>
          <MapFrom>
  1. Salary から Compensation へのマッチングする反復。
  2. それを ForEach に入れます。
  3. ターゲット反復 Department は一致できないので、その ForEach はありません。

複数レベル反復 (対称) (a)

ソース:
Company
  Department[]
    Emplyee[]
      Salary
      Bonus
ターゲット:
University
  Faculty[]
    Professor[]
      Compensation
      Grant
マッピング前: 注 1 を参照:
<University
注 2 を参照:
<University>
  <ForEach Department>
    <Faculty>
      <ForEach Employee>
        <Professor>
          <Compensation>
            <MapFrom Salary>
          <Grant>
            <MapFrom>
注 3 を参照:
<University>
  <ForEach Employee>
    <Faculty>
      <ForEach Department>
        <Professor>
          <Compensation>
            <MapFrom Salary>
          <Grant>
            <MapFrom>
マッピング後: 注 1 を参照:
<University>
  <ForEach Department>
    <Faculty>
      <ForEach Employee>
        <Professor>
          <Compensation>
            <MapFrom Salary>
          <Grant>
            <MapFrom>
注 2 を参照:
<University>
  <ForEach Department>
    <Faculty>
      <ForEach Employee>
        <Professor>
          <Compensation>
            <MapFrom Salary>
          <Grant>
            <MapFrom Bonus>
注 3 を参照:
<University>
  <ForEach Employee> (old)
    <ForEach Department> (new)
      <Faculty>
        <ForEach Department> (old)
          <ForEach Employee> (new)
            <Professor>
              <Compensation>
                <MapFrom Salary>
              <Grant>
                <MapFrom Bonus>
  1. 反復ソースおよびターゲットを対にし、Salary から Compensation へ開始し、上へ進みます。 ForEach の 2 つの場所を検出し、ForEach の 2 つの式を取得します。
  2. 反復ソースおよびターゲットを対にし、Grant から Bonus へ開始し、上へ進みます。 ForEach の 2 つの場所を検出し、ForEach の 2 つの式を取得します。 いずれの場合も、全く同じ ForEach がすでにそこにあります。 新規のものは挿入しません。
  3. 期待される式を持つ、期待される ForEach を、期待される場所に検出できません。 ForEach を、それがなかったかのように挿入します。 終結処理します。

複数レベル反復 (対称) (b)

ソース:
Organization
  Company[]
    Department[]
      Emplyee[]
        Salary
        Bonus
  CEO
ターゲット:
Country
  University[]
    Princeple
    Faculty[]
      Professor[]
        Compensation
        Grant
マッピング前:
<Country>
  <ForEach Company>
    <University>
      <Principle>
        <MapFrom CEO>
      <Faculty>
        <MapFrom>
マッピング後:
<Country>
  <ForEach Company>
    <University>
      <Principle>
        <MapFrom CEO>
      <ForEach Department>
        <Faculty>
          <ForEach Employee>
            <Professor>
              <Compensation>   
                <MapFrom Salary>  
              <Grant>   
                <MapFrom>

外側の ForEach に対して、2 つの ForEaches を挿入し、既存のものを保持します。

ターゲット内のリモート反復祖先

ソース:
S
  S1[]
    S2[]
      S3
  S4
ターゲット:
T
 T1
 T2[]
    T3
      T4
         T5[]
           T6
マッピング前: 注 1 を参照:
<T>
  <T1>
    <MapFrom S4>
  <T2>
    <MapForm>
注 2 を参照:
<T>
  <T1>
    <MapFrom S4>
  <T2>
    <T3>
      <T4>
        <T5>
          <T6>
            <MapForm>
マッピング後:
<T>
  <T1>
    <MapFrom S4>
  <ForEach S1>
    <T2>
      <T3>
        <T4>
        <ForEach S2>
          <T5>
            <T6>
              <MapForm S3>
  1. 長いブランチが 2 つのステートメントを置換します。
  2. 長いブランチが既存の長いブランチを置換します。
関連タスク
メッセージ・マッピングの開発
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2005 Last updated: 11/07/2005
ar25235_2_