LMX

W3C XML Schema to C++ Data Binding

XSD C++ XML data binding; Fast development; Easy to learn.

Home
E-mail:
Tel: +44 1473 636932
LMX XSD XML C++ Binding Overview  Overview  Download LMX XML C++ Data Binding  Download  LMX Documentation XSD XML C++ Data Binding  Documentation  Buy LMX XML C++ Data Binding  Buy  LMX XML XSD C++ Binding Support  Support 

C++ XML Processing Without Headaches*

Need your C++ code to read and write XML data?

Want to implement a solution quickly so you can move on to other urgent tasks?

Want to avoid spending time learning a complicated new library?

Want to avoid the overhead of adding a massive, complicated, hard to build code library to your project?

Take the simple, fast option...

Use Codalogic LMX to go from XML like:
    <TeamName>Skywalkers</TeamName>
to C++ like:
    std::cout << myObject.GetTeamName() << "\n";

Speed up development, reduce bugs, ship earlier...

Download a fully functional trial to find out more...

Codalogic LMX generates strongly typed application specific C++ classes from an XML XSD Schema or an example of your XML data that describes the structure of your XML data.

Codalogic LMX makes it easy to store application data, and user preferences in XML format. It also allows you to robustly exchange proprietary and standards-based XML data with remote servers and systems.

Business Benefits

  • Speed up development
    • Automate the generation of code that would otherwise be generated manually saving you time and money

  • Reduce bugs
    • Automation and compile-time error checking reduce the potential for introducing manual coding errors improving the quality of your product

  • Make a better product
    • Reassign developer resources to adding extra customer pleasing features rather than doing low-level, low-ROI coding

  • Reduce training requirements
    • Developers can access your XML data using regular C++ and don't need to understand specialist XML technologies

    WinLMX GUI Interface for C++ XML data binding

  • Ship earlier
    • Get revenue from your product sooner and get real end-customer input enabling earlier iterations

  • Royalty free
    • Ship your application to as many customers as you like without additional license fees

Developer Benefits

  • Easy to use
    • The output is regular C++ so there is no need to learn additional libraries and complex XML DOM / XPath syntax.
    • A minimal number of binary or C++ source files are required making LMX simple to build into your project. This saves you time managing builds and has less chance of build errors.
  • Easy coding
    • No programming of tedious state code as required with SAX (and StAX). This saves you doing boring repetitive C++ programming tasks, and leaves you free to do more interesting tasks.
    • Application specific documentation is included in the generated C++ .h file. This speeds up code development because you can copy key constants and method names into your code.
    • The View Prototypes mode in the Win32 WinLMX GUI version allows drag-and-drop of method names and key constants directly into your code, allowing you to write code at lightening speed!
    • Generates cross-linked HTML documention for the generated code making it easy to find the information you need to write code.
    • Your IDE can understand the generated C++ code allowing you to use IntelliSense and other similar code completion technology to speed up code development.
    • First class support. If you have questions, just . We want you to succeed.
  • Less time chasing bugs
    • The names of methods and variables are checked at C++ compile-time rather than run-time meaning simple typos in names are detected automatically and early reducing the chance of bugs lurking in your deployed code.
    • Resource management (such as memory) is handled by the generated code so there is less chance for accidental C++ memory leaks etc.
  • Customizable
    • You can add custom C++ code and behaviors to the generated C++ classes using Snippets and Snippet Event Handlers. This gives you in-depth flexibility to handle your XML and tailor the generated C++ classes to your needs (See manual for more).
    • The C++ types used to represent the simple XML data types can be configured using C++ language syntax. This allows you to use your own C++ data types for more seamless integration with the rest of your C++ code and there is no need to learn complex code generator configuration options. It also means there is less chance of introducing accidental differences between builds by using the wrong configuration (See manual for more).
    • It's easy to switch between wide C++ character strings and 'narrow' C++ character strings so you can choose your preferred way of handling XML characters at the C++ level (See manual for more).
    • Customize the generated method names to suit your coding convention, including converting names to and from CamelCase and/or underscore_separated (See manual for more).
    • When your software writes data to the generated C++ classes you can optionally enable or disable validation of the written data against the type expected by the XML schema. This allows you to trade off between testing in debug mode and performance in release mode by using a simple compiler switch (See manual for more).
  • Dependable
    • Hard exception-safe design.
    • Continuously developed and improved for more than 8 years.
    • Extensively tested. Release regression tests take 2 days to run. Wide customer base ensures diverse 'real-world' testing.
  • Portable
    • The C++ source code for the Supporting Software is available allowing your product to run on any C++ compliant platform. You can even build and test on one platform and run on another, which is helpful when developing embedded solutions.
    • Binaries are supplied for VC++ 6, VS 2003, VS 2005, VS 2008, VS 2010, GCC 3.2.3, GCC 3.4.6, GCC 4.1.0, GCC 4.3.3, GCC 4.4.1, plus 64-bit versions.
    • In addition to Windows and Linux, customers have also used LMX on HP-UX, Apple, ARM, X-Scale, IBM AIX and others.

Fast C++ code development is enhanced by dragging C++ code snippets from WinLMX's View Prototypes dialog into your code. Navigation through the example prototypes is a breeze using the dialog's treeview (which follows the XML schema structure) and clickable links to sub-types:

WinLMX View Prototypes Dialog improve C++ XML code development

WinLMX's View Prototypes dialog

Codalogic LMX can even generate a sample C++ file to show you how to use the generated classes to interface to XML.

Providing exceptional support is very important to us. If you have questions about Codalogic LMX XML C++ Databinder, please send a message to .

Testimonials

