Content deleted Content added
m →XML data binding frameworks: gSOAP entry: yes => partial in the "custom mapping" column is more accurate |
m →XML data binding frameworks: HTTP to HTTPS for SourceForge |
||
(19 intermediate revisions by 12 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 11 ⟶ 13:
* '''XML schema based:''' Based on an existing XML schema, classes that correspond to the schema are generated.
* '''Class based:''' Based on a set of classes to be serialized, a corresponding XML schema is generated.
* '''Mapping-based:''' A mapping description, usually itself an XML document, describes how
==Difficulties==
Since XML is
Similarly, since objects residing in computer memory are not inherently
==Alternatives==
An alternative approach to automatic data binding relies instead on hand-crafted [[XPath]] expressions that extract
==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]]}}
|
|
| {{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 78 ⟶ 80:
| [[C (programming language)|C]] and [[C++]]
| {{GPL-lic}} and proprietary
| {{Start date and age|2000|12|08}}
| ▼
| 2.8.
| {{yes}}
| Supports XML schema, WSDL, and SOAP; XML schemas are not required to serialize C/C++ data to XML; custom mapping of XML schema types to
▲| {{partial}}
▲| Supports XML schema, WSDL, and SOAP; XML schemas are not required to serialize C/C++ data to XML; custom mapping of XML schema types to select C/C++ types possible via mapping file and by explicit naming of element and attribute tags using backticks
|-
| [[Java Architecture for XML Binding]] (JAXB)
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 116 ⟶ 136:
|
|
| {{
| {{
| Part of the .NET framework, contains XML data binding classes; includes <code>xsd.exe</code> tool to generate classes from XSD schema
|-
| [[xmlbeansxx]]
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}}
Line 151 ⟶ 171:
*[[Bound control]]
*[[Data structure]]
*[[JSON]]
*[[LDX+]]
Line 166 ⟶ 184:
*[http://www.w3.org/2002/ws/databinding XML Schema Patterns for Databinding Working Group]
[[Category:Programming constructs]]
[[Category:XML]]
|