It would look a lot more reasonable if they had set the root namespace instead of leaving it separate and requiring every element to be prefixed.
On the plus side I bet the output gzip's up rather nicely in transit assuming you're HTTP GET'ting this data....
<object xsi:schemaLocation="http://www.datapower.com/schemas/json jsonx.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.ibm.com/xmlns/prod/2009/jsonx">
<string name="name">John Smith</string>
<object name="address">
<string name="streetAddress">21 2nd Street</string>
<string name="city">New York</string>
<string name="state">NY</string>
<number name="postalCode">10021</number>
</object>
<array name="phoneNumbers">
<string>212 555-1111</string>
<string>212 555-2222</string>
</array>
<null name="additionalInfo" />
<boolean name="remote">false</boolean>
<number name="height">62.4</number>
<string name="ficoScore"> > 640</string>
</object>The XML is 901 bytes, gzip yields 401 (44.5%)
Of course the original JSON is 303 bytes and JSON is already pretty compressible, to 215 bytes (71%) in this case.
Because of what I just mentioned. If they had set the root namespace directly you wouldn't have to declare the namespace prefix on every element.