Duplizieren von Teilbäumen
Auch wenn Elemente laut XML Schema Definition mehrfach in der XML-Instanz auftreten können, werden sie in der Strukturübersicht nur ein mal angezeigt. Um Ausgangsfelder mehreren Positionen eines Elements in der Zielstruktur zuzuordnen, können Sie einzelne Elemente oder ganze Teilbäume mit Hilfe des Kontextmenüs in der Zielstruktur kopieren.
Die Daten eines CD-Katalogs sollen auf eine einfache HTML-Tabelle abgebildet werden. Es gibt sechs Unterelemente von <cd> in der Ausgangsstruktur, die in einer Tabellenzeile dargestellt werden sollen. In der Strukturübersicht wird das Zielfeld <td> aber nur ein mal dargestellt.
Ausgangsstruktur (links) und Zielstruktur (rechts)
Feldname |
minOccurs |
maxOccurs |
Feldname |
minOccurs |
maxOccurs |
Katalog |
1 |
1 |
CatalogTable |
1 |
1 |
cd |
0 |
unbounded |
table |
1 |
1 |
title |
1 |
1 |
tr |
0 |
unbounded |
artist |
1 |
1 |
td |
0 |
unbounded |
country |
1 |
1 |
|
|
|
company |
1 |
1 |
|
|
|
price |
1 |
1 |
|
|
|
year |
1 |
1 |
|
|
|
Bevor Sie die Zielfeld-Mappings auf die <td>-Elemente definieren können, müssen Sie zunächst das <td>-Element mit dem Kontextmenü fünf mal duplizieren. Jedes Zielfeld-Mapping besteht dann lediglich aus einer 1:1-Zuordnung der Ausgangs- und Zielfelder:
Message-Mapping mit duplizierten Elementen
Zielfeld-Mapping |
/CatalogTable=/Catalog |
No mapping for/CatalogTable/table |
/CatalogTable/table/tr=/Catalog/cd |
/CatalogTable/table/tr/td=/Catalog/cd/title |
/CatalogTable/table/tr/td[1]=/Catalog/cd/artist |
/CatalogTable/table/tr/td[2]=/Catalog/cd/country |
/CatalogTable/table/tr/td[3]=/Catalog/cd/company |
/CatalogTable/table/tr/td[4]=/Catalog/cd/price |
/CatalogTable/table/tr/td[5]=/Catalog/cd/year |
Ausgangs-Instanz |
Ergebnis |
<?xml version="1.0" encoding="UTF-8"?> <Catalog>
<cd> <title>
Empire Burlesque </title> </cd> <cd> <title>
Hide your heart</title> </cd>
</Catalog> |
<?xml version="1.0" <ns0:CatalogTable xmlns:ns0="workshopDemo"> <table> <tr> <td>
Empire Burlesque </td> </tr> <tr> <td>
Hide your heart </td> </tr> </table> </ns0:CatalogTable> |