sql-serverxmldatabaseimportxsd

How to build a database from an XSD schema and import XML data


I have a complex XSD schema and hundreds of XML files conforming to the schema.

How do I automate the creation of related SQL Server tables to store the XML data?

I've considered creating C# classes from the XSD schema using the xsd.exe tool and letting something like Subsonic figure out how to make a shiny database out of it, but not sure if it's the best way to approach it.

Has anyone managed to elegantly import XSD files into SQL Server?

A similar question with good answers: How can I create database tables from XSD files?


Solution

  • I suggest you use SQL Server Integration Services, which comes with SQL Server 2008 or 2005 (Or Data Transformation Services if your stuck with 2000).

    Unfortunately it doesn't come with the free "Express" version of SQL Server, however SQL Server Developer edition can be had for < $100 which has the full SQL Server Standard functionality and would suit your needs.

    SSIS is a big topic and I'm not going to go over all of the bells and whistles here but basically you:

    You will most probably need to use other data transformation objects first to transform the data before it loaded into SQL server, but that is the general gist of it. If you need to run the process for a large amount of XML files you could put the task in a control loop and use a variable to set the XML file location.

    The MS Documentation on using an XML source in SSIS is here: http://msdn.microsoft.com/en-us/library/ms140277(v=SQL.100).aspx