Introduction

Introduction to MDB2_Schema

MDB2_Schema builds upon MDB2 to provide tools to manage your database
schema using XML which is both platform- and database-independent.

The XML format is inherited from the Metabase package and was improved to
be able to represent new entities such as Data Manipulation Instructions
and Foreign Keys.

It enables users to maintain RDBMS independent
schema files in XML that can be used to create, alter and
drop database entities (also called as DDL: Data Definition
Language) and insert data (also called as DML: Data
Manipulation Language) into a database. Reverse engineering
database schemas from existing databases is also supported. It also
features the hability to parse database schemas and database data in
separated files. However, in this document the term
"schema file" will be used to designate any XML supported by
MDB2_Schema, no matter its nature.

Reading of schema files is handled by MDB2_Schema_Parser and writing to
them by MDB2_Schema_Writer. There is also the MDB2_Schema_Validate class
which is called after something is parsed. It is supposed to check the
logical integrity of the schema file, for instance whether you are trying
to declare a index field that does not exist or even when you are trying
to insert a float in a date field.

Currently two parsers are available, one based on the package XML_Parser
(default) and another based on XML_Unserializer. As MDB2_Schema is still
beta, both parsers have its own limitation. The default one can't parse
more than 2 nested expressions. The later doesn't respect DML instructions
in the order they are specified in the schema file.

Although MDB2_Schema API supports input from physical databases and schema
files, internally it always operates using a database schema array that
will be described later in the documentation.