"Transforming XML" Columns
The following columns appeared in XML.com from June 2000 to September 2005. They include introductions to basic XSLT concepts, hints to approaching typical XSLT problems, and tours of XSLT 2.0 features. Most of the earlier columns are excerpted from the book "XSLT Quickly," shown above. Would you like to see the book updated to cover XSLT 2.0? Write to me at bob@snee.com and let me know.
Automating Stylesheet Creation: Using stylesheets to create stylesheets. Sep. 7, 2005
Appreciating Libxslt: A fast, free XSLT processor for Windows and Linux with some handy extra features. Aug. 3, 2005
Push, Pull, Next!: A review of the push and pull styles of XSLT stylesheet architectures and looks at two new XSLT 2.0 instructions that aid push-style development. Jul. 6, 2005
Seeking Equality: How XSLT 1.0 and 2.0 let you evaluate whether two elements are equal. Jun. 8, 2005
The Path of Control: XPath 2.0's new control structures (for example, "if" statements and "for" loops) and what they can add to XSLT 2.0 stylesheets. May. 4, 2005
Using Stylesheet Schemas: How a DTD or schema for XSLT stylesheets can help your stylesheet development. Apr. 6, 2005
The XPath 2.0 Data Model: And hence, the XSLT 2.0 data model. Feb. 2, 2005
Extending XSLT with EXSLT: An initiative to standardize XSLT extensions and what these extensions can do for your stylesheets. Jan. 5, 2005
XSLT Web Service Clients: Writing a multi-step web services client in XSLT to pull photo metadata from flickr.com. Dec. 1, 2004
Using Customized Schema Constraints: The W3C and RELAX NG schema languages let you embed Schematron rules. How do you pull those rules out and check that they're being followed in your data? With XSLT. Nov. 10, 2004
Schematron 1.5: Looking Under the Hood: The reference implementation of Schematron is one of the most powerful XSLT applications available. In this column, we look at how it works. Oct. 6, 2004
Converting XML to RDF: As a follow-up to last month's column, "A Somewhat Generic XML to RDF Converter": an XSLT stylesheet that converts data returned from Amazon Web Services to RDF. Sep. 1, 2004
Amazon's Web Services and XSLT: Writing a simple XSLT client that uses Amazon Web Services. Aug. 4, 2004
An Interview with Michael Kay: An interview with Michael Kay: developer of Saxon, editor of the W3C's XSLT 2.0 specification, and the author of Wrox press's " XSLT Programmer's Reference" Jul. 7, 2004
Entity and Character References: XSLT 1.0 gives you no straightforward way to output entity references (e.g. ä or numeric character references (e.g. ä, but XSLT 2.0 does. Find out how. Jun. 2, 2004
Utility Stylesheets, Part Two: More short utility stylesheets: strip the namespaces from a document, converting attribute value QNames to URIs, and converting a document's encoding. May. 5, 2004
Utility Stylesheets: Short, useful XSLT utilities: stripping empty paragraphs, convert mixed content to element content, and and adding ID values to elements. Apr. 7, 2004
Tunneling Variables: XSLT 2.0's tunneled variables let you implicitly pass parameters, which can save you a lot of coding. Mar. 24, 2004
Opening Open Formats with XSLT: Four-year old XSLT 1.0 is still solving new problems as more data becomes available in XML. One example: pulling speaker notes from a PowerPoint or OpenOffice Impress presentation. Feb. 4, 2004
Trees, Temporarily: XSLT 2.0 replaces 1.0's Result Tree Fragments with temporary trees, letting you use complex, typed structures in variables and parameters. Dec. 3, 2003
Grouping With XSLT 2.0: XSLT 2.0's new grouping feature lets you group data by specific values as easily as SQL does. Nov. 5, 2003
Datatype Checking With XSLT 2.0: Using XSLT 2.0's data typing features, even if you're not using schemas. Oct. 1, 2003
Writing Your Own Functions in XSLT 2.0: In this month's Transforming XML column Bob DuCharme explains how to write arbitrary XSLT functions in XSLT 2.0. Sep. 3, 2003
New and Improved String Handling: An introduction to new features in XSLT 2.0 and XPath 2.0 for comparing strings, creating delimited lists, and and performing search and replace operations. Aug. 6, 2003
Transclusion with XSLT 2.0: XSLT 2.0's features for including separate local or remote resources into a result tree. Jul. 9, 2003
Regular Expression Matching in XSLT 2: An introduction to XSLT 2.0's use of regular expressions. Jun. 4, 2003
XSLT 2 and Delimited Lists: Using XSLT 2.0 to split comma-delimited list items into separate elements. May. 7, 2003
Conditional Execution: XSLT's equivalent of "if" and case statements. Apr. 2, 2003
Prototyping One-to-many Links with XSLT: Implementing advanced linking widgets with XSLT. Mar. 5, 2003
XSLT, Browsers, and JavaScript: How and why to use XSLT to add JavaScript to your result tree. Feb. 5, 2003
Never Mind the Namespaces: An XSLT RSS Client: A complete RSS aggregation client in less then 80 lines of XSLT, including comments and whitespace. Jan. 2, 2003
Automatic Numbering, Part Two: Creating and formatting automatic numbers in your result XML. Part two of a two-part series. Dec. 11, 2002
Automatic Numbering, Part 1: Creating and formatting automatic numbers in your result XML. Part one of a two-part series. Nov. 6, 2002
Duplicate and Empty Elements: Detecting and deleting duplicate and empty elements in source and result trees. Oct. 2, 2002
Controlling the DOCTYPE and XML Declaration: Using XSLT's xsl:output attributes to add or suppress DOCTYPE and XML declarations to result documents. Sep. 4, 2002
Finding the First, Last, Biggest, Smallest: Finding maximum and minimum values in your source document. Aug. 7, 2002
Sorting in XSLT: Using XSLT to sort content: controlling the sort order, using multiple keys, and more. Jul. 3, 2002
Comparing and Replacing Strings: How do you know when two strings are equal? How can you do a search-and-replace in XSLT? Jun. 5, 2002
Splitting and Manipulating Strings: Picking part and recombining strings from your element and attribute values, and normalizing white space. May. 1, 2002
Putting Attributes to Work: Gain greater control over your use and creation of attribute names and values. Apr. 3, 2002
Reading Multiple Input Documents: Using XSLT's document() function to read all or part of an external document into the result tree. Mar. 6, 2002
Declaring Keys and Performing Lookups: How to use xsl:key instruction and the the key() function to speed lookups in XSLT stylesheets. Feb. 6, 2002
Controlling Whitespace, Part Three: Too much whitespace in your result document? Not enough? This three-part series describes how to gain better control over whitespace in your source and result documents. Jan. 2, 2002
Controlling Whitespace, Part Two: Too much whitespace in your result document? Not enough? This three-part series describes how to gain better control over whitespace in your source and result documents. Dec. 5, 2001
Controlling Whitespace, Part One: Too much whitespace in your result document? Not enough? This three-part series describes how to gain better control over whitespace in your source and result documents. (See also "Splitting and Manipulating Strings" for background on normalizing white space.) Nov. 7, 2001
Generating Unique IDs and Linking to Them: How to create and use unique element IDs with the generate-id() function, and how to use these values to create links. Oct. 3, 2001
XSLT Extensions: How do non-XSLT functions and elements fit into stylesheets, and how can you take advantage of them? Sep. 5, 2001
Getting Loopy: "for" loops, "while" loops, and iteration across node sets to do the same thing to each node. Aug. 1, 2001
Math and XSLT: XSLT is primarily for transforming text, but you can use it to do basic math too. Jul. 5, 2001
Using the W3C XSLT Specification: For advanced XSLT use, the W3C's XSLT specification can be a handy tool. This guide helps you read the specification and clears up confusing terms. Jun. 6, 2001
Namespaces and Stylesheet Logic: Querying and controlling the namespaces used in your source document. May. 2, 2001
Namespaces and XSLT Stylesheets: How to control the namespaces that are declared and referenced in your output document. Apr. 4, 2001
Entities and XSLT: Entities are often used to represent special characters in XML documents. Issues around reading them (or attempting to read them) and writing them can be confusing. Mar. 14, 2001
Setting and Using Variables and Parameters: Adding flexibility to your stylesheets with variables and parameters. Feb. 7, 2001
Axis Powers: Part Two: This article covers the remaining XPath axes introduced in the December 20, 2000 column. Jan. 3, 2001
Axis Powers: Part One: Many XSLT developers use only a few of the axes available for use in XPath expressions. Getting to know all eight axes can expand the power of your XPath expressions and your XSLT stylesheets. Dec. 20, 2000
Combining Stylesheets with Include and Import: Using combinations of stylesheet files to modularize complex projects and to create pluggable customizations of existing stylesheets. Nov. 11, 2000
Finding Relatives: An introduction to using XPath to get parent, grandparent, sibling and other relative elements of the element that your template rule is working on. Oct. 4, 2000
XSLT, Comments and Processing Instructions: Reading and writing comments and processing instructions in XML documents. Sep. 13, 2000
HTML and XSLT: Reading and writing HTML that isn't necessarily well-formed XML. Aug. 30, 2000
Adding New Elements and Attributes: Creating new markup in your output. Aug. 2, 2000
Copying, Deleting, and Renaming Elements: Introducing some of the most basic tasks to perform in XSLT. Jun. 7, 2000