作者:锋哥很好 | 来源:互联网 | 2014-05-05 09:01
对于xml2ddl项目,Freshmeat.org供给了一整套基于GNU或者GPL通用公共允许证下的Python程序。在一个运行的Python环境下,这套工具能够在很多把持系统上工作,包含Windows,Linux,以及UNIX平台上,
对于xml2ddl项目,Freshmeat.org供给了一整套基于GNU或者GPL通用公共允许证下的Python程序。在一个运行的Python环境下,这套工具能够在很多把持系统上工作,包含Windows, Linux, 以及UNIX平台上,同时也能工作在以下数据库引擎:PostgreSQL, MySQL, Oracle, 以及Firebird.
基础上,xml2ddl运行用户把一个XML表现的数据库转换成一套SQL或者DDL报表。根据他的制作者和治理者Scott Kirkwood的先容,“XML到DDL努力做到数据库独立以使得同样的XML能够用于各种不同的数据库。例如对于快速测试各种数据库的表现这是非常有用的”
开端这个过程之前,xml2ddl运行用户指向一个模式,制定一个目标数据库,并且出示必要的DDL或者SQL语句实例化数据库。这种简略的XML例子定义为一个名为schemal.xml的文件如下:
desc="List of students with their full names">
desc="Primary key for the table"/>
type="varchar" size="80"
desc="The full name of the student"/>
应用下列命令行语法调用输出PostgresSQL信息:xml2ddl-数据库的schemal.xml,输出成果如下:
DROP TABLE students;
CREATE TABLE students (
id integer,
student_name varchar(80),
CONSTRAINT pk_students PRIMARY KEY (id));
COMMENT ON TABLE students IS 'List of students with their full names';
COMMENT ON COLUMN students.id IS 'Primary key for the table';
COMMENT ON COLUMN students.student_name IS 'The full name of the student';
通过代替firebird,oracle或者mysql能够天生其它目标数据库的同样类型的输出成果。
该xml2ddl程序也能够检查二个不同版本的XML图例的差别并且天生需要的DDL或者SQL语句从而把这些雷同的变更更新到相干的目标数据库里面往。这就需要两个相干的图例(让我们称之为第二个schema2.xml并且代替schemal.xml),以及应用下面所示的语法:
假如schema2.xml看起来如下:
desc="List of students">
desc="Primary key for the table"/>
type="varchar" size="100"
desc="The full name of the student"/>
type="varchar" size="100"
desc="The primary email for the student"/>
那么PostgresSQL将产生以下的DDL输出:
ALTER TABLE students ALTER student_name TYPE varchar(80);
ALTER TABLE students DROP email;
COMMENT ON TABLE students IS 'List of students with their full names';
工程的项目网站上面可以找到一个完整的例子。它们使得应用XML以及相干的结构化编纂工具定义和治理数据库非常轻易,并且使得翻译你的结构化XML成为适当的数据库元语言耗费时间更短,这些使得这些工具变得非常好用。
这其中的价值尽对值得思量,并且为那些荣幸的成为应用一个他们支撑的目标数据库做出一个真正奇妙的数据集成以及治理工具。