====== Mapping Objekte generieren ======
Der Mapping Designer bietet die generische Erzeugung von C#-Klassen aus XML-Datei oder XMLSchema-Datei an. Dies können dann z.Bsp. mit [[https://www.visualstudio.com|Microsoft Visual Studio]] in eine DLL-Assembly kompiliert werden, welche dann als neue Objektklasse in eBiss verwendet werden kann.
{{:images:sign_warning.png?nolink|}}**Hinweis:** Das eBiss Modul [[programmierung:typbibliotheken:typeditor|]] bietet hierfür die geeigneten Werkzeuge an.
===== Assembly aus XML generieren =====
Legen Sie eine neues, temporäres Mapping an gem. [[transformation:mappings:anlegen:start|]]. Im Mapping Editor klicken Sie die Schaltfläche {{:images:box_into.png|}} **Quellobjekt**((Im linken Bereich des Tab **Definition**.)) und dann im Untermenü {{images:gearwheel.png?nolink}} **Assembly aus XML generieren** um dann via Dateiauswahldialog die Beispiel XML-Datei zu öffnen.\\
Nachdem die Datei ausgewählt und zum laden bestätigt wurde erscheint der Dialog zum Umgang mit doppelten Typdeklarationen:
{{images:assembly_aus_xml_generieren_doppelte_typdeklarationen.png?nolink}}
Hier kann man entscheiden ob doppelt vorhandene Typdeklarationen zusammengefasst werden sollen oder nicht.\\
Standardmäßig sollte hierbei "Ja" also die Zusammenfassung der Typdeklarationen ausgewählt werden.\\ \\
Wenn die XML-Datei valides XML enthielt sollte die Generierung erfolgreich mit dieser Infobox bestätigt werden:
{{images:assembly_aus_xml_generieren_erfolgreich.png?nolink}}
Im Mapping Editor erscheint nun im linken Bereich die **Objektdefinition**, welche im Prinzip auch gleich bereitsteht um mit Testdaten instanziert zu werden.\\
{{:images:sign_warning.png?nolink|}}**Hinweis:** Das DLL-Assembly wurde im Verzeichnis ..\eBiss 3\temp als NewSourceObject_1((Bzw.: mit einer fortlaufenden Nummer.)).dll angelegt und kann theoretisch als Plugin verwendet werden. Dies wird aber nicht empfohlen, da der generische [[wpde>Namespace]] nicht zweckmässig ist und i.d.R. weitere Anpassungen am Quellcode vorgenommen werden müssen um das Objekt an die spezifischen Bedürfnisse in eBiss anzupassen.
===== Quellcode generieren =====
Nun kann auch der Quellcode als CS((C# -Quelldatei))-Datei gespeichert werden.\\
Im Mapping Editor klicken Sie die Schaltfläche {{:images:box_into.png|}} **Quellobjekt**((Im linken Bereich des Tab **Definition**.)) und dann im Untermenü {{images:gearwheel.png?nolink}} **Quellcode generieren** und anschließend via Dateiauswahldialog die CS-Datei benennen und speichern.
===== Assembly aus XSD generieren =====
Die Generierung von Mapping Objekten aus [[wpde>XSD]]-Schemata ist die bevorzugte Variante, da eine XSD-Datei die vollständige Datenelement-Spezifikationen als Schema-Beschreibung enthält.\\
Das Verfahren bleibt aber analog der Generierung via XML-Datei.
===== Beispiel: =====
Als Beispiel wird die [[https://msdn.microsoft.com/de-de/library/ms762271(v=vs.85).aspx|books.xml]] verwendet. Diese XML Datei hat folgenden Inhalt:
Gambardella, Matthew
XML Developer's Guide
Computer
44.95
2000-10-01
An in-depth look at creating applications
with XML.
Ralls, Kim
Midnight Rain
Fantasy
5.95
2000-12-16
A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.
Corets, Eva
Maeve Ascendant
Fantasy
5.95
2000-11-17
After the collapse of a nanotechnology
society in England, the young survivors lay the
foundation for a new society.
Corets, Eva
Oberon's Legacy
Fantasy
5.95
2001-03-10
In post-apocalypse England, the mysterious
agent known only as Oberon helps to create a new life
for the inhabitants of London. Sequel to Maeve
Ascendant.
Corets, Eva
The Sundered Grail
Fantasy
5.95
2001-09-10
The two daughters of Maeve, half-sisters,
battle one another for control of England. Sequel to
Oberon's Legacy.
Randall, Cynthia
Lover Birds
Romance
4.95
2000-09-02
When Carla meets Paul at an ornithology
conference, tempers fly as feathers get ruffled.
Thurman, Paula
Splish Splash
Romance
4.95
2000-11-02
A deep sea diver finds true love twenty
thousand leagues beneath the sea.
Knorr, Stefan
Creepy Crawlies
Horror
4.95
2000-12-06
An anthology of horror stories about roaches,
centipedes, scorpions and other insects.
Kress, Peter
Paradox Lost
Science Fiction
6.95
2000-11-02
After an inadvertant trip through a Heisenberg
Uncertainty Device, James Salway discovers the problems
of being quantum.
O'Brien, Tim
Microsoft .NET: The Programming Bible
Computer
36.95
2000-12-09
Microsoft's .NET initiative is explored in
detail in this deep programmer's reference.
O'Brien, Tim
MSXML3: A Comprehensive Guide
Computer
36.95
2000-12-01
The Microsoft MSXML3 parser is covered in
detail, with attention to XML DOM interfaces, XSLT processing,
SAX and more.
Galos, Mike
Visual Studio 7: A Comprehensive Guide
Computer
49.95
2001-04-16
Microsoft Visual Studio 7 is explored in depth,
looking at how Visual Basic, Visual C++, C#, and ASP+ are
integrated into a comprehensive development
environment.
==== Assembly aus XML generieren ====
Nach dem generieren erscheint diese als Objekt im Tab **Objektdefinition**
{{images:books_objekt_definition.png?nolink}}
==== Quellcode generieren ====
Der automatisch generierte Quellcode sieht dann wie folgt aus und kann in [[https://www.visualstudio.com|Microsoft Visual Studio]] weiter bearbeitet werden, bzw. mit anderen Objektdefinitionen innerhalb eines Projekts und Namespace vereinigt werden.
using System;
using System.Text;
using System.ComponentModel;
using System.Collections;
using eBiss.Api;
namespace eBiss.20170117_110757.Messages.catalog
{
public class catalog: IMapObjectRoot
{
[MapListType(typeof(book)),Description("book")]
public ArrayList book;
}
public class book: IMapObjectItem
{
[Description("author")]
public String author;
[Description("title")]
public String title;
[Description("genre")]
public String genre;
[Description("price")]
public String price;
[Description("publish_date")]
public String publish_date;
[Description("description")]
public String description;
}
}