Menu

Bob DuCharme

In addition to writing XML.com's monthly Transforming XML column and other pieces for XML.com since 1998, Bob DuCharme (http://www.snee.com/bob) is the author of Manning Publications' XSLT Quickly, a tutorial and users guide to XSLT. He also wrote Prentice Hall's "XML: The Annotated Specification" and "SGML CD" and McGraw Hill's "Operating Systems Handbook" and has contributed to IBM developerWorks, XML Magazine, XML Journal, and Prentice Hall's "XML Handbook." Bob, a senior consultant at Innodata Isogen, holds a BA in religion from Columbia University and a masters in computer science from New York University.

Articles by this author

Introducing RDFa, Part Two

In this second part of a two-part series, Bob DuCharme concludes his introduction of RDFa--a new, XHTML-friendly standard syntax for RDF metadata that allows you to embed RDF metadata into the Web in a novel way.

Introducing RDFa

In this first part of a two-part series, Bob DuCharme introduces us to RDFa, a new, XHTML-friendly standard syntax for RDF metadata that allows you to embed RDF metadata into the Web in a novel way.

Scaling Up with XQuery, Part 2

In Part 2 of this article, Bob DuCharme covers the eXist and Berkeley DB XML implementations of XQuery, showing us how to use them to query a large XML data collection.

Scaling Up with XQuery, Part 1

In Part 1 of this two-part article, Bob DuCharme shows us how to use three popular XQuery implementations to access and query large XML document collections, which is, as he says, "where the real fun begins."

Hacking the XML in Your TiVo

Bob DuCharme's latest article shows us how to query a networked TiVo for XML using a REST interface over HTTP. Bob then shows us how to use Atom to syndicate our TV habits and integrate them with our weblogs via the "TiVoRoll."

Moving to OpenOffice: Batch Converting Legacy Documents

Bob DuCharme presents a practical solution to a real problem. You want to move from MS Office to OpenOffice, but you've got mountains of legacy documents to convert. Bob gives a clever batch conversion solution to this common problem.


Automating Stylesheet Creation

Bob DuCharme shows how an XSLT stylesheet can read simplified XML-conversion instructions and create a new, working XSLT stylesheet from those instructions.

Appreciating Libxslt

In this month's Transforming XML column, Bob DuCharme introduces libxslt, a very performant and feature-rich XSLT processor with roots in the GNOME world.

Push, Pull, Next!

Bob DuCharme compares the push and pull styles of XSLT stylesheet architectures and looks at two new XSLT 2.0 instructions that aid push-style development.

Seeking Equality

Bob DuCharme looks at how XSLT 1.0 and 2.0 let you evaluate whether two elements are equal.

The Path of Control

In his latest Transforming XML column, Bob DuCharme examines the potential contribution of XPath 2.0's new control structures to XSLT 2.0 stylesheets.

Using Stylesheet Schemas

In this month's Transforming XML column, Bob DuCharme asks what a DTD or schema for XSLT stylesheets can add to your XSLT development and deployment.


Getting Started with XQuery

Bob DuCharme, our intrepid XSLT explorer, turns his attentions to XQuery, the new programming language for XML.

The XPath 2.0 Data Model

Bob DuCharme, in his latest Transforming XML column, examines the XPath 2.0, hence the XSLT 2.0, data model.

Extending XSLT with EXSLT

In this month's Transforming XML column, Bob DuCharme reports happily that the promise of XSLT extensibility via EXSLT has become a reality.

Telnet and REST Web Services?

Telnet isn't the most efficient way to send GET, PUT, POST, and DELETE commands to an HTTP server, but once you've done it by hand, you'll have a better understanding of the core HTTP method.


Using Customized Schema Constraints

In the return of Bob DuCharme's Transforming XML column, he discusses ways to add customized constraints to schemas and how you can use XSLT as a bridge to implement them.

Schematron 1.5: Looking Under the Hood

In his latest Transforming XML column Bob DuCharme explains the elegant simplicity of Schematron, a rule-based XML validation tool often implemented in XSLT.

XMP Lowdown

Bob DuCharme introduces XMP, Adobe's RDF-based specification for embedding metadata into digital artifacts. Get ready to mark up your photos and images with Adobe tools.

Converting XML to RDF

Bob DuCharme explains how to convert XML into RDF -- using the XML returned by Amazon's REST web service -- in this month's Transforming XML column.

Amazon's Web Services and XSLT

In his latest Transforming XML column, Bob DuCharme introduces us to the XSLT processing-service component of Amazon's web services.

An Interview with Michael Kay

In his latest Transforming XML column, Bob DuCharme interviews Michael Kay, developer of Saxon, about his new venture, Saxonica.

Entity and Character References

In this month's Transforming XML Bob DuCharme examines some of the issues surrounding entity and character references in XSLT 2.0.


Utility Stylesheets

In Bob DuCharme's latest Transforming XML column he shares several small stylesheets that follow a common design pattern.

Tunneling Variables

In Bob DuCharme's latest Transforming XML column he explains the use and virtues of XSLT 2.0's tunneled variables.

Googling for XML

