cfwddx
Description
Serializes and deserializes CFML data structures to the XML-based WDDX format. The WDDX is an XML vocabulary for describing complex data structures in a standard, generic way. Implementing it lets you use the HTTP protocol to such information among application server platforms, application servers, and browsers.
Categories
Related
History
ColdFusion
MX
Changed column name case behavior: ColdFusion preserves
the case of column names in JavaScript. (Earlier releases converted
query column names to lowercase.)
Changed encoding format support: this tag supports several
encoding formats. The default encoding format is UTF-8. The tag
interoperates with Unicode.
Syntax
<cfwddx
action = "cfml2wddx|wddx2cfml|cfml2js|wddx2js"
input = "inputdata"
output = "result variable name"
topLevelVariable = "top-level variable name for JavaScript"
useTimeZoneInfo = "yes|no"
validate = "yes|no" >
Note: You can
specify this tag's attributes in an attributeCollection attribute
whose value is a structure. Specify the structure name in the attributeCollection attribute
and use the tag’s attribute names as structure keys.
Attributes
| Attribute | Description | Required | Default |
|---|---|---|---|
| action | cfml2wddx: serializes CFML to WDDX. wddx2cfml: deserializes WDDX to CFML. cfml2js: serializes CFML to JavaScript. wddx2js: deserializes WDDX to JavaScript. | Required | |
| input | A value to process. | Required | |
| output | Name of variable for output. If action="WDDX2JS" or "CFML2JS", and this attribute is omitted, result is output in HTML stream. | Required if action="wddx2cfml" | |
| topLevelVariable | Name of top-level JavaScript object created by deserialization. The object is an instance of the WddxRecordset object. | Required if action="wddx2js" or "cfml2js" | |
| useTimeZoneInfo | Whether to output time-zone information when serializing CFML to WDDX. yes: the hour-minute offset, represented in ISO8601 format, is output. No: the local time is output. | Optional | yes |
| validate | Applies if action="wddx2cfml" or "wddx2js". yes: validates WDDX input with an XML parser using WDDX DTD. If parser processes input without error, packet is deserialized. Otherwise, an error is thrown. no: does not perform input validation. | Optional | no |
Usage
ColdFusion preserves the case of column names cases in JavaScript.
The wddx2js and cfml2js actions create a WddxRecordset javascript object when they encounter a RecordSet java object. The serialized JavaScript code requires a wddx.js file.
This tag performs the following conversions:
From
To
CFML
WDDX
CFML
JavaScript
WDDX
CFML
WDDX
JavaScript
For more information, and a list of the ColdFusion array and structure functions that you can use to manage XML document objects and functions, see Using XML and WDDX in the Developing ColdFusion Applications.
Note: The cfwddx tag throws an exception if you attempt to serialize a CFC or user-defined function (UDF).
The wddx2js and cfml2js actions create a WddxRecordset javascript object when they encounter a RecordSet java object. The serialized JavaScript code requires a wddx.js file.
This tag performs the following conversions:
From
To
CFML
WDDX
CFML
JavaScript
WDDX
CFML
WDDX
JavaScript
For more information, and a list of the ColdFusion array and structure functions that you can use to manage XML document objects and functions, see Using XML and WDDX in the Developing ColdFusion Applications.
Note: The cfwddx tag throws an exception if you attempt to serialize a CFC or user-defined function (UDF).
Example
<!--- This example shows basic use of the cfwddx tag. --->
<html>
<body>
<!--- Create a simple query. --->
<cfquery name = "q" dataSource = "cfdocexamples">
SELECT Message_Id, Thread_id, Username FROM messages
</cfquery>
The recordset data is:...
<cfoutput query = q>
#Message_ID# #Thread_ID# #Username#<br>
</cfoutput>
<!--- Serialize data to WDDX format. --->
Serializing CFML data...
<cfwddx action = "cfml2wddx" input = #q# output = "wddxText">
<!--- Display WDDX XML packet. --->
Resulting WDDX packet is:
<xmp><cfoutput>#wddxText#</cfoutput></xmp>
<!--- Deserialize to a variable named wddxResult. --->
Deserializing WDDX packet...
<cfwddx action = "wddx2cfml" input = #wddxText# output = "qnew">
The recordset data is:...
<cfoutput query = qnew>
#Message_ID# #Thread_ID# #Username#<br>
</cfoutput>