2008-09-15 8 views
3

Wir suchen nach einer Transformationsbibliothek oder Engine, die jede Eingabe (EDIfact-Dateien, CSV, XML usw.) lesen kann. Also Dateien (oder Webservices), die Daten enthalten, die in eine bekannte Geschäftsobjektstruktur umgewandelt werden müssen.) Diese Daten sollten mithilfe von benutzerdefinierten Regeln in ein vorhandenes Geschäftsobjekt umgewandelt werden. XSLT ist sowohl komplex (zu lernen) als auch zu einfach (nicht genug Features)Gibt es eine Transformations-Engine oder -Bibliothek, die .NET verwendet?

Kann jemand eine C# -Bibliothek oder Engine empfehlen? Ich habe Altova MapForce gesehen, möchte aber etwas, das ich an Dutzende von Leuten senden kann, die ihre eigenen Transformationen erstellen/entwerfen werden, ohne dutzende Altova-Lizenzen bezahlen zu müssen.

Antwort

3

Wenn Sie denken, dass XSLT zu schwierig für Sie ist, ich glaube, Sie LINQ to XML für das Parsen von XML-Dateien ausprobieren können. Es ist in das .NET-Framework integriert, und Sie können C# (oder, wenn Sie VB.NET 9.0 verwenden, wegen der XML-Literale besser) verwenden, anstatt eine andere Sprache zu lernen. Sie können es ohne viel Aufwand und ohne den Paradigmenunterschied zwischen der Sprache und der Dateiverwaltung, die mit XSLT auftritt, in die vorhandene Anwendung integrieren.

Microsoft LINQ to XML

Sicher, es ist kein Rahmen oder Bibliotheksdateien für die Analyse, aber weder XSLT ist, so ...

1

Ich würde nicht so schnell XSLT als zu komplex oder nicht enthalten die Funktionen, die Sie benötigen, zu entlassen.

Es gibt viele Bücher/Websites, die alles beschreiben, was Sie über XSLT wissen müssen. Ja, es gibt ein bisschen eine Lernkurve, aber es braucht nicht viel, um es zu tun, und es gibt immer eine tolle Community wie stackoverflow, wenn Sie Hilfe brauchen ;-)

Wie für fehlende Features Sie kann xslt immer erweitern und .NET-Assemblies von der XSLT aufrufen, indem Sie die XsltArgumentList.AddExtensionObject() -Methode verwenden, die Ihnen die benötigte Leistung liefert.

MSDN hat ein großes Beispiel für die Verwendung dieser here

Es ist wahr, dass die MapForce und Biztalk-Anwendungen sehr einfach zu schaffen Xslt machen, aber sie auch ein wenig kosten. Abhängig von Ihrer Benutzerbasis (unter der Annahme, dass es keine Entwickler gibt) werden Sie feststellen, dass diese Anwendungen eigene Lernkurven aufweisen und oft zu funktionsreich für das sind, was Sie benötigen.

Ich würde Ihnen empfehlen, ein eigenes benutzerdefiniertes Mapping-Tool zu erstellen und zu verteilen, das speziell auf die Bedürfnisse Ihrer Benutzer zugeschnitten ist.

Auch wenn Sie eine Bibliothek müssen mit Dateikonvertierungen unterstützen I FileHelpers bei Source empfehlen würde

2

XSLT ist nicht zur Arbeit gehen für EDI und CSV. Wenn Sie eine vollständig generische Transformations-Engine benötigen, müssen Sie möglicherweise etwas Geld ausgeben. Ich habe Symphonia für den Umgang mit EDI verwendet, und es hat funktioniert, aber es ist nicht kostenlos.

Die Sache ist das Problem, das Sie beschreiben Sounds "Enterprisey" (ich bin sicher, niemand nutzt EDI zum Spaß), so gibt es keine Open Source/kostenlose Tools für den Umgang mit diesem Zeug.

+0

Heh, lustig, wie diese Dinge funktionieren. Ich bin einer der Entwickler von Symphonia und verwandten Tools. Wenn jemand interessiert ist, zögern Sie nicht mich zu kontaktieren. –

1

DataDirect Technologies hat ein Produkt, das genau dies tut. Unter http://www.xmlconverters.com/ gibt es eine Bibliothek namens XmlConverter, die EDI in XML konvertiert und umgekehrt.Es gibt auch Konverter für CSV, JSON und andere Formate. Die Bibliotheken sind als 100% .net-verwalteter Code und als Parallelport in 100% Java verfügbar. Die .net-Seite unterstützt XmlReader und XmlWriter, während die Java-Seite SAX, StAX und DOM unterstützt. Beide unterstützen auch Stream und Reader/Writer I/O. DataDirect verfügt auch über eine XQuery-Engine, die für die Zusammenführung relationaler Daten mit EDI und XML optimiert ist, aber nur Java.