[发明专利]基于XML模式的数据绑定应用程序接口生成方法无效

专利信息
申请号: 200810112277.8 申请日: 2008-05-22
公开(公告)号: CN101339500A 公开(公告)日: 2009-01-07
发明(设计)人: 李涓子;王峰;张鹏;李军;陈德伟;唐杰 申请(专利权)人: 清华大学
主分类号: G06F9/44 分类号: G06F9/44;G06F17/22;G06F17/30
代理公司: 北京众合诚成知识产权代理有限公司 代理人: 朱琨
地址: 100084北*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 xml 模式 数据 绑定 应用程序 接口 生成 方法
【说明书】:

技术领域

发明属于xml数据绑定或代码自动生成领域。

背景技术

数据绑定技术提供了一种简单而直接的方法,使得可以在Java、C++等平台应用程序中高效的使用XML、Database等各种非结构化的数据源。通过数据绑定,应用程序可以在一定程度上忽略XML文件的实际结构和数据库中存储表的结构等因素的制约,而直接使用通过绑定的代码来访问数据内容。在读写文件时,一些特殊类型的数据(譬如数字和日期)可以被转换成程序语言中存在的类型形式,而不是保留为文本形式,这使应用程序可以更方便、有效地使用数据本身,而不用过多的关心其所采取的存储和表示方式。

目前市场上有很多技术产品都实现了对于XML数据绑定的支持。但是它们各自所能支持的Schema特性以及生成的目标代码种类上有十分巨大的差别。当需要进行数据绑定的Schema足够的简单和短小时,很多开源技术就可以满足要求。但是当需要进行数据绑定的Schema文档包含复杂特性(如extensions、restrictions、substitution groups等)的时候,现有的大多数开源技术就无法进行完全的支持。由Apache基金所支持的XMLBean项目而言,虽然它可以支持大多数复杂的Schema结构,但是在利用XMLBean进行数据绑定时,目前还没有有效的方法来达到对生成API方法的增加和修改等操作,这导致当用户需要生成高度可定制的API时,XMLBean也无法胜任;另外XMLBean只支持生成Java平台下的API,这就使得很多基于其它平台的应用程序无法直接使用。在C++平台下这些问题表现更为突出。

针对这些问题以及实际存在的复杂XMLschema规范,本发明提出了一种自动生成用于操作符合XML Schema规范的XML文件的数据绑定API的方法。该方法以数据绑定技术为基础,首先生成一套与生成目标语言类型无关的中间配置层,然后通过附加独立的目标代码生成引擎生成所需类型目标代码。在进行数据绑定时,通过如下方式进行:采用以Dom结构存储数据,在生成代码的类中封装Dom结点的私有成员变量指针(或引用),并在类的方法中通过Dom指针(或引用)完成对数据的操作;在最顶层添加API顶层类,并实现save和load方法用以对XML文件的进行存储操作,完成对象与XML文本的转换。

发明内容

本发明的目的在于提供一种依据复杂XML schema模式,生成操作符合该schema模式的XML文件的数据绑定应用程序接口方法。

本发明的特征在于:

步骤1,使用JaxMeXS解析器,对输入到计算机中的可扩展宏语言XML Schema模式做语法解析和逻辑解析,生成SchemaElement和SchemaDataType类型的对象,在其中记录与Schema相关的所有信息,其中至少包括子元素列表,属性列表以及父类型名称:

步骤1.1,语法解析:记录所有在Schema中定义的数据类型datatype,存入到syntax_map中,并单独记录abstract属性为true的datatype,存入到abstract_map中;

步骤1.2,逻辑解析:对Schema进行逻辑解析,对于其中定义的元素、数据类型分别生成SchemaElement和SchemaDataType类型的对象,并在其中记录与Schema相关的所有信息,各自形成一个信息详单,数据项中含有子结点名、类型以及约束信息;

对于所有的element,在所述记录信息中,包含有根据Schema中定义来设置的SchemaElement对象成员变量或成员变量值,以及生成代码所需的所有Schema信息,并把生成的对象添加到_element列表中;

对于所有的数据类型datatype,在所述记录信息中,除了根据schema中的定义设置的成员变量或成员变量值以及生成代码所需的所有schema信息外,当该datatype是通过其他数据类型经过扩展或者约束修饰而来,则要在parent_map中记录两种数据类型之间的继承关系,即被扩展或约束的类型为本类型的父类型,并把生成的对象添加到_datatype列表;所属子元素列表至少包含子元素名称、类型、以及允许出现次数;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200810112277.8/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top