Der Mapping Designer bietet die generische Erzeugung von C#-Klassen aus XML-Datei oder XMLSchema-Datei an. Dies können dann z.Bsp. mit Microsoft Visual Studio in eine DLL-Assembly kompiliert werden, welche dann als neue Objektklasse in eBiss verwendet werden kann.
Hinweis: Das eBiss Modul Typ-Editor bietet hierfür die geeigneten Werkzeuge an.
Legen Sie eine neues, temporäres Mapping an gem. Mappings anlegen. Im Mapping Editor klicken Sie die Schaltfläche Quellobjekt1) und dann im Untermenü 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:
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:
Im Mapping Editor erscheint nun im linken Bereich die Objektdefinition, welche im Prinzip auch gleich bereitsteht um mit Testdaten instanziert zu werden.
Hinweis: Das DLL-Assembly wurde im Verzeichnis ..\eBiss 3\temp als NewSourceObject_12).dll angelegt und kann theoretisch als Plugin verwendet werden. Dies wird aber nicht empfohlen, da der generische 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.
Nun kann auch der Quellcode als CS3)-Datei gespeichert werden.
Im Mapping Editor klicken Sie die Schaltfläche Quellobjekt4) und dann im Untermenü Quellcode generieren und anschließend via Dateiauswahldialog die CS-Datei benennen und speichern.
Die Generierung von Mapping Objekten aus 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.
Als Beispiel wird die books.xml verwendet. Diese XML Datei hat folgenden Inhalt:
<?xml version="1.0"?> <catalog> <book id="bk101"> <author>Gambardella, Matthew</author> <title>XML Developer's Guide</title> <genre>Computer</genre> <price>44.95</price> <publish_date>2000-10-01</publish_date> <description>An in-depth look at creating applications with XML.</description> </book> <book id="bk102"> <author>Ralls, Kim</author> <title>Midnight Rain</title> <genre>Fantasy</genre> <price>5.95</price> <publish_date>2000-12-16</publish_date> <description>A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen of the world.</description> </book> <book id="bk103"> <author>Corets, Eva</author> <title>Maeve Ascendant</title> <genre>Fantasy</genre> <price>5.95</price> <publish_date>2000-11-17</publish_date> <description>After the collapse of a nanotechnology society in England, the young survivors lay the foundation for a new society.</description> </book> <book id="bk104"> <author>Corets, Eva</author> <title>Oberon's Legacy</title> <genre>Fantasy</genre> <price>5.95</price> <publish_date>2001-03-10</publish_date> <description>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.</description> </book> <book id="bk105"> <author>Corets, Eva</author> <title>The Sundered Grail</title> <genre>Fantasy</genre> <price>5.95</price> <publish_date>2001-09-10</publish_date> <description>The two daughters of Maeve, half-sisters, battle one another for control of England. Sequel to Oberon's Legacy.</description> </book> <book id="bk106"> <author>Randall, Cynthia</author> <title>Lover Birds</title> <genre>Romance</genre> <price>4.95</price> <publish_date>2000-09-02</publish_date> <description>When Carla meets Paul at an ornithology conference, tempers fly as feathers get ruffled.</description> </book> <book id="bk107"> <author>Thurman, Paula</author> <title>Splish Splash</title> <genre>Romance</genre> <price>4.95</price> <publish_date>2000-11-02</publish_date> <description>A deep sea diver finds true love twenty thousand leagues beneath the sea.</description> </book> <book id="bk108"> <author>Knorr, Stefan</author> <title>Creepy Crawlies</title> <genre>Horror</genre> <price>4.95</price> <publish_date>2000-12-06</publish_date> <description>An anthology of horror stories about roaches, centipedes, scorpions and other insects.</description> </book> <book id="bk109"> <author>Kress, Peter</author> <title>Paradox Lost</title> <genre>Science Fiction</genre> <price>6.95</price> <publish_date>2000-11-02</publish_date> <description>After an inadvertant trip through a Heisenberg Uncertainty Device, James Salway discovers the problems of being quantum.</description> </book> <book id="bk110"> <author>O'Brien, Tim</author> <title>Microsoft .NET: The Programming Bible</title> <genre>Computer</genre> <price>36.95</price> <publish_date>2000-12-09</publish_date> <description>Microsoft's .NET initiative is explored in detail in this deep programmer's reference.</description> </book> <book id="bk111"> <author>O'Brien, Tim</author> <title>MSXML3: A Comprehensive Guide</title> <genre>Computer</genre> <price>36.95</price> <publish_date>2000-12-01</publish_date> <description>The Microsoft MSXML3 parser is covered in detail, with attention to XML DOM interfaces, XSLT processing, SAX and more.</description> </book> <book id="bk112"> <author>Galos, Mike</author> <title>Visual Studio 7: A Comprehensive Guide</title> <genre>Computer</genre> <price>49.95</price> <publish_date>2001-04-16</publish_date> <description>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.</description> </book> </catalog>
Nach dem generieren erscheint diese als Objekt im Tab Objektdefinition
Der automatisch generierte Quellcode sieht dann wie folgt aus und kann in 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; } }