Moving complex data across the web with WDDX
699
Applications that take advantage of WDDX can continue to do so if they start to use web services.
These applications could also be converted to use web services standards exclusively; only the
service and data interchange formats—not the application model—must change.
How WDDX works
The following example shows how WDDX works. A simple structure with two string variables
might have the following form after it is serialized into a WDDX XML representation:
<var name='x'>
<struct>
<var name='a'>
<string>Property a</string>
</var>
<var name='b'>
<string>Property b</string>
</var>
</struct>
</var>
When you deserialize this XML into CFML or JavaScript, the result is a structure that is created
by either of the following scripts:
Conversely, when you serialize the variable x produced by either of these scripts into WDDX, you
generate the XML listed above.
ColdFusion provides a tag and JavaScript objects that convert between CFML, WDDX, and
JavaScript. Serializers and deserializers for other data formats are available on the web. For more
information, see http://www.openwddx.org
Note:
The
cfwddx
tag and the wddx.js JavaScript functions use UTF-8 encoding to represent data.
Any tools that deserialize ColdFusion-generated WDDX must accept UTF-8 encoded characters.
UTF-8 encoding is identical to the ASCII and ISO 8859 single-byte encodings for the standard 128
"7-bit" ASCII characters. However, UTF-8 uses a two-byte representation for "high-ASCII" ISO
8859 characters where the initial bit is 1.
JavaScript
CFScript
x = new Object();
x.a = "Property a";
x.b = "Property b";
x = structNew();
x.a = "Property a";
x.b = "Property b";
Summary of Contents for COLDFUSION MX 61-DEVELOPING COLDFUSION MX
Page 1: ...Developing ColdFusion MX Applications...
Page 22: ...22 Contents...
Page 38: ......
Page 52: ...52 Chapter 2 Elements of CFML...
Page 162: ......
Page 218: ...218 Chapter 10 Writing and Calling User Defined Functions...
Page 250: ...250 Chapter 11 Building and Using ColdFusion Components...
Page 264: ...264 Chapter 12 Building Custom CFXAPI Tags...
Page 266: ......
Page 314: ...314 Chapter 14 Handling Errors...
Page 344: ...344 Chapter 15 Using Persistent Data and Locking...
Page 349: ...About user security 349...
Page 357: ...Security scenarios 357...
Page 370: ...370 Chapter 16 Securing Applications...
Page 388: ...388 Chapter 17 Developing Globalized Applications...
Page 408: ...408 Chapter 18 Debugging and Troubleshooting Applications...
Page 410: ......
Page 426: ...426 Chapter 19 Introduction to Databases and SQL...
Page 476: ...476 Chapter 22 Using Query of Queries...
Page 534: ...534 Chapter 24 Building a Search Interface...
Page 556: ...556 Chapter 25 Using Verity Search Expressions...
Page 558: ......
Page 582: ...582 Chapter 26 Retrieving and Formatting Data...
Page 668: ......
Page 734: ...734 Chapter 32 Using Web Services...
Page 760: ...760 Chapter 33 Integrating J2EE and Java Elements in CFML Applications...
Page 786: ...786 Chapter 34 Integrating COM and CORBA Objects in CFML Applications...
Page 788: ......