====== 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; } }