Altova MapForce 2024 Basic Edition

In diesem Kapitel wird beschrieben, wie Sie abgeleitete Typen in Mappings verwenden. Abgeleitete Typen sind in der W3C XML Schema-Spezifikation (Abschnitt 2.5.2) definiert. Eine kurze Übersicht über primitive und abgeleitete Typen finden Sie in der Microsoft-Dokumentation. Um abgeleitete Typen in einem Mapping verwenden zu können, müssen Sie das xsi:type-Attribut in Ihrer XML-Datei definieren (z.B., <Address xsi:type="UK-Address">).

 

Mögliches Szenario

In diesem Unterabschnitt wird ein mögliches Szenario für die Verwendung eines abgeleiteten Typs beschrieben. Angenommen, wir haben eine Firma mit zwei Niederlassungen, einer in GB und der anderen in den USA. Wir hätten nun gerne zwei Listen (UKCustomers und USCustomers). Jede davon soll Informationen über die Adresse der jeweiligen Niederlassung und alle Kunden im Zusammenhang mit dieser Niederlassung enthalten.

 

Definition von abgeleiteten Typen

In der Abbildung unten sehen Sie die Definition von abgeleiteten Typen namens US-Address und UK-Address (XMLSpy Schema-Ansicht). Die Elemente UK-Address und UK-Address haben denselben Basistyp namens AddressType, der die Elemente Name, Street und City enthält. Im Element US-Address wurde der Basistyp erweitert und enthält Zip und State, während das Element UK-Address den Basistyp und das Element Postcode enthält. Wir werden nun zur Veranschaulichung nur das Element UK-Address auf die Zieldatei mappen.

xsi1 UKAddress

Abgeleiteter Typ in einem Mapping

In der Anleitung unten wird beschrieben, wie Sie Daten vom abgeleiteten Typ aus mappen. Ziel ist es, Informationen über das UK-Büro auf das Element UKCustomers zu mappen. Die Beispieldateien stehen im Ordner Tutorial zur Verfügung.

 

1.Klicken Sie im Menü Einfügen auf XML-Schema/Datei, und öffnen Sie die Datei DerivedTypeSource.xml. Diese XML-Datei basiert auf DerivedTypeSource.xsd.

2.Fügen Sie die Zieldatei DerivedTypeTarget.xsd ein. Beachten Sie, dass das Zielschema das Attribut xsi:type nicht enthalten muss.

3.Klicken Sie in der Quellkomponente neben dem Element Address auf die Schaltfläche btn_derived_type. Diese Schaltfläche gibt an, dass es für dieses Element abgeleitete Typen im Schema gibt.

4.Über das Dialogfeld Abgeleitete Typen (siehe Abbildung unten) können Sie einen beliebigen abgeleiteten Typ für dieses bestimmte Element auswählen. In unserem Beispielmapping soll nur UK-Address gemappt werden.

derived_type02

5.Sobald Sie das Kontrollkästchen neben dem abgeleiteten UK-Address-Typ auswählen, steht in der Komponente ein neues Element namens Address xsi:type="UK-Address" zur Verfügung.

6.Verbinden Sie nun die Nodes, wie im Mapping unten gezeigt.

DerivedTypeMapping

Ausgabe

Wenn Sie auf das Ausgabe-Fenster klicken, sehen Sie das folgende Resultat:

 

<UKCustomers>

  <BranchOffice>Sleuth Corp. UK</BranchOffice>

  <Street>222 Baker St</Street>

  <City>London</City>

  <Postcode>NW1 6XE</Postcode>

</UKCustomers>

 

Das Beispielmapping ist unter dem Namen Tutorial\DerivedType.mfd gespeichert. Sie können auch eine weitere XML-Quellkomponente hinzufügen, die Informationen über die Kunden in UK enthält, und diese Daten auf den Node Customers in der Zielkomponente mappen. Dadurch enthält das Element UKCustomers in der Folge Informationen über die UK-Adresse und alle mit dieser Niederlassung verknüpften Kunden.

 

© 2018-2024 Altova GmbH