{title:'XML Methodology'}

The following examples show how different data types are represented in XML. They mirror how the data structures are represented in JSON.

##### Simple types

The representation of loose (not a direct bean property value) simple types are shown below:

Data type | JSON example | XML
--- | --- | ---
string | 'foo' | <string>foo</string>
boolean | true | <boolean>true</boolean>
integer | 123 | <number>123</number>
float | 1.23 | <number>1.23</number>
null | null | <null/>

##### Maps

Loose maps and beans use the element <object> for encapsulation.

_type attributes are added to bean properties or map entries if the type cannot be inferred through reflection (e.g. an Object or superclass/interface value type).

Data type | JSON example | XML
--- | --- | ---
| Map<String,String> | | { | k1: 'v1' | k2: null | } | | <object> | <k1>v1</k1> | <k2 _type='null'/> | </object>
| Map<String,Number> | | { | k1: 123, | k2: 1.23, | k3: null | } | | <object> | <k1>123</k1> | <k2>1.23</k2> | <k3 _type='null'/> | </object>
| Map<String,Object> | | { | k1: 'v1' | k2: 123, | k3: 1.23, | k4: true, | k5: null | } | | <object> | <k1>v1</k1> | <k2 _type='number'>123</k2> | <k3 _type='number'>1.23</k3> | <k4 _type='boolean'>true</k4> | <k5 _type='null'/> | </object>

##### Arrays

Loose collections and arrays use the element <array> for encapsulation.

Data type | JSON example | XML
--- | --- | ---
| String[] | | [ | 'foo' | null | ] | | <array> | <string>foo</string> | <null/> | </array>
| Number[] | | [ | 123, | 1.23, | null | ] | | <array> | <number>123</number> | <number>1.23</number> | <null/> | </array>
| Object[] | | [ | 'foo', | 123, | 1.23, | true, | null | ] | | <array> | <string>foo</string> | <number>123</number> | <number>1.23</number> | <boolean>true</boolean> | <null/> | </array>
| String[][] | | [ | ['foo', null], | null, | ] | | <array> | <array> | <string>foo</string> | <null/> | </array> | <null/> | </array>
| int[] | | [ | 123 | ] | | <array> | <number>123</number> | </array>
| boolean[] | | [ | true | ] | | <array> | <boolean>true</boolean> | </array>
| List<String> | | [ | 'foo' | null | ] | | <array> | <string>foo</string> | <null/> | </array>
| List<Number> | | [ | 123, | 1.23, | null | ] | | <array> | <number>123</number> | <number>1.23</number> | <null/> | </array>
| List<Object> | | [ | 'foo', | 123, | 1.23, | true, | null | ] | | <array> | <string>foo</string> | <number>123</number> | <number>1.23</number> | <boolean>true</boolean> | <null/> | </array>

##### Beans

Data type | JSON example | XML
--- | --- | ---
| class MyBean { | public String a; | public int b; | public Object c; // String value | public Object d; // Integer value | public MyBean2 e; | public String[] f; | public int[] g; | } | class MyBean2 { | String h; | } | | { | a: 'foo', | b: 123, | c: 'bar', | d: 456, | e: { | h: 'baz' | } | f: ['qux'] | g: [789] | } | | <object> | <a>foo</a> | <b>123</b> | <c>bar</c> | <d _type='number'>456</d> | <e> | <h>baz</h> | </e> | <f> | <string>qux</string> | </f> | <g> | <number>789</number> | </g> | </object>

##### Beans with Map properties

Data type | JSON example | XML
--- | --- | ---
| class MyBean { | public Map<String,String> a; | public Map<String,Number> b; | public Map<String,Object> c; | } | | { | a: { | k1: 'foo' | }, | b: { | k2: 123 | }, | c: { | k3: 'bar', | k4: 456, | k5: true, | k6: null | } | } | | <object> | <a> | <k1>foo</k1> | </a> | <b> | <k2>123</k2> | </b> | <c> | <k3>bar</k3> | <k4 _type='number'>456</k4> | <k5 _type='boolean'>true</k5> | <k6 _type='null'/> | </c> | </object>