[发明专利]一种基于DXF文件格式的读取与XML转换的方法无效

专利信息
申请号: 201010271291.X 申请日: 2010-09-02
公开(公告)号: CN101944080A 公开(公告)日: 2011-01-12
发明(设计)人: 班晓娟;龙永霞 申请(专利权)人: 北京科技大学
主分类号: G06F17/22 分类号: G06F17/22;G06F17/50
代理公司: 北京东方汇众知识产权代理事务所(普通合伙) 11296 代理人: 刘淑芬
地址: 100083*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 一种基于DXF文件格式的读取与XML转换的方法,涉及使用CAD工程制图的各类工程技术领域,本方法把DXF文件结构当作一种形式语言来处理,使用3型文法描述DXF文件结构,使用有限状态自动机对DXF文件内容进行识别,即顺序读入DXF文件的字符,一对组码和组值为一组,按组循环,根据读入的组码和组值,进行事件推进,状态转移以及事件处理,输出XML格式的文件,直到文件读入字符为EOF。这就进行了DXF格式到XML格式的转换。本发明能够有效的处理非标准的DXF文件,具有通用性、灵活性、可扩充性和可移植性。转换后的XML文件格式良好,结构清晰,使得用户专用软件,各类工程软件进行有效数据的提取变得十分简易,不必花费大量时间研究DXF组码和组值结构,降低了开发成本。
搜索关键词: 一种 基于 dxf 文件格式 读取 xml 转换 方法
【主权项】:
一种基于DXF文件格式的读取与XML转换的方法,其特征在于:使用3型文法对DXF格式进行描述,使用有限状态自动机根据状态转换图对DXF文件进行解析,在事件发生,状态转移之时,进行事件处理,输出XML格式;其中DXF实体段的五元表达式为M=({ROOT,SECTION,ENTITIES,ENTITY,ENTITYPROPERTY},{(0,SECTION),(2,ENTITY),(0,*),(100,ACDB*),(0,ENDSEC)},f,ROOT,{ROOT});上面五元表达式中每个变元的具体含义如下:1){ROOT,SECTION,ENTITIES,ENTITY,ENTITYPROPERTY}代表了五个不同的状态,每一状态都作为程序中状态类的一个具体实例;ROOT为根状态,SECTION为DXF文件结构中的一个段,ENTITIES为DXF文件结构中具体的段结构,,ENTITY为具体的图元类型,ENTITYPROPERTY为子类;2){(0,SECTION),(2,ENTITY),(0,*),(100,ACDB*),(0,ENDSEC)}代表了五个不同的状态转移事件;3)f代表了状态转换函数,状态集合用Q表示,输入字符集合用∑表示,状态转换函数是QX∑到Q的映射;4)ROOT代表了整个有限状态自动机的起始状态;5){ROOT}代表了整个有限状态自动机的终态集合;实现有限状态自动机对DXF文件进行解析转换,使用相应的数据结构存储状态,事件以及状态转换函数;在事件发生之时,进行事件处理,事件处理中需要输出XML格式,因此结合XML格式有开始标签必须有结束标签的特性,利用栈的先进后出的原理,使用栈记录向子节点移动的深度,以及每一层的状态,出栈时结束标签,实现XML格式的有效性;方法步骤如下:步骤一:初始化状态集、事件集、状态转换函数集,以当前状态为开始状态ROOT;步骤二:从DXF文件读入一对组值组码,触发事件的产生;步骤三:根据当前状态和步骤二中读入的组值组码,在当前状态的状态转换函数集中找到下一状态,进行状态转移,把下一状态作为新的当前状态,并且调用事件处理类进行事件处理;步骤四:循环执行步骤二、步骤三,直到文件读入字符为EOF时,执行步骤五:步骤五:程序结束,输出XML文件;所述的状态集为状态的集合,状态包括:唯一标识名字Name;状态转换函数集nextStateTable;所述的事件集为事件的集合,事件包括组码和组值;所述的状态转换函数集为状态转换函数的集合,状态转换函数包括:下一状态名StateName,事件处理类型Type;StateName:记录下一状态;Type:type为1时,进栈,输出开始标签;type为2时,出栈,输出闭合标签;type为3时,先输出闭合标签,在输出开始标签,栈不动;type为4时,无动作;所述的事件处理:用作事件处理,决定着输出的格式;事件处理需要输入参数:组码组值,事件处理类型type,下一状态;当type=1时,从父节点状态向子节点状态转移时,子节点状态进栈,同时输出该子节点在xml文件中的开始标签,标签名为状态名字;从前列状态向后续状态移动,状态转移的同时读取组码、组值、状态名,并将这三者分别压入对应的堆栈中,同时输出该状态对应在xml文件中的开始标签,标签名为状态名字,,其中VARIABLE状态比较特别,他不会作为标签名,而是以对应该状态的组码值作为标签名;当type=2时,从子节点状态向祖先节点状态转移时,出栈,同时输出当前出栈状态在XML文件中的闭合标签;循环出栈,直到该祖先状态出栈为止;从后续状态向前列状态移动,状态转移的同时将组码、组值、状态名对应的堆栈中的信息弹出,同时输出该状态对应在xml文件中的闭合标签;当type=3时,在一个状态转移到自身时,输出前一状态的内容,再输出前一状态在XML文件中的闭合标签,再输出当前状态在XML文件中的开始标签,栈不动;在同一状态自身循环移动,状态转移的同时将前一状态对应的组码、组值、状态名对应的堆栈中的信息弹出,同时输出该子节点在xml文件中的闭合标签,再读取下一状态的组码、组值、状态名,并将这三者分别压入对应的堆栈中,同时输出该状态对应在在xml文件中的开始标签,标签名为状态名字,其中VARIABLE状态比较特别,他不会作为标签名,而是以对应该状态的组码值作为标签名。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

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

本文链接:http://www.vipzhuanli.com/patent/201010271291.X/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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