Autodia handler for torque xml database schema
This provides Autodia with the ability to read Torque Database Schema files, allowing you to convert them via the Diagram Export methods to images (using GraphViz and \s-1VCG\s0) or html/xml using custom templates or to Dia.
use Autodia::Handler::Torque;
my $handler = Autodia::Handler::dia->New(\%Config);
$handler->Parse(filename); # where filename includes full or relative path.
The Torque handler will parse the xml file using XML::Simple and populating the diagram object with class, superclass, and relationships representing tables and relationships.
The Torque handler is registered in the Autodia.pm module, which contains a hash of language names and the name of their respective language.
An example Torque database schema is shown here - its actually a rather nice format apart from the Java studlyCaps..
<?xml version=\*(L"1.0\*(R" encoding=\*(L"\s-1ISO-8859-1\s0\*(R" standalone=\*(L"no\*(R" ?>
<!DOCTYPE database \s-1SYSTEM\s0 \*(L"http://db.apache.org/torque/dtd/database_3_0_1.dtd\*(R">
<database name=\*(L"\s-1INTERPLANETARY\s0\*(R">
<table name="CIVILIZATION"> <column name="CIV_ID" required="true" autoIncrement="true" primaryKey="true" type="INTEGER"/> <column name="NAME" required="true" type="LONGVARCHAR"/> </table> <table name="CIV_PEOPLE"> <column name="CIV_ID" required="true" primaryKey="true" type="INTEGER"/> <column name="PEOPLE_ID" required="true" primaryKey="true" type="INTEGER"/> <foreign-key foreignTable="CIVILIZATION"> <reference local="CIV_ID" foreign="CIV_ID"/> </foreign-key> <foreign-key foreignTable="PEOPLE"> <reference local="PEOPLE_ID" foreign="PEOPLE_ID"/> </foreign-key> </table> <table name="PEOPLE"> <column name="PEOPLE_ID" required="true" autoIncrement="true" primaryKey="true" type="INTEGER"/> <column name="NAME" required="true" size="255" type="VARCHAR"/> <column name="SPECIES" type="INTEGER" default="-2"/> <column name="PLANET" type="INTEGER" default="-1"/> </table> </database>
use Autodia::Handler::Torque;
my $handler = Autodia::Handler::Torque->New(\%Config); This creates a new handler using the Configuration hash to provide rules selected at the command line.
$handler->Parse(filename); # where filename includes full or relative path.
This parses the named file and returns 1 if successful or 0 if the file could not be opened.
Autodia
Torque
Autodia::Handler