다대일

다대일 별도 반복 소스 리프(a)

주: 이 예에 있는 모델 그룹은 반복되지 않습니다.
소스:
Company
  Department[]
  Manager[]
대상:
Corporation
  Leader[]
맵핑 전:
<Corporation>
맵핑 후:
<Corporation>
  <ForEach Department>
    <ForEach Manager>
      <Qualify>
        <Condition occur(Department)=occur(Manager)>
          <Leader>
            <MapFrom Department, Manager>

Leader에 ForEach가 필요합니다. Department와 Manager는 각각 하나씩 제공합니다. 두 ForEach의 순서는 임의적입니다.

다대일 별도 반복 소스 리프(b)

소스:
 Family
  Father
    GradeF[]
  Mother
    GradeM[]
  Child
    GradeC[]
대상:
Person
  Grade[]
맵핑 전:
<Person>
맵핑 후:
<Person>
  <ForEach GradeF>
    <ForEach GradeM>
      <ForEach GradeC>
        <Qualify>
          <Condition occur(GradeF)=occur(GradeM)=occur(GradeC)>
            <Grade>
              <MapFrom GradeF, GradeM, GradeC>

앞의 예와 유사함, Condition의 추가 동등 테스트

다대일 별도 반복 소스 상위

소스:
 School
  Boy[]
    MarkB
  Girl[]
    MarkG
대상:
 Education
  Student[]
    Performance
맵핑 전:
<Education>
맵핑 후:
 <Education>
  <ForEach Boy>
    <ForEach Girl>
      <Qualify>
        <Condition occur(Boy)=occur(Girl)>
          <Student>
            <Performance>
              <MapFrom MarkB, MarkG>

대상의 각 반복 레벨(Student)에 대해 선택된 각 소스에서 소스 반복의 한 레벨(Boy 및 Girl)과 일치시키십시오. 선택된 각 소스의 ForEach 요소를 중첩시키십시오.

ForEach와 Qualify-Condition이 이미 있음

소스:
 School
  Boy[]
    MarkB
    AgeB
  Girl[]
    MarkG
    AgeG
대상:
 Education
  Student[]
    Performance
    Age
맵핑 전:
 <Education>
  <ForEach Boy>
    <ForEach Girl>
      <Qualify>
        <Condition occur(Boy)=occur(Girl)>
          <Student>
            <Performance>
              <MapFrom MarkB, MarkG>
            <Age>
              <MapFrom>
맵핑 후:
 <Education>
  <ForEach Boy>
    <ForEach Girl>
      <Qualify>
        <Condition occur(Boy)=occur(Girl)>
          <Student>
            <Performance>
              <MapFrom MarkB, MarkG>
            <Age>
              <MapFrom AgeB, AgeG>

ForEach, Qualify, Condition은 이미 있으므로 삽입할 필요가 없습니다. <ForEach Y> nests <ForEach X>가 이미 있으므로 <ForEach X> nests <ForEach Y>를 삽입할 필요가 없습니다. Condition Y=X 가 이미 있으므로 Condition X=Y를 삽입할 필요가 없습니다.

다대일 다중 레벨 반복 대칭 구조

소스:
 School
  Boy[]
    GradeB[]
      MarkB
  Girl[]
    GradeG[]
      MarkG
대상:
 Education
  Student[]
    Year[]
      Performance
맵핑 전:
<Education>
맵핑 후:
 <Education>
  <ForEach Boy>
    <ForEach Girl>
     <Qualify>
        <Condition occur(Boy)=occur(Girl)>
          <Student>
            <ForEach GradeB>
              <ForEach GradeG>
               <Qualify>
                  <Condition occur(GradeB)=occur(GradeG)>
                    <Year>
                    <Performance>
                      <MapFrom MarkB, MarkG>

대상의 각 반복 레벨에 대해 선택된 각 소스에서 소스 반복의 한 레벨과 일치시키십시오. GradeB와 GradeG는 Year와 일치하고 Boy와 Girl은 Student와 일치합니다.

다대일 공용 반복 소스

소스:
 Company
  Department[]
    Manager
    Size
대상:
 Corporation
  Group[]
맵핑 전:
<Corporation>
맵핑 후:
 <Corporation>
  <ForEach Department>
    <Group>
      <MapFrom Manager, Size>

각 소스(Manager 및 Size)부터 시작해서 공용 반복 소스(Department)에서 끝납니다.

다중 레벨 반복 대칭 구조

소스:
 School
  Grade[]
    Boy[]
      MarkB
    Girl[]
      MarkG
대상:
 Education
  Year[]
    Student[]
      Performance
