Content deleted Content added
m →XML data binding frameworks: version bump |
m →XML data binding frameworks: HTTP to HTTPS for SourceForge |
||
(9 intermediate revisions by 7 users not shown) | |||
Line 1:
{{
'''XML data binding''' refers to a means of representing information in an [[XML]] document as a [[business object]] in computer memory. This allows [[Application software|applications]] to access the data in the XML from the object, rather than using the [[Document Object Model|DOM]] or [[Simple API for XML|SAX]] to retrieve the data from a direct representation of the XML itself.
It makes it possible to read and write [[XML]] data using a programming language class library (e.g. [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]]), specifically created for a given XML data format.<ref>[https://www.liquid-technologies.com/xml-data-binder/what-is-xml-data-binding-part-1 "What is XML Data Binding - Tutorial"] Liquid Technologies. Retrieved 2024-07-24.</ref> Whilst it is possible to manually write a computer program to achieve this, '''XML data binding''' tools generate the source code to perform these tasks.
==Description==
An XML data binder accomplishes this by automatically creating a mapping between elements of the [[XML schema]] of the document we wish to bind and [[Instance variable|members]] of a [[Class (computer science)|class]] to be represented in memory.
When this process is applied to convert an XML document to an object, it is called [[Serialization|unmarshalling]] (also called deserialization). The reverse process, to serialize an object as XML, is called [[marshalling (computer science)|marshalling]].
Approaches to data binding can be distinguished as follows:
Line 17 ⟶ 19:
Since XML is a document-oriented format and objects are (usually) not document-oriented, simple XML data binding mappings may ignore some of the structural information embedded in an XML document. Specifically, information such as [[comment (computer programming)|comment]]s, XML entity references, and sibling order may not be preserved in the object representation created by the binding application. However, this is not always the case; sufficiently powerful XML data binding tools are capable of preserving 100% of the information stored in an XML document.
Similarly, since objects residing in computer memory are not inherently sequentially stored, and may include links to other objects (including self-referential links), simple XML data binding mappings may not be capable of preserving all the information about an object when it is marshalled to XML. However, sufficiently powerful data binding tools perform graph structure analysis on objects residing in memory to marshall (cyclic) object graph structures in XML by utilizing
==Alternatives==
An alternative approach to automatic data binding relies instead on hand-crafted [[XPath]] expressions that extract data from XML. This approach has some benefits
==Data binding in general==
One of XML data binding's strengths is the ability to [[serialization|
==XML data binding frameworks==
Line 42 ⟶ 44:
| Java
| {{free|[[Apache License|Apache]]}}
| {{
| 0.8
| {{unk}}
Line 52 ⟶ 54:
| {{free|[[Apache License 2.0]]}}
|
| 5.1.1, {{
| {{yes}}
| {{unk}}
Line 61 ⟶ 63:
| {{free|[[Apache License|Apache 2.0]]}}
|
| 1.4.1, {{
| {{unk}}
| {{unk}}
Line 70 ⟶ 72:
| {{GPL-lic}} and proprietary
|
| 4.0.0, {{
| {{unk}}
| {{unk}}
Line 79 ⟶ 81:
| {{GPL-lic}} and proprietary
| {{Start date and age|2000|12|08}}
| 2.8.131, {{
| {{yes}}
| {{yes}}
Line 97 ⟶ 99:
| {{free|[[BSD License]]}}
|
| 1.2.6, {{
| {{yes}}
| {{yes}}
| Maps classes to XML schemas via bytecode manipulation
|-
|[[Liquid XML Studio|Liquid XML Data Binder]]
| [http://simple.sourceforge.net/ Simple]▼
|C++, C#, Java, Visual Basic.Net, Visual Basic 6 (COM)
|Freeware and proprietry
|{{Start date and age|2001|6|1}}
|{{Start date and age|2024|06|18}}
|{{Yes}}
|{{Yes}}
|Supports XML schema (XSD), DTD, XDR, WSDL. Serializes XML to JSON and JSON to XML.
|-
|[[Liquid XML Studio|Liquid XML Objects]]
|C# and Visual Basic .Net (Supports XSD 1.1)
|Freeware and proprietry
|{{Start date and age|2019|03|03}}
|{{Start date and age|2024|06|18}}
|{{Yes}}
|{{Yes}}
|Direct replacement for XSD.exe. Integrated within [[Visual Studio|Microsoft Visual Studio]]. Supports XML schema (XSD 1.0 and XSD 1.1), DTD, WSDL. Serializes XML to JSON and JSON to XML.
|-
| Java
| {{free|[[Apache License|Apache 2.0]]}}
|
| 2.7.1, {{
| {{no}}
| {{yes}}
Line 124 ⟶ 144:
| {{free|[[Apache License|Apache 2.0]]}}
|
| 0.9.1, {{
| {{unk}}
| {{unk}}
Line 133 ⟶ 153:
| {{free|[[BSD license|BSD]]-style license}}
| {{Start date and age|2004|01|01}}
| 1.4.10, {{
| {{unk}}
| {{unk}}
| Also capable of serializing to JSON
|-
| [http://zeus.ow2.org/ Zeus] {{Webarchive|url=https://web.archive.org/web/20190128101400/http://zeus.ow2.org/ |date=2019-01-28 }}
| Java
| ?
|
| 3.5 beta, {{
| {{unk}}
| {{unk}}
|