Many candidate solutions are too expensive, or overloaded with features you won't need, or even lacking the bits of flexibility required to handle the syntax at stake. Else, they are claimed of being fully capable provided you will embrace the advanced scripting mode. The later may open abyssal learning requirements which could lead you in thinking that a custom java or C# development could actually take much less time. I also imagine with amusement that you could read the present lines on your tabletop computer while just accross the display screen an agent tries very naturally to convince you that you would 'only' need 2 adapter processes, 1 custom pipeline, 1 central process server, 1 management server, 1 central repository server, 2 development workstations, 1 operations console, an application bus and a database to handle your file... Assuming the whole is already installed, there could still be more configuration objects and parameters to set-up than data elements in your file!
Let me clarify the point:
I do not want to lower the merits of those sophisticated enterprise data integration platforms. I am myself a fan of a few of those, but there are also numerous contexts that drove integrators to grow custom java code for some of the reasons explained above. Ironically, the present product sprouted from the requirement for extending the format handling capabilities of an enterprise integration platform. The question of possibly replacing the platform never surfaced because the system already switched efficiently a quarter million messages a day. We simply had to handle messages usually below 1000 bytes whose specifications sometimes weight over 150 pages, vouching at the same time their long history of amendments and their persistent success. Indeed, I quote the airline sector.
Learn fast
This was a fundamental design objective. The trick is to reuse as much of the knowledge you may already have as an IT professional, and grow incrementally over it. Practically:
No new editor or development workstation to digest
You will use your favorite Eclipse™, IntelliJ™, JDeveloper™, netBeans™, StylusStudio™, XMLSpy™, or whichever collaborative development platform you already use.
Minimal system footprint
The software takes the form of a single jar file or command line program that you will integrate within your existing operational systems, and you already know how to do this.
Incremental learning over regular expressions
Instead of reinventing tools to handle syntaxical constructions, we added the elements that regular expressions miss to become able to digest entire messages mixing syntax and data, full of optional bits, possibly nested and repeated, with constraints and inter-dependencies that can affect validity as well as the correct interpretation of the message itself.
Your first contact with regular expressions has been disastrous? Indeed, they bear the peculiarity of defeating any attempt to guess their meanings, and that is the most frequent cause of dislike. A pity, because if you only knew the special meaning of just 11 characters . * + ? ( [ \\ { ^ $ and | , then you go without any problem. Learn all the essentials through our Accelerated Regex Tutorial, and after one hour you will start to grasp their magic... in one hour! my commitment.
Well: do not forget there's some knowledge that you do require anyway, whatever the solution you choose, and that may take time to acquire: that of the industry and message formats at stake, the meaning of each data piece, the purpose of each message, and the conventions ruling the exchanges.
Spend less
The ReverseXSL software is Open Source and you can use as many copies you like for development, backup, etc. Being very stable and properly documented, the software entails no hidden costs.
This is for the visible part of the iceberg. The time you could save on projects is enormous! This is indeed a personal message: I have over 20 years of expertise as integration developer and consultant. I developed an original EDI translator by the end of the eigthies, still in operation at a few companies. I have since used six other commercial data mapping products through various projects. I never developed new legacy message format conversions faster than I can do today with this product combined to my favorite XSLT editor.
Recently, an IT project manager was about to delegate message transformations to his offshore sub-contractor like the rest of the application. I quoted the fifth of the budget and still made a good deal at my 'north-European' rate.
Moreover, the deployment of a new message format is so straight, that you should also expect to spend minimal time and effort on the operational side.
Handle them all
Our major claim for efficiency does not come from a reduction of functionality. As cited above, it is the inability to efficiently handle a very screwy syntax with an affordable commercial product that gave birth to the software. In 20 years of making integration projects for numerous companies, I had the opportunity to study in depth EDIFACT, ODETTE, TRADACOMS, GENCOD, ICODIF, SWIFT, X12, IEF SAECS, VDA, UIC, IATA CARGO-IMP / AHM / SSIM, Spec-2000, PSCRM, SAP IDOC, numerous XML brands and countless proprietary formats. I can tell with assurance: no single message syntax I ever encountered in data exchanges can threaten the ReverseXSL transformer.
Let us be precise: we make reference here to the class of character-based data exchange formats. Character-based doesn't imply 'printable'; the format can well contain plenty of control character values. But if you have instead a true binary format to handle, one containing multi-byte BCD, IEEE or machine-specific number representations, else a message based on the ASN.1 syntax or similar (which makes use of bit-wise fields and explicit binary-coded length indicators for delimiting data fields), then you shall consider alternative solutions, most likely in the form of vendor-specific software libraries.
With the ReverseXSL transformer and a standard XSLT library (as embedded in Java or C#) altogether combined, you can handle all character-based data exchange formats and generate whatever output you need.