August 21, 2008
Often people overlook schema flexibility when evaluating their XML storage needs. Before getting locked into an XML database decision, you should understand your XML schema needs and how the different XML databases support those needs. After all, you don’t want to have a nasty surprise when implementing your application.
An XML schema defines the structure of XML data. For example, an XML schema describes the actual XML elements and attributes that can appear in XML data, their data types, as well as describing where they can appear and how often they can appear. Often when working with XML data, you need to ensure that the XML data adheres to an XML schema. This is frequently referred to as checking that XML data is valid, or validating the XML data. Validating XML data is a good idea because it ensures that you will not encounter issues when working with the data.
Schema flexibility refers to the ability to cater for a wide range of XML schema needs; needs that go beyond simply associating a single XML schema with a database column.
Consider the situation encountered by tax authorities. Although this scenario applies to any environment where data formats are subject to change.
An increasing amount of tax information is being filed using online forms. Online tax forms are a more efficient and cost effective way to gather tax information. XML is a natural choice as the format for such information because of its suitability for data exchange with other tax authorities.
Each year, there is the likelihood of minor changes to the tax forms. If the tax forms change, then it is likely that the XML schema will also change. In such situations, simply using the new schema to validate all XML data in that column is not sufficient. Instead, you need to validate each record against the schema that was in existence when that record was created. In other words, you need the flexibility of having the cells in a database column validate against different schemas.
Another aspect of schema flexibility is the ability to enter XML data into a database without validating the XML data during the database insert. You may want to validate the XML data as part of another step in your application. To cater for such situations, you should ensure that your XML database management system does not force you to validate the data upon entry. You would be surprised how often this situation arises.
These are only a couple of considerations to keep in mind. The main point is to make sure to understand your XML validation needs, and to make sure that the XML database you choose meets those needs.
Tomorrow I’ll blog about XML schema evolution…