World leading companies that rely on LMX's XSD C++ XML data binding capabilities include:
Boeing, Lockheed Martin, General Dynamics, BAE Systems, Northrop Grumman, QinetiQ, Federal Aviation Administration (FAA), Rolls Royce, Hewlett Packard, Alcatel, Avaya, Samsung, Cisco, Freescale Semiconductor, Seagate, TANDBERG, Thomson, Barclays Capital, Nomura, Schlumberger, ABB Power Technologies, Union Pacific Railroad, CSX Railroad, ... and more
Of particular satisfaction to us is that we have a high percentage of repeat customers.

Here are some of the testimonials our customers have submitted about LMX XSD C++ XML data binding:

    "I really like LMX. I can finish my tasks faster and it makes things much easier, especially with such a complete documentation." - Haryono Dianto, Barco Inc.

    "Easily the best (most accurate) XML data binding of the tools I've used. And they have the best support I've received from ANY vendor for any tool. Would highly recommend to anybody that needs this ability."

    "LMX is a professionally developed product with many great features. The support from Codalogic is the best I've seen and I've been using vendor products for 30 years. " - Nick Godbey, SITA

    "[LMX] is much more faster and easier in use than our previous solution" - Stanisław Wierchoła, Gadu-Gadu

    "LMX is a really good product; fits right in with what we need to do." - Jeff Hay, HYTEC Inc - (Using Multiple Architectures)

    "Thanks for your exceptional service, as always!" - Dave Webb, TENET Technology

    "LMX is working like a charm" - 3DCONNEXION - (Using Apple/Mac)

    "Our experience has been very positive (especially when compared to using the [ed. other product] code generation)." - ASPECTUSVI

    "Your documentation is much clearer than other products I looked at." - British Telecom

    "The supporting code compiled on Itanium without problems" - CeBeNetwork GmbH - (Running on HP-UX)

    "LMX comes with very complete documentation." - Ronald Bourret's XML Data Binding Resources

    "Its a pretty handy tool, and exceptionally small in size!!!" - SPAN Systems - (Using ARM/X-Scale Architecture)

    "Thanks for the rapid response, as usual." - University of Teesside School of Health & Social Care

Customer Reviews

Andreas Wehrmann, Center Communication Systems GmbH
Ease of code generation:
Ease of using generated code:
Quality of documentation:
Quality of support:
Overall rating:

What features do you like best about LMX:
Portability. This is very important to us since we use LMX generated code not only on the PC platform (Windows/Linux) but also on embedded (Linux) platforms; that is:

m68k Coldfire V4e (MMU) as well as uCLinux (m68k Coldfire nommu)

What features do you have problems with, need improving or adding:
None so far.

What are your overall thoughts on using LMX:
I like it because it simply works and is easy to work with. The documentation (with code examples) allows a fast start up and the time from getting to know LMX till producing productive code is very short. In short I can say: XML processing without headaches.

Simon Powell, Pixel Power Ltd
Ease of code generation:
Ease of using generated code:
Quality of documentation:
Quality of support:
Overall rating:

What features do you like best about LMX:
The simplicity of use of the generated code - the generated classes are very easy to manipulate, with very straighforward methods of accessing the insides of hierarchical data structures, making code that uses them quite compact, quick to write, and easy to follow and maintain. E.g. having a choice between accessing internal containers and using simpler direct access functions makes code much easier to read.

Thoroughness of the implementation - it appears to be mature product, and a lot of different usage cases seem to have been provided for, and there is really good provision for customisation of the generated code and the conversions to/from XML. Having used it for some time now, I feel safe that we are unlikely to get caught out by some slightly awkward or obscure future requirement.

Portability - by having the source for the entire conversion library, and not having any internal reliance on windows libaries, we know that we can move to another platform of our choice if neccesary without changing the tool and therefore changing all the code that makes use of the generated classes.

Efficiency - experience so far has shown the generated code appears to be efficient when used in a near real-time environment, because it converts directly between XML and the C++ data structures rather than relying on an intermediate data structure. By not relying on an external third party XML parser, and having access has also made it easier to integrate with our software.

Support - We have had very good customer support, with very quick responses on low-level technical questions right from the start.

Licensing - the licensing model is realistic for a company of our size with no prohibitive clauses on linking to generated code, etc.

What features do you have problems with, need improving or adding:
We've had a problem/query with the handling of XML that uses substitution by type.

We've had some minor problems with a class hierarchy that mixes derivation by restriction with derivation by extension.

The handling of enums isn't really suited to what we do, and I think is a bit of a weakness (it is still better than some of the other tools, though!). I have worked around this successfully.

I'm going to send full details of these issues in a separate email.

What are your overall thoughts on using LMX:
We needed something we could rely on for a lot of future work, so there was quite a lot riding on our choice of tool. After a fairly in-depth comparison between LMX, Codesynthesis XSD, LiquidXML and XMLSpy over several weeks, I chose LMX, and having used it a great deal since, am convinced we made the right choice, and think it is a very comprehensive and well thought-out product.

David Zavetz, Harris Corp
Ease of code generation:
Ease of using generated code:
Quality of documentation:
Quality of support:
Overall rating:

What features do you like best about LMX:
I like that it does exactly what we purchased it to do - generate C++ from schema. It just works.

Eric W. Sirko
Ease of code generation:
Ease of using generated code:
Quality of documentation:
Overall rating:

What are your overall thoughts on using LMX:
A robust, industrial-strength tool.

Altran-Xype
Ease of code generation:
Ease of using generated code:
Quality of support:
Overall rating:

* A comment from one of our satisfied customers.

Note that you can also access these pages using the convenience URL http://www.xml2cpp.com.

Copyright © 2003-2012, Codalogic Ltd. All Rights Reserved.