XML data binding
From Wikipedia, the free encyclopedia
XML data binding refers to the process of representing the information in an XML document as an object in computer memory. This allows applications to access the data in the XML from the object rather than using the DOM to retrieve the data from a direct representation of the XML itself.
An XML data binder accomplishes this by creating a mapping between elements of the XML schema of the document we wish to bind and members of a class to be represented in memory.
When this process is applied to convert an XML document to an object, it is called unmarshalling. The reverse process, to serialize an object as XML, is called marshalling.
Since XML is inherently sequential and objects are (usually) not, XML data binding mappings often fail to preserve all the information in an XML document. Specifically, information like comments, XML entity references, and sibling order will fail to be preserved in the object representation created by the binding application. This is not always the case; sufficiently complex data binders are capable of preserving 100% of the information in an XML document.
Contents |
[edit] O/RM frameworks and tools
[edit] Commercial
- Liquid XML 2006, advanced Wizard driven data binding tool for generating C++, C# .Net, Java and Visual Basic 6 components from XSD, XDR and DTD Schema files.
[edit] Java
- Java Architecture for XML Binding (JAXB), and JaxMe variation
- Eclipse Modeling Framework (EMF) [1], open source (EPL), dynamic and static binding
- XMLBeans data binding over Document Object Model view of data
- Hydrate, open source (GNU LGPL), relational/object/XML mapping tool
- Castor [2], open source (original BSD), object/XML/relational mapping tool
- JiBX [3], open source (modified BSD), a high performance Java/XML binding framework
- CookXml, open source (MIT License), dynamically configurable XML binding tool.
[edit] JavaScript
- OpenLaszlo [4], open source, JavaScript based, rich Internet application programming language
[edit] .Net
- Integrated into the language via the .Net attributes:
System.Xml.Serialization.XmlRootAttribute
andSystem.Xml.Serialization.XmlElementAttribute
[edit] Delphi
- Integrated into the language via the XML Data Binding Wizard, which can generate appropriate classes and interfaces from either an example XML file or XSD schema.
[edit] C++
- CodeSynthesis XSD - XML Data Binding Compiler for C++, open source data binding tool that provides an event-driven, SAX-like C++ mapping in addition to the standard, tree-like in-memory representation. For closed source use, the company also offers a commercial license.
- LMX - XML to C++ Data Binding Code Generator Convert XML Schema to C++ code for easy interfacing to XML data.
- xmlbeansxx - a C++ library for easing the processing of XML data. It is very similar to and in fact was inspired by Apache XMLBeans (by The Apache Xml Project).
- XSD/e embedded XML parser generator, open source data binding tool for mobile and embedded systems that provides event-driven XML parsing, XML Schema validation, and C++ data binding.
[edit] External links
- XML Data Binding Resources, by Ronald Bourret
- XML Data-Binding: Comparing Castor to .NET, by Niel Bornstein
- Bindmark project compares the time and memory performance of XML-Java binding solutions.
- XML and Java technologies: Data binding, Part 2: Performance, by Dennis Sosnoski, 01 Jan 2003
- W3C XML Schema to Standard C++ Data Binding Specification
- XSDBench XML Schema Benchmark - compares the performance of validating XML parsers and binding tools