n:1-Zuordnungen - unterschiedliche Wiederholungsquellen belassen (a)
Anmerkung: Modellgruppen wiederholen sich in diesen Beispielen nicht.
Quelle: |
Unternehmen
Abteilung[]
Manager[]
|
Ziel: |
Unternehmen
Leiter[]
|
Vor der Zuordnung: |
<Corporation>
|
Nach der Zuordnung: |
<Corporation>
<ForEach Department>
<ForEach Manager>
<Qualify>
<Condition occur(Department)=occur(Manager)>
<Leader>
<MapFrom Department, Manager>
|
'Leader' benötigt 'ForEach'. 'Department' und 'Manager' halten jeweils ein Vorkommen davon bereit.
Die Reihenfolge der beiden Vorkommen von 'ForEach' ist beliebig.
n:1-Zuordnungen - unterschiedliche Wiederholungsquellen belassen (b)
Quelle: |
Familie
Vater
GradeF[]
Mutter
GradeM[]
Untergeordnetes Element GradeC[]
|
Ziel: |
Person
Dienstgrad[]
|
Vor der Zuordnung: |
<Person>
|
Nach der Zuordnung: |
<Person>
<ForEach GradeF>
<ForEach GradeM>
<ForEach GradeC>
<Qualify>
<Condition occur(GradeF)=occur(GradeM)=occur(GradeC)>
<Grade>
<MapFrom GradeF, GradeM, GradeC>
|
Ähnlich den vorherigen Beispielen gibt es einen weiteren Gleichheitstest unter 'Condition'.
n:1-Zuordnungen - unterschiedliche Vorgänger-Wiederholungsquellen (a)
Quelle: |
Schule
Junge[]
MarkB
Mädchen[]
MarkG
|
Ziel: |
Fortbildung Student[]
Leistung
|
Vor der Zuordnung: |
<Education>
|
Nach der Zuordnung: |
<Education>
<ForEach Boy>
<ForEach Girl>
<Qualify>
<Condition occur(Boy)=occur(Girl)>
<Student>
<Performance>
<MapFrom MarkB, MarkG>
|
Ordnen Sie jeder Wiederholungsebene (Student) im Ziel eine Ebene der Quellenwiederholung (Boy and Girl) in jeder ausgewählten Quelle zu. Verschachteln Sie 'ForEach'-Elemente jeder ausgewählten Quelle.
Bedingungen 'ForEach' und 'Qualify' sind bereits vorhanden
Quelle: |
Schule
Junge[]
MarkB
AgeB
Mädchen[]
MarkG
AgeG
|
Ziel: |
Fortbildung Student[]
Leistung
Alter
|
Vor der Zuordnung: |
<Education>
<ForEach Boy>
<ForEach Girl>
<Qualify>
<Condition occur(Boy)=occur(Girl)>
<Student>
<Performance>
<MapFrom MarkB, MarkG>
<Age>
<MapFrom>
|
Nach der Zuordnung: |
<Education>
<ForEach Boy>
<ForEach Girl>
<Qualify>
<Condition occur(Boy)=occur(Girl)>
<Student>
<Performance>
<MapFrom MarkB, MarkG>
<Age>
<MapFrom AgeB, AgeG>
|
'ForEach', 'Qualify' und 'Condition' müssen nicht eingefügt werden, da sie bereits vorhanden sind. Sie müssen die Verschachtelung von <ForEach X> mit <ForEach Y> nicht einfügen, wenn die Verschachtelung <ForEach Y> mit <ForEach X> bereits vorhanden ist. Sie müssen 'Condition X=Y' nicht einfügen, wenn 'Condition Y=X' bereits vorhanden ist.
n:1-Zuordnungen über mehrere Ebenen wiederholen symmetrische Strukturen
Quelle: |
Schule
Junge[]
GradeB[]
MarkB
Mädchen[]
GradeG[]
MarkG
|
Ziel: |
Fortbildung Student[]
Jahr[]
Leistung
|
Vor der Zuordnung: |
<Education>
|
Nach der Zuordnung: |
<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>
|
Ordnen Sie jeder Wiederholungsebene im Ziel eine Ebene der Quellenwiederholung in jeder ausgewählten Quelle zu. 'GradeB' und 'GradeG' stimmen mit 'Year' überein; 'Boy and Girl' stimmen mit 'Student' überein.
n:1-Zuordnung - allgemeine Wiederholungsquelle
Quelle: |
Unternehmen
Abteilung[]
Manager
Größe
|
Ziel: |
Unternehmen
Gruppe[]
|
Vor der Zuordnung: |
<Corporation>
|
Nach der Zuordnung: |
<Corporation>
<ForEach Department>
<Group>
<MapFrom Manager, Size>
|
Gehen Sie von jeder Quelle (Manager and Size) aus weiter, und schließen Sie mit der allgemeinen Wiederholungsquelle (Department) ab.
Über mehrere Ebenen wiederholte symmetrische Strukturen
Quelle: |
Schule
Dienstgrad[]
Junge[]
MarkB
Mädchen[]
MarkG
|
Ziel: |
Fortbildung Jahr[]
Student[]
Leistung
|
Vor der Zuordnung: |
<Education>
|
Nach der Zuordnung: |
<Education>
<ForEach Grade>
<Year>
<ForEach Boy>
<ForEach Girl>
<Qualify>
<Condition occur(Boy)=occur(Girl)>
<Student>
<Performance>
<MapFrom MarkB, MarkG>
|
'Boy' und 'Girl' stimmen mit 'Student' überein; 'Grade' stimmt mit 'Year' überein.
Asymmetrische Wiederholung auf mehreren Ebenen (a)
Quelle: |
Unternehmen
Unternehmensbereich[]
Team[]
Mitarbeiter
Universität
Abteilung[]
Professor
|
Ziel: |
Organisation
Person[]
|
Vor der Zuordnung: |
<organization>
|
Nach der Zuordnung: |
<Organization>
<ForEach Division>
<Qualify>
<Condition occur(Division)=1>
<ForEach Team>
<ForEach Department>
<Qualify>
<Condition occur(Team)=occur(Department)>
<Person>
<MapFrom Employee, Professor>
|
Verwenden Sie für eine zusätzliche Quellenwiederholung eine 'ForEach-Qualify'-Bedingung.
Asymmetrische Wiederholung auf mehreren Ebenen (b)
Quelle: |
Unternehmen
Unternehmensbereich[]
Team[]
Mitarbeiter
Universität
Abteilung[]
Professor
|
Ziel: |
Organisation
Standort[]
Person[]
|
Vor der Zuordnung: |
<Organization>
|
Nach der Zuordnung: |
<Organization>
<ForEach Division>
<Location>
<ForEach Team>
<ForEach Department>
<Qualify>
<Condition occur(Team)=occur(Department)>
<Person>
<MapFrom Employee, Professor>
|
Verwenden Sie bei fehlender Quellenwiederholung kein 'ForEach'.
Asymmetrische Wiederholung auf mehreren Ebenen (c)
Quelle: |
Unternehmen
Unternehmensbereich[]
Mitarbeiter
Universität
Abteilung[]
Professor
|
Ziel: |
Organisation
Standort[]
Person[]
|
Vor der Zuordnung: |
<Organization>
|
Nach der Zuordnung: |
<Organization>
<Location>
<ForEach Division>
<ForEach Department>
<Qualify>
<Condition occur(Division)=occur(Department)>
<Person>
<MapFrom Employee, Professor>
|
Verwenden Sie bei fehlender Quellenwiederholung kein 'ForEach'.
Problematische Mehrfachquellen innerhalb verschiedener Ebenen in verschachtelten Wiederholungen
Quelle: |
S S1[]
S2
S3[]
S4
|
Target: |
T T1[]
T2[]
|
Vor der Zuordnung: |
<T>
|
Nach der Zuordnung: |
<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>
|
Zwei 'ForEach'-Ausdrücke mit demselben Ausdruck sollten nicht verschachtelt werden; 'occur(S1)' ist nicht eindeutig.
Problematische Mehrfachquellen innerhalb verschiedener Ebenen in verschachtelten Wiederholungen (a)
Quelle: |
S S1[]
S2[]
S3[]
S4 S5[]
|
Ziel: |
T T1[]
|
Vor der Zuordnung: |
<T>
|
Nach der Zuordnung: |
<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>
|
Zwei 'ForEach'-Ausdrücke mit demselben Ausdruck sollten nicht verschachtelt werden; 'occur(S1)' ist nicht eindeutig.
Problematische Mehrfachquellen innerhalb verschiedener Ebenen in verschachtelten Wiederholungen (b)
Quelle: |
S S1[]
S2
S3[]
S4
|
Ziel: |
T T1[]
|
Vor der Zuordnung: |
<T>
|
Nach der Zuordnung: |
<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>
|