맵핑 전:
<Education>
맵핑 후:
 <Education>
  <ForEach Grade>
    <Year>
      <ForEach Boy>
        <ForEach Girl>
           <Qualify>
              <Condition occur(Boy)=occur(Girl)>
                <Student>
                  <Performance>
                    <MapFrom MarkB, MarkG>

Boy와 Girl은 Student와 일치하고 Grade는 Year와 일치합니다.

다중 레벨 반복 비대칭(a)

소스:
 Company
  Division[]
    Team[]
      Employee
University
  Department[]
    Professor
대상:
 Organization
  Person[]
맵핑 전:
<organization>
맵핑 후:
 <Organization>
  <ForEach Division>
    <Qualify>
      <Condition occur(Division)=1>
        <ForEach Team>
          <ForEach Department>
             <Qualify>
                <Condition occur(Team)=occur(Department)>
                  <Person>
                    <MapFrom Employee, Professor>

여분의 소스 반복에 ForEach-Qualify-Condition을 사용하십시오.

다중 레벨 반복 비대칭(b)

소스:
Company
  Division[]
    Team[]
      Employee
University
  Department[]
    Professor
대상:
Organization
  Location[]
    Person[]
맵핑 전:
<Organization>
맵핑 후:
 <Organization>
  <ForEach Division>
    <Location>
      <ForEach Team>
        <ForEach Department>
          <Qualify>
            <Condition occur(Team)=occur(Department)>
              <Person>
                <MapFrom Employee, Professor>

누락된 소스 반복에는 ForEach가 없습니다.

다중 레벨 반복 비대칭(c)

소스:
Company
  Division[]
    Employee
University
  Department[]
    Professor
대상:
 Organization
  Location[]
    Person[]
맵핑 전:
<Organization>
맵핑 후:
 <Organization>
  <Location>
    <ForEach Division>
      <ForEach Department>
        <Qualify>
          <Condition occur(Division)=occur(Department)>
            <Person>
              <MapFrom Employee, Professor>

누락된 소스 반복에는 ForEach가 없습니다.

중첩된 반복의 다른 레벨 내에 있는 문제의 여러 소스

소스:
 S
  S1[]
    S2
    S3[]
      S4
대상:
 T
  T1[]
    T2[]
맵핑 전:
<T>
맵핑 후:
 <T>
  <ForEach S1> (caused by matching S1-T1 for mapping S2-T2)
    <T1>
      <ForEach S1> (caused by matching S1-T2 for mapping S2-T2)
        <ForEach S3> (caused by matching S3-T2 for mapping S4-T2)
          <Qualify>
            <Condition occur(S1)=occur(S3)>
              <T2>
                <MapFrom S2,S4>

표현식이 같은 두 개의 ForEach 표현식을 중첩시킬 수 없음, occur(S1)가 확실하지 않습니다.

중첩된 반복의 다른 레벨 내에 있는 문제의 여러 소스(a)

소스:
 S
  S1[]
    S2[]
      S3[]
    S4
      S5[]
대상:
 T
  T1[]
맵핑 전:
<T>
맵핑 후:
 <T>
  <ForEach S1> (caused by unmatching S for mapping S3-T1)
    <Qualify>
      <Condition occur(S1)=1>
        <ForEach S2> (caused by unmatching S2 for mapping S3-T1)
          <Qualify>
            <Condition occur(S2)=1>
              <ForEach S1> (caused by unmatched S1 for mapping S5-T1)
                <Qualify>
                  <Condition occur(S1)=1>
                    <ForEach S3> (caused by matching S3-T1 for mapping S3-T1)
                      <ForEach S5> (caused by matching S5-T1 for mapping S5-T1)
                        <Qualify>
                          <Condition occur(S3)=occur(S5)>
                            <T1>
                              <MapFrom S3,S5>

표현식이 같은 두 개의 ForEach 표현식을 중첩시킬 수 없음, occur(S1)가 확실하지 않습니다.

중첩된 반복의 다른 레벨 내에 있는 문제의 여러 소스(b)

소스:
 S 
  S1[]
   S2
   S3[]
      S4
대상:
 T
  T1[]
맵핑 전:
<T>
맵핑 후:
 <T>
   <ForEach S1> (caused by unmatched S1 for mapping S4-T1)
      <Qualify>
         <Condition occur(S1)=1>
            <ForEach S1> (caused by matching S1-T1 for mapping S2-T1)
               <ForEach S3> (caused by matching S3-T1 for mapping S4-T1)
                  <Qualify>
                     <Condition occur(S1)=occur(S3)>
                        <T1>
                           <MapFrom S2,S4>
관련 작업
메시지 맵핑 개발
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2005 마지막 갱신 날짜: 11/08/2005
ar25235_3_