<p>We're looking for a Transformation library or engine which can read any input (EDIfact files, CSV, XML, stuff like that. So files (or webservices results) that contain data which must be transformed to a known business object structure.)  This data should  be transformed this to a existing business object using custom rules. XSLT is both to complex (to learn) and to simple (not enough features) </p>

<p>Can anybody recommend a C# library or engine? I have seen Altova MapForce but would like something I can send out to dozens of people who will build / design their own transformations without having to pay dozens of Altova licenses.</p>

[{'answer_id': 62118, 'author': 'John Hunter', 'author_id': 2253, 'author_profile': 'https://Stackoverflow.com/users/2253', 'pm_score': 0, 'selected': False, 'text': '<p><a href="http://www.microsoft.com/biztalk/en/us/default.aspx" rel="nofollow noreferrer">Microsoft BizTalk Server</a> does a very good job of this.</p>\n'}, {'answer_id': 62250, 'author': 'brodie', 'author_id': 2231, 'author_profile': 'https://Stackoverflow.com/users/2231', 'pm_score': 1, 'selected': False, 'text': '<p>I wouldn\'t be so quick to dismiss XSLT as being too complex or not contain the features you require.</p>\n\n<p>There are plenty of books/websites out there that describe everything you need to know about XSLT.  Yes, there is a bit of a learning curve but it doesn\'t take much to get into it, and there\'s always a great community like stackoverflow to turn to if you need help ;-)</p>\n\n<p>As for lack of features you can always extend xslt and call .NET assemblies from the xslt using the \nXsltArgumentList.AddExtensionObject() method, which would give you the power you need.</p>\n\n<p>MSDN has a great example of using this <a href="http://msdn.microsoft.com/en-us/library/system.xml.xsl.xsltargumentlist.addextensionobject.aspx" rel="nofollow noreferrer">here</a></p>\n\n<p>It\'s true that the MapForce and Biztalk applications make creating xslt very easy but they also cost a bit.  Also, depending on your user base (assuming non developers), I think you\'ll find that these applications have there own learning curves and are often too feature rich for what you need.</p>\n\n<p>I\'d recommend you to consider building and distributing your own custom mapping tool specific to your users needs.</p>\n\n<p>Also if you need a library to assist with file conversions I\'d recommend <a href="http://filehelpers.sourceforge.net/" rel="nofollow noreferrer">FileHelpers</a> at SourceForge</p>\n'}, {'answer_id': 62546, 'author': 'Luca Molteni', 'author_id': 4206, 'author_profile': 'https://Stackoverflow.com/users/4206', 'pm_score': 3, 'selected': True, 'text': '<p>If you think that XSLT is too difficult for you, I think you can try LINQ to XML for parsing XML files. It is integrated in the .NET framework, and you can use C# (or, if you use VB.NET 9.0, better because of the XML literals) instead of learning another language. You can integrate it with the existing application without much effort and withouth the paradigm mismatch between the language and the file management that occurs with XSLT.</p>\n\n<p><a href="http://www.google.it/url?sa=t&amp;source=web&amp;ct=res&amp;cd=3&amp;url=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fbb387098.aspx&amp;ei=6VrOSLmTN4qO8wThtpDsBQ&amp;usg=AFQjCNEk8C3xS7mIRT5zr-2zfmDe9tYDqQ&amp;sig2=uY2Nb-rBbWq9lstqUXyARQ" rel="nofollow noreferrer">Microsoft LINQ to XML</a></p>\n\n<p>Sure, it\'s not a framework or library for parsing files, but neither XSLT is, so...</p>\n'}, {'answer_id': 63825, 'author': 'user8032', 'author_id': 8032, 'author_profile': 'https://Stackoverflow.com/users/8032', 'pm_score': 2, 'selected': False, 'text': '<p>XSLT is not going to work for EDI and CSV. If you want a completely generic transformation engine, you might have to shell out some cash. I have used <a href="http://www.symphonia3.com/" rel="nofollow noreferrer">Symphonia</a> for dealing with EDI, and it worked, but it is not free. </p>\n\n<p>The thing is the problem you are describing sounds "enterprisey" (I am sure nobody uses EDI for fun), so there\'s no open source/free tooling for dealing with this stuff.</p>\n'}, {'answer_id': 397071, 'author': 'lavinio', 'author_id': 49713, 'author_profile': 'https://Stackoverflow.com/users/49713', 'pm_score': 1, 'selected': False, 'text': '<p>DataDirect Technologies has a product that does exactly this.\nAt <a href="http://www.xmlconverters.com/" rel="nofollow noreferrer">http://www.xmlconverters.com/</a> there is a library called XmlConverters which converts EDI to XML and vice-versa. There are also converters for CSV, JSON, and other formats.\nThe libraries are available as 100% .net managed code, and a parallel port in 100% Java.\nThe .net side supports XmlReader and XmlWriter, while the Java side supports SAX, StAX and DOM. Both also support stream and reader/writer I/O.\nDataDirect also has an XQuery engine optimized for merging relational data with EDI and XML, but it is Java only.</p>\n'}]
['https://Stackoverflow.com/questions/62077', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/6399/']