
Der Mapping-Editor generiert aus der graphischen Beschreibung des Message-Mappings Java-Qellcode. Dieser Abschnitt gibt einen Überblick darüber, wie der generierte Java-Quellcode eine XML-Ausgangsstruktur zur Laufzeit verarbeit.
Grundlagen
Im Mapping-Editor ordnet man die Felder zweier vorhandener XML-Strukturen einander zu. Beachten Sie, dass es zur Laufzeit vor dem Mapping noch keine Zielstruktur gibt. Die Zielstruktur wird erst generiert, wenn das Mapping ausgeführt wird.
Das Message-Mapping muss also die Zielstruktur zur Laufzeit generieren. Wie die Zielstruktur am Ende aussieht, hängt von zwei Dingen ab:
Welche und wie viele Tags in der Instanz zur Ausgangsstruktur vorhanden sind und
Welche Häufigkeit für die Zielfelder in der Zielstruktur angegeben ist.
Häufigkeit
In beiden Fällen hängt dies wiederum von dem Wert Häufigkeit ab, den Sie in der Typ-Definition im XSD-Editor angegeben haben. Die Werte für die Häufigkeit Occurrence werden auf die XSD-Attribute minOccurs und maxOccurs abgebildet. Sie können diese Attribute in der tabellarischen Baumansicht ansehen. minOccurs gibt an, wie oft ein Tag mindestens auftreten muss und maxOccurs , wie oft ein Tag höchstens auftreten darf. Der Wurzelknoten hat sowohl bei der Ausgangs- als auch bei der Zielstruktur immer eine Häufigkeit von minOccurs=maxOccurs=1 .
Wenn das Auftreten eines Tags in der Ausgangs- oder Zielstruktur nicht explizit angegeben wird, setzt der Mapping-Editor diese sichtbar für den Benutzer. Diese voreingestellten Werte entsprechen dabei der XSD-Spezifikation ( minOccurs = „1“ , maxOccurs = „unbounded“ ).
Kontexte
XML-Strukturen sind hierarchisch geordnet. Daher befindet sich ein Feld in einer XML-Instanz immer in einem Kontext des übergeordneten Feldes. In der folgenden XML-Instanz sind die Felder <flat> beispielsweise im Kontext <street> und die Felder <city> im Kontext <root> .
<root> <city> <street> <flat /> </street> </city> </root>
Prozessierung von Message-Mappings
Das Message-Mapping prozessiert die Ausgangsstruktur und erzeugt die Zielstruktur gemäß den Restriktionen der Zielfelder und gemäß den mit den Zielfeldern verknüpften Zielfeld-Mappings. Die Prozessierung ist für einfach auftretende Felder intuitiv verständlich. Um die Prozessierung genau zu verstehen, sind zwei Ebenen zu unterscheiden: