Advanced ColdFusion 9: XML, External Data and File System

ColdFusion Training Course Duration

2 Days

ColdFusion Training Course Outline

Advanced ColdFusion: XML, File System and Web Services

Module 1: Working with <cffile>

  • Read and Write Text Files with <cffile>
  • Demo: Read Plain Text Documents
    • Built-in Function: ExpandPath()
    • Reading Files with the <cffile> tag
  • Demo: Write Text File
    • Built-in Function: FileExists()
  • Exercise 1: Build a Simple Message Board or Log File
    • Challenge
  • Possible Solution to Exercise 1
Upload Documents with <cffile>
  • Using the <cffile> tag for an Upload
  • After a <cffile> Upload: FILE Variables
  • Demo: Upload Image and Dynamically Create Static HTML Pages
    • Deeper Examination: HTML and a File Upload18
    • Saving long variable values with <cfsavecontent>
  • Using the <cffileupload> tag for Multiple Uploads in ColdFusion 9
  • Demo: Using <cfdirectory>
  • Using <cfcontent> to create an Excel Spreadsheet
  • Exercise 2: Upload External Files and Create Photo Gallery Page
    • Challenge
  • Possible Solution to Exercise 2
Module 2: Using XML

XML Syntax Basics
  • XML Logical Structure
    • Each XML document must begin with a language declaration
    • Each XML document must have a single root element, which normally contains other child elements
  • XML Physical Structure
    • Case Sensitivity
    • Required Closing Tags
    • New Syntax for “empty elements”
    • Tags must be nested properly
    • Attribute Values must be enclosed properly in single or double quotes <
    • XML Comments
  • XML Logic: Designing Datasheets
Parsing XML data with ColdFusion
  • Demo: Convert an XML datasheet into an XML Document Object with XMLParse()
    • Case-sensitive Element Names with XMLParse()
  • Demo: Referring to Specific XML nodes
    • Method 1 – Array notation with generic node names
    • Method 2 – Associative Array notation
    • Method 3 – Array notation with specific node names
    • Methods 4(+) – Mix and Match
  • Demo: Loop through each node with <cfloop>
    • Deeper Examination: Counting Nodes
  • Manipulating XML data with Built-in Functions
  • List of Structure/Array Functions that may be used on an XML Document Object
  • List of XML-specific Functions
  • Exercise 3: Create a Calendar of Events Built from External XML Files Provided by External Organizations
    • Challenge
  • A Possible Solution to Exercise 3
Manipaulating the XML Document Object: Adding Elements
  • Demo: Build XML Object in .cfm Document with <cfxml> Tag
  • Demo: Query Database to Build XML Document Object
  • Demo: Add nodes to Existing XML Document Object
    • Deeper Examination
    • Deeper Examination: Adding an XML Attribute
  • Exercise 4: Add an Event to the Calendar
    • Challenge
  • A Possible Solution to Exercise 4
Create a Query Object from Existing XML (optional)
  • Demo: Combine Multiple XML Document Objects into One
    • Deeper Examination: Looping through the XML
  • Demo: Convert XML Document Objects into a Query Object with QueryNew()
    • Deeper Examination: Creating the Query Object
    • Deeper Examination: Query the query
  • Exercise 5: Co-mingle the Events on the Calendar (optional)
    • Challenge
  • A Possible Solution to Exercise 5
Extensible Stylesheet Language (XSL) Basics
  • XSL, XSLT, and XSLFO
  • XSL Basics: Linking to an XSL Stylesheet
  • Examining an XSL Stylesheet
    • The xsl:stylesheet tag and the namespace declaration
    • The <xsl:template> tag
    • The <xsl:value-of> tag
    • Referencing iterating nodes
Server-side XSL Transformation with ColdFusion
  • Demo: Transforming XML Data with XSL
    • Deeper Examination: XMLTransform()
  • Idea! Transforming XML Data into XML Data
  • Exercise 6: Transform XML data
    • Challenge
  • A Possible Solution to Exercise 6