Google's index includes well over a million XML files. Bob DuCharme shows some strategies for using Google to find the XML, RSS and RDF files that you want.

Opening Open Formats with XSLT

In Bob DuCharme's latest Transforming XML column he finds that four-year old XSLT 1.0 is solving more and more problems as more data becomes available in XML.

Getting Started with XForms

Bob DuCharme provides an implementation-centered guide to using XForms, the new W3C forms technology for the web.

Trees, Temporarily

In his latest Transforming XML column Bob DuCharme explains XSLT 2.0's Temporary Trees, and then he demonstrates how to use them.

Grouping With XSLT 2.0

In his latest Transforming XML column Bob DuCharme explains how to use the new grouping facilities in XSLT 2.



New and Improved String Handling

In this month's Transforming XML column Bob DuCharme explains some of the new and improved string handling functions -- for concatenation, search, and replace -- in XSLT/XPath 2.0.

Transclusion with XSLT 2.0

In Bob DuCharme's latest Transforming XML column he examines some new XSLT 2.0 features which make document transclusion a reality.


XSLT 2 and Delimited Lists

In his latest Transforming XML column Bob DuCharme begins a multipart expoloration of some of the features of the forthcoming XSLT 2.0 release. In this column DuCharme discusses the new support for tokenizing strings.

Conditional Execution

In Bob DuCharme's latest Transforming XML column, he explains how to use xsl:if and xsl:choose for conditional execution in XSLT transformations.


Building Metadata Applications with RDF

After some time wondering what to do with RDF, Bob DuCharme found RDFlib, a Python RDF processing library, and "the lightbulb finally went on." Bob describes his experiences.

XSLT, Browsers, and JavaScript

Bob DuCharme, in this month's Transforming XML column, shows us how to include JavaScript in the HTML result tree of XSLT transformations.


Automatic Numbering, Part Two

In his latest Transforming XML column, Bob DuCharme returns to the issue of creating number sequences automatically in XSLT output.

Automatic Numbering, Part 1

In this month's Transforming XML column Bob Ducharme explains the use of xsl:number in handling numbers in XSLT stylesheets.

Make Your XML RDF-Friendly

As the volume of RDF-consuming applications grow, the authors demonstrate how XML documents can be made useful to RDF processors as well as normal XML parsers.

Duplicate and Empty Elements

In his monthly Transforming XML column, Bob DuCharme explains how to detect, delete, and create duplicate and empty elements in source and result trees.


Finding the First, Last, Biggest, Smallest

In this month's Transforming XML column, Bob DuCharme explains how to do without a query language using XPath expressions, XSLT predicates, and last month's sorting tricks, he explains how to find the first, last, biggest and smallest nodes.

Sorting in XSLT

In this month's Transforming XML column, Bob DuCharme explains the various uses of xsl:sort, including sort ordering, multiple keys, and reversing the sort.

Comparing and Replacing Strings

In this month's Transforming XML column, Bob DuCharme gives us the ins and outs of string munging in XSLT, including string equality comparisons and search-and-replace operations.



Putting Attributes to Work

In this month's Transforming XML column, Bob DuCharme examines the treatment of source tree attributes in XSL stylesheets.

XLink: Who Cares?

XLink was part of the original plan for XML, along with XSL, but has taken a long time to reach completion and has inspired few implementations. Bob DuCharme asks why.

Reading Multiple Input Documents

This month's Transforming XML column explains how to use XSLT's document() function to insert all or part of a document into the result tree.


Controlling Whitespace, Part Three

In the third part of his series on handling whitespace in XSLT, Bob DuCharme discusses outputting tab characters and automated element indenting.


Controlling Whitespace, Part 1

In the first of a multipart series, Bob DuCharme discusses stripping and preserving whitespace in XSLT transformations of XML documents.


XSLT Extensions

Bob DuCharme explores XSLT extension functions, showing you the best way to use them in portable stylesheets.

Getting Loopy

Ducharme discusses how to achieve common looping constructs, like "for" and "while", in XSLT.

Math and XSLT

XSLT is primarily for transforming text, but you can use it to do basic math too.

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.



Entities and XSLT

Using XML entities can be tricky -- this article covers their usage with XSLT in both input and output documents.


Axis Powers: Part Two

Part one of this series introduced the role of XPath axes in XSLT. This article explains the remaining axes and shows how to handle namespaces in XPath.

Axis Powers: Part One

In this first installment of a two-part series, we examine the vital role of XPath in XSLT, and introduce the axes used in XPath expressions.

Finding Relatives

XML nodes have many friends and relations. In XSLT, the key to finding them is XPath. In this article Bob DuCharme shows you how.

Combining Stylesheets with Include and Import

XSLT provides two means of combining multiple stylesheets into one, include and import. This article explores the use of these instructions and shows how they can be used to customize the DocBook XSLT stylesheets.

XSLT, Comments and Processing Instructions

XSLT isn't just for transforming elements and attributes. In this month's Transforming XML column we show how to create and transform processing instructions and comments too.

HTML and XSLT

While HTML isn't an XML application itself, it can be both generated and transformed using XSLT. Bob DuCharme show us how.