View comments | RSS feed

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.

This tag generates JavaScript statements to instantiate JavaScript objects equivalent to the contents of a WDDX packet or CFML data structure. Interoperates with Unicode.

Category

Extensibility tags

Syntax

<cfwddx 
  action = "action" 
  input = "inputdata" 
  output = "resultvariablename" 
  topLevelVariable = "toplevelvariablenameforjavascript"
  useTimeZoneInfo = "Yes" or "No"
  validate = "Yes" or "No" >

See also

cfcollection, cfdump, cfexecute, cfindex, cfobject, cfreport, cfsearch

History

New in ColdFusion MX: ColdFusion preserves the case of column names in JavaScript. (Earlier releases converted query column names to lowercase.)

New in ColdFusion MX: This tag supports several encoding formats. The default encoding format is UTF-8. The tag interoperates with Unicode.

Attributes

Attribute Req/Opt Default Description
action
Required

  • cfml2wddx: serialize CFML to WDDX
  • wddx2cfml: deserialize WDDX to CFML
  • cfml2js: serialize CFML to JavaScript
  • wddx2js: deserialize WDDX to JavaScript
input
Required

A value to process
output
Required if action = "wddx2cfml"

Name of variable for output. If action = "WDDX2JS" or "CFML2JS", and this attribute is omitted, result is output in HTML stream.
topLevelVariable
Required if action = "wddx2js" or "cfml2js"

Name of top-level JavaScript object created by deserialization. The object is an instance of the WddxRecordset object.
useTimeZoneInfo
Optional
Yes
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.
validate
Optional
No
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: no input validation

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 Developing ColdFusion MX Applications with CFML.

Example

<!--- This shows basic use of the cfwddx tag. --->
<html>
<body>
<!--- Create a simple query --->
<cfquery name = "q" dataSource = "cfsnippets">
  select Message_Id, Thread_id, Username from messages
</cfquery>

The recordset data is:...<p>
<cfoutput query = q>
  #Message_ID# #Thread_ID# #Username#<br>
</cfoutput><p>

<!--- Serialize data to WDDX format --->
Serializing CFML data...<p>
<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...<p>
<cfwddx action = "wddx2cfml" input = #wddxText# output = "qnew">

The recordset data is:...<p>
<cfoutput query = qnew>
  #Message_ID# #Thread_ID# #Username#<br>
</cfoutput><p>

ColdFusion 9 | ColdFusion 8 | ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX | Forums | Developer Center | Bug Reporting

Version 6

Comments are no longer accepted for ColdFusion MX. ColdFusion 8 is the current version.

Comments


Alexander Bunkenburg said on Sep 17, 2003 at 4:10 AM :
cfdump crashes (java.lang.OutOfMemoryError) when given a graph such as:
a = StructNew();
a.link = StructNew();
a.link.back = a;
Please document or remove this dangerous limitation.
Alexander Bunkenburg said on Sep 17, 2003 at 4:14 AM :
cfwddx and cfdump crash with a graph.
halL said on Sep 19, 2003 at 7:32 AM :
The example in the preceding comment uses a self-referential (recursive) structure.
When cfwddx or cfdump attempt to dump the structure or serialize it to WDDX, they encounter an infinite recursion in the data and eventually reach the stack limit.
lhoess said on May 18, 2004 at 3:12 PM :
There seems to be a problem with CFWDDX on MX6.1"validate" attribute. I get this error:
The tag does not allow the attribute(s) VALIDATE. The valid attribute(s) are ACTION,INPUT,OUTPUT,USETIMEZONEINFO.
RyanZircon said on Oct 27, 2004 at 1:26 PM :
Crashes with a ColdFusion error if any variable being put into the wddx packet contains irregular characters, like an emdash pasted in from a webpage or MS Word.

 

RSS feed | Send me an e-mail when comments are added to this page | Comment Report

Current page: http://livedocs.adobe.com/coldfusion/6/CFML_Reference/Tags-pt320.htm