1 / 20

New XML Features in CFMX 06.21.03 Samuel Neff

New XML Features in CFMX 06.21.03 Samuel Neff. Outline. XML XPath XSLT What's next?. New XML Features in CFMX – 06.21.03. What is XML?. Format for combining data and metadata Data is the information being exchanged A person's name An account number

hang
Download Presentation

New XML Features in CFMX 06.21.03 Samuel Neff

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. New XML Features in CFMX 06.21.03 Samuel Neff

  2. Outline • XML • XPath • XSLT • What's next? New XML Features in CFMX – 06.21.03

  3. What is XML? • Format for combining data and metadata • Data is the information being exchanged • A person's name • An account number • Metadata is the descriptor of that information • "Name" • "AccountNumber" • Combining data and metadata into one file simplifies development and interoperability New XML Features in CFMX – 06.21.03

  4. Where to use XML? • Exchange of data between applications • Movement of data within tiers of an application • Storage of highly complex single-purpose data New XML Features in CFMX – 06.21.03

  5. Where NOT to use XML? • Movement of data within components of a single-tier in an application • Storage of reusable or relational data New XML Features in CFMX – 06.21.03

  6. Anatomy of an XML Document Processing Instructions <?xml version='1.0'?> <people> <person firstName="Doug" lastName="Jones"> <bio> Doug is a broker. </bio> <!-- Do we have more info on Doug? --> </person> </people> Elements Attributes Data Comments (Comments have only two dashes in XML) New XML Features in CFMX – 06.21.03

  7. Parsing an XML File <cfset fileName = expandPath("Simple.xml")> <cffile action = "read" file="#fileName#" variable="xmlText"> <cfset xmlObject = xmlParse(xmlText)> <cfdump var = "#xmlObject#" label = "xmlObject"> Example: 1_ReadXML.cfm New XML Features in CFMX – 06.21.03

  8. Accessing XML Elements • Use simple dot notation to access elements • <cfset firstNameElement = • xmlObject.purchaseOrder.customerInfo.firstName> • Use the XML object property "xmlText" to read the text of an element • <cfset firstNameText = firstNameElement.xmlText> • <cfoutput>#firstNameText#</cfoutput> Example: 2_XMLElements.cfm New XML Features in CFMX – 06.21.03

  9. Accessing XML Attributes • Use the XML element property "xmlAttributes" to read the attributes • xmlAttributes is a structure of key/value pairs • <cfset customerInfoElement = • xmlObject.purchaseOrder.customerInfo> • <cfset customerId = • customerInfoElement.xmlAttributes.customerId> • <cfoutput><h1> • The customer id is #customerId# • </h1></cfoutput> Example: 3_XMLAtts.cfm New XML Features in CFMX – 06.21.03

  10. Iterating XML Nodes • Use standard structure functions to iterate attributes • <cfset atts = arguments.element.xmlAttributes> • <cfloop item="i" collection="#atts#"> • <cfset attValue = atts[i]> • </cfloop> • Use the XML object property "xmlChildren" as an array of child elements • <cfset children = element.xmlChildren> • <cfloop index="i" from="1" to="#arrayLen(children)#"> • <cfset child = children[i]> • </cfloop> Example: IterateXML.cfm, 4_IterateXML.cfm New XML Features in CFMX – 06.21.03

  11. What is XPath? • Language for selecting nodes from an XML document • Supports combining disparate nodes • Supports filtering nodes by complex criteria • Think of it as single-table SQL Example: 5_DisplayComplex.cfm New XML Features in CFMX – 06.21.03

  12. Simple node selection • Use XMLSearch() function to perform an XPath search • <cfset nodes = XMLSearch(xmlObject, • "/purchaseOrders/purchaseOrder/customerInfo/firstName")> • First argument is an XML object—already parsed • Second argument is an XPath Expression • XPath expression is forward slash delimited list of elements • XMLSearch Returns an array of XML Elements Example: 6_SimpleXPath.cfm New XML Features in CFMX – 06.21.03

  13. Filtered node selection • Use square brackets to indicate a filter • Use relative paths to identify comparison nodes • /purchaseOrders/purchaseOrder/customerInfo • [../products/product/discount > 0] • Use @ sign to indicate an attribute • Still include '/' before the @ sign • /purchaseOrders/purchaseOrder/customerInfo • [../products/product/@productId = 1] Example: 7_FilteredXPath.cfm, 8_FilteredXPath.cfm New XML Features in CFMX – 06.21.03

  14. ColdFusion MX XPath Limitations • Can only be used to select XML Elements • In other systems you can select attribute nodes as well • /purchaseOrders/purchaseOrder/customerInfo/@customerId • Above valid XPath won't work in ColdFusion MX New XML Features in CFMX – 06.21.03

  15. What is XSLT • Language for transforming one XML document into another XML document or into text • An XSLT transformation is also a valid XML document New XML Features in CFMX – 06.21.03

  16. XML to XML Transformations • Refactor an XML document • Move, sort and rename nodes • Filter out data • Commonly used for inter-application data exchange when each application already has an existing XML grammar Example: 09_XSLT_XML.xsl, 10_XSLT_XML.cfm New XML Features in CFMX – 06.21.03

  17. XML to HTML Transformations • Reporting from XML • Simpler than DOM processing Example: 11_XSLT_HTML.xsl, 12_XSLT_HTML.cfm New XML Features in CFMX – 06.21.03

  18. ColdFusion MX XSLT Limitations • No parameters to XSLT transformation • No caching of compiled XSLT files • Extra XML serialization and deserialization sometimes necessary New XML Features in CFMX – 06.21.03

  19. What's next? CML SMIL XDR DCD SOAP XForms DOM SVG XHTML DTD TLD XKMS JAXP UDDI XLink MathML VML XPointer MTX WDDX XQL P3P WML XSD … RDF WSDL XSL-FO RSS XAG New XML Features in CFMX – 06.21.03

  20. Questions Blog: http://www.rewindlife.com E-Mail: sam@rewindlife.com New XML Features in CFMX – 06.21.03

More Related