<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dave McDermid &#187; xml</title>
	<atom:link href="http://www.davemcdermid.co.uk/tag/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davemcdermid.co.uk</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 19 Jan 2010 00:59:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The beauty of XML</title>
		<link>http://www.davemcdermid.co.uk/2008/11/the-beauty-of-xml/</link>
		<comments>http://www.davemcdermid.co.uk/2008/11/the-beauty-of-xml/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 17:22:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Headscape]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.davemcdermid.co.uk/?p=30</guid>
		<description><![CDATA[Here at Headscape we&#8217;re quite keen on XML, in fact our CMS is heavily based on it, to the point of ignoring a few relational (normal form) database rules. This gives us a lot of flexibility, along with a number of interesting problems. This will no doubt be the first in a series looking at [...]]]></description>
			<content:encoded><![CDATA[<p>Here at <a href="http://www.headscape.co.uk">Headscape</a> we&#8217;re quite keen on XML, in fact our CMS is heavily based on it, to the point of ignoring a few relational (normal form) database rules. This gives us a lot of flexibility, along with a number of interesting problems. This will no doubt be the first in a series looking at how we tackle these issues, and why.</p>
<p>First off, a brief introduction to how we manage our data. Fragments of data that are used to build a web page are stored as XML in separate records in one table and associations are stored in another. That&#8217;s the basics. Meta data (such as created dates, published flags etc) are fields in the table, but the page data itself (title, category, body) is stored in a single XML field. To generate a web page, the required XML is collected, nested, transformed, and returned. Simple.</p>
<p>This allows us to deploy a generic database for a website and customise the fields that the user wants to use in XML schemas that we define. We have a nifty CMS that reads our XML schemas and provides the user with the forms to manipulate the data. The XML schemas are file system based, so are easily source controlled and transferred between projects.</p>
<p>When it comes round to styling the front-end site we transform the data in whatever format is required. We can create HTML, RSS, Atom or bespoke pages by defining new transforms. The hidden benefit here is that the XML, regardless of content, follows consistent patterns across our sites, allowing developers to switch between projects with ease.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davemcdermid.co.uk/2008/11/the-beauty-of-xml/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