XPath Basics
  • XPath: the XSL Node Matching Syntax
    • Choosing Between Equivalent XPath Expressions
    • An XPath testing tool
Using XPath with ColdFusion
  • Demo: Select Nodes Based on Attribute Values
    • Deeper Examination: XPath expression
    • Deeper Examination: XMLSearch()
    • Idea! Convert an XML Document Object to a Query Object
  • Exercise 7: Using XPath to select specific XML elements
    • Challenge
  • A Possible Solution to Exercise 7
Module 3: Working with <cfhttp>

Making http requests with <cfhttp>
  • Demo: Using <cfhttp> to display a complete page: Screen Scrape
  • Demo: Using <cfhttp> to download a complete page and save with <cffile>
  • Attributes of <cfhttp>
  • Demo: Convert a Text File into a Query with <cfhttp>
    • Deeper Examination: <cfhttp> tag
    • Deeper Examination: <cfoutput> block
  • While looping though the records…
  • Demo: Add a Column to Query
    • Deeper Examination: QueryAddColumn() function
  • Idea! Dynamically Creating Static Pages
  • Exercise 8: Using <cfhttp> to Access and Parse External Data
    • If you are done early
  • A Possible Solution to Exercise 8
Passing Variables with <cfhttp> and <cfhttpparam>
  • Creating an Intelligent Agent
  • Demo: Examine a Simple Traditional Application
  • Demo: Convert Simple Application into an Intelligent Agent
    • Deeper Examination: agent.cfm
    • Deeper Examination: agent-page2.cfm
    • Deeper Examination: <cfsetting>
  • Demo: Screen Scraping for Data
  • Exercise 9: Simulate the Post Method with <cfhttp> and Create an “Intelligent Agent”
    • Challenge
  • A Possible Solution to Exercise 9
Module 4: Working with Web Services
  • Examples
  • Producers vs. Consumers
  • Definitions
  • Creating WSDL Documents
  • Demo: Converting CFCs into Web Services
    • Step 1 – Convert the existing CFC into a Web Service
    • Step 2 - Examine a local WSDL file from the demo
    • Step 3 - Invoking a ColdFusion Web Service
    • Deeper Examination
    • Deeper Examination: Passing an argument to a Web Service
  • SOAP
  • A note about security
  • Exercise 10: Convert Existing CFC into Web Service
    • Challenge
  • A Possible Solution to Exercise 10
Invoking External Web Services
  • Locating Web Services
  • Invoking Web Services from .NET, Java and more
  • Demo: Random Quote Generator
    • Deeper Examination: <cfinvoke> and <cfinvokeargument>
  • Exercise 11: Consuming External Web Services
    • Challenge
  • A Possible Solution to Exercise 11
Module 5: Web Distributed Data Exchange (WDDX) (optional)

WDDX
  • Demo: Store simple data as WDDX
    • Deeper Examination: <cfwddx> tag
  • Demo: Store an Array as WDDX
  • Demo: Store a Recordset as WDDX
  • Demo: Store binary object as WDDX
    • Deeper Examination
  • Exercise 12: Serialize data as wddx file
    • If you are done early
  • A Possible Solution to Exercise 12
Deserialize WDDX data in JavaScript
  • Demo: Deliver a ColdFusion query to JavaScript
    • Deeper Examination: Include JavaScript functions
    • Deeper Examination: Deserialize in JavaScript
    • Deeper Examination: Generated source code
  • Demo: Using the data in a more complicated example
    • Deeper Examination
  • Exercise 13: Transfer WDDX data from ColdFusion to JavaScript
    • If you are done early
  • A Possible Solution to Exercise 13
Appendix A: Resources

Appendix B: Set-up Notes

Appendix C: Selecting Among ColdFusion Code Reuse Methods

Appendix D: Dreamweaver, Web Services and Components

Wintrac Inc.
16523 SW McGwire Ct.
Beaverton OR 97007
© Wintrac, Inc. All rights reserved.                                                                               Site Map   |   Terms of Use   |   Privacy Policy