XML ( = eXtensible Markup Language) is a sort of computer "langauge", but since it is primarily used for storage of data, it resembles HTML more than computer languages designed for programming. XML also stands for a handful of related technologies that enable data to be searched, transformed, or passed from one storage medium or application to another. XML is essentially just plain text, with "tagging" applied to give it a tree-like structure. It is this structure that enables XML to capture a very wide range of different kinds of data, including entire databases, web pages, books, etc.

XML really comes into its own when it is used in conjunction with technologies such as XSLT ( = eXtensible Stylesheet Language Transformations). An XSLT "stylesheet" can transform XML in very sophisticated ways, such as re-arranging its elements, adding or taking away elements, making logical decisions as it does so.

InDesign can "filter" XML through an XSLT stylesheet on import or export. Combined with scripting, this enables InDesign to handle some powerful automated publishing tasks using the raw material of a database. Over the years I have written Javascript and XSLT to automate the creation of sophisticated, graphics-rich catalogues for a number of clients.

If you are interested in automating the production of catalogues (or similar publications) using the contents of a database as raw material, please contact me to find out if it can be done with XML.