Foreword
It is my pleasure to present Michael Coles’s book, Pro SQL Server 2008 XML, which covers one
area of Microsoft
®
SQL Server™ that I spend a large part of my work at Microsoft designing,
influencing, and building: the XML support in SQL Server.
Michael covers this complex topic with the focused understanding of a practitioner and
the deep background of an experienced industry observer. He presents this large and, to the
general database programmer, often somewhat new and surprising area, both in an easy and
logical way—covering the client application, .Net programming with XML, and the database
development aspects. Lots of examples provide access to the concepts and technologies, and
practical tips about usage and performance add relevance. He even shows how XML is being
used with other features in SQL Server, such as the spatial support added in SQL Server 2008,
which provides support for a subset of GML, Bulk copy’s use of XML and XML for Analysis.
His technical content is presented against a historical background of what XML is about,
and also points out that XML is not the cure for all ailments in this world, but that it has its
place to address several important scenarios.
When I started to work on the XML support in SQL Server in the SQL Server 2000 release
cycle, we set out on a journey to provide extensions to our relational database customers that
would enable them to work with XML data to address three different but related scenarios that
were united in that they all were using XML at some level.
The first scenario, which we focused on in SQL Server 2000, was the ability to integrate
existing relational data into the new world of web service and loosely coupled data exchange
that was starting to use XML as their lingua franca of data interchange. Features like FOR XML
or the mapping schemas of the SQL/XML component were allowing programmers to map
their existing relational data into XML and take structured data from XML into their existing
relational database.
Since XML with its tag markup structure is well-suited to describe complex, non-regular
data shapes, it also quickly became a preferred way by many to represent data that did not
easily fit into the relational mold. XML was used either because the data shape was changing
too quickly or was not known a priori, or the decomposition and re-composition costs of the
complex properties were too high and XML gave a good compromise between queryability
and flexibility. This second scenario, often referred to as the scenario of managing semi-
structured data management, got support in SQL Server 2005 with the addition of the XML
data type, XML Schema collections, and the support for XQuery to query into the XML struc-
ture and unlock the information within it. SQL Server 2008 has now even added relational
functionality—such as sparse columns and column sets, themselves based on XML—to
provide more “relational” support for semi-structured data.
Finally, over the last few years, more and more documents are being represented in XML, be
it custom schemas or some standard document schemas such as the Office OpenXML (not
to be confused with the OpenXML function in SQL Server) and others. As such uses for XML
become more prevalent, the queryability of the underlying document format, namely XML, will
xv
9837ch00FMFINAL.qxd 4/17/08 3:04 PM Page xv
18a911bef9491f04133f0e5ed03fa775