网络编程
位置:首页>> 网络编程>> XML编程>> XML to DDL的项目关键:与数据库同步

XML to DDL的项目关键:与数据库同步

 来源:互联网 发布时间:2008-05-29 14:19:00 

标签:

对于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的文件如下:

<table name="students" fullname="List of Students"
 desc="List of students with their full names">
 <columns>
 <column name="id" fullname="Primary Key" type="integer" key="1"
 desc="Primary key for the table"/>
 <column name="student_name" fullname="Student Name"
 type="varchar" size="80"
 desc="The full name of the student"/>
 </columns>
 </table>
</schema>

使用下列命令行语法调用输出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看起来如下:


<schema>
<table name="students" fullname="List of Students"
desc="List of students">
  <columns>
<column name="id" fullname="Primary Key" type="integer" key="1"
desc="Primary key for the table"/>
<column name="student_name" fullname="Student Name"
type="varchar" size="100"
desc="The full name of the student"/>
<column name="email" fullname="Electronic mail address"
type="varchar" size="100"
desc="The primary email for the student"/>
</columns>
</table>
</schema>


那么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成为恰当的数据库元语言耗费时间更短,这些使得这些工具变得非常好用。

这其中的价值绝对值得思量,并且为那些幸运的成为使用一个他们支持的目标数据库做出一个真正奇妙的数据集成以及管理工具。

0
投稿

猜你喜欢

  • insert into testtable(recordnumber,currentdate) values (i,sysdate); pr
  • 公司做了个客户,需要图片生成像alibaba的效果。原来开发的系统都是用Aspjpeg进行缩小图的,现在需要处理图片,当然又想到这个组件。但
  • 在我们制作网页的时候会经常碰到一些需求,如果不知道方法,说不定会困扰我们半天。其实实现它们都很简单,下面我们就一起来看看这些常用的网页编辑方
  • 样式表是一种为超文本标签语言提供增强补充服务的技术,可对每一个html的标签做精雕细刻的修饰。只用html制作的网页,对页面内各部分的修饰能
  • 两组字符串数据,需要比较其中相同的数据,并将其值相加并组成一个新的字符串数据a1="sp2=20;sp1=34;"a2=
  • 想要一个这玩意,可是找了网上许多着色器,要么是兼容性成问题,要么是匹配不精确,比如说:1、注释里包含字符串、关键词,类似于:/* xxxx&
  • 写在前面的话:此篇还是asp相关的,相信玩ASP的都有这个感觉,当数据有5万多条时-------just like音乐网,要调用最新的10条
  • 请问如何在ASP中使用ADO调用Oracle的存储过程?我们可以在下面的代码里使用微软Oracle 的OLE DB Provider ,包括
  • 举例: 如:在字段名处输入:username,password,email,telphone 注意:不同的字段名用英文逗号隔开,且不支持星号
  • 最近在处理Qzone黄钻图标更新时,想起近期对业务图标进行优化所遇到的一些问题,把思绪收拾起来和大家一共探讨,欢迎多方声音。在实际工作中,图
  •     字体的处理在网页设计中无论怎么强调也不为过,毕竟网页使用来传递信息的,而最经典最直接的信息传递方式就是
  • 由于代码比较短,这里就不进行注释了代码如下:<% '当目标页面的包含文件即#include的页面里边存在respon
  • 最近,Facebook设计团队在其位于加州帕罗奥多市(Palo Alto)的总部,提到了他们为2.5亿用户设计的原理和方法。 他们特别强调了
  • 有很多种方法来实现图片的预加载,通常大部分使用Javascript让事情滚动。不要再受Javascript预载的束缚了吧,用CSS你就可以毫
  •  <%''调用例子'Dim int_RPP,int_Start,int_showNumberLink
  • -------------- 函数检索 --------------trim函数: trim() lTrim() rTrim()校验字符串是
  •     在网上游荡,看着别人的精彩主页难免心里痒痒的,但自己精心布置的家(个人主页),如果在不同的浏览器中呈现
  • 高层的期望“3个月内,我希望网站能增加X注册用户,每日的独立IP到Y,网站盈利达到Z……”作为一个团队的领袖或者产品负责人,这样的期望是根据
  • 很简单的方法,但很实用。用过新浪邮箱的朋友应该会知道此脚本的效果。如果您提交的数据处理时间很长,用这个做为提示很不错的.将下面的代码复制到&
  • 当浏览网页时,总有那么一类网站华丽而富有趣味性。在浏览信息的同时,足够让我们眼前一亮。它们在充分融入动画、视频、游戏、甚至是与众不同的交互操
手机版 网络编程 asp之家 www.aspxhome.com