CN114416104B - 一种结构化数据文件处理方法及装置 - Google Patents
一种结构化数据文件处理方法及装置 Download PDFInfo
- Publication number
- CN114416104B CN114416104B CN202210321435.0A CN202210321435A CN114416104B CN 114416104 B CN114416104 B CN 114416104B CN 202210321435 A CN202210321435 A CN 202210321435A CN 114416104 B CN114416104 B CN 114416104B
- Authority
- CN
- China
- Prior art keywords
- style interface
- index
- interface
- structured data
- early
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种结构化数据文件处理方法及装置,其中,结构化数据文件处理方法包括:通过根据模式定义文件、第一索引以及各领域对象定义信息之间的关系,建立各模式定义文件的早绑定风格接口,并根据早绑定风格接口的代码计算并集建立兼容风格接口;在对数据文件进行解析处理时,通过待解析结构化数据文件中各领域对象的实例信息建立第二索引,通过第二索引和兼容风格接口与之前建立的早绑定风格接口进行匹配,再通过早绑定风格接口调用晚绑定风格接口对待解析结构化数据文件进行读\写操作,实现对结构化底层数据进行直接操作,并最终克服了早绑定方式和晚绑定方式各自的问题,实现了在结构化领域数据解析过程中对数据的快速解析处理。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种结构化数据文件处理方法及装置。
背景技术
结构化领域数据是一类具有明确模式定义文件的数据,在模式定义文件中规定了领域对象的类型及其具有的数据字段,在进行结构化领域数据文件解析时有两种解析方式,一种为早绑定(early bound),另一种为晚绑定(late bound),但两种解析方式均需要引用数据文件对应的某一个版本的模式定义文件。早绑定方式是在编译之前加载模式定义文件,通过提供面向领域对象的接口,将模式定义文件中的领域对象定义转化为程序中的领域数据定义,在运行时将结构化数据转化为领域数据实例,提供面向领域对象的接口,但是由于早绑定方式无法对结构化底层数据进行直接操作,因此存在额外计算和重复内存使用的问题;而晚绑定方式是在运行时加载模式定义文件,根据模式定义文件中的领域对象定义进行动态的数据查询与访问,提供结构化数据访问接口,能直接对结构化数据进行操作,但存在编程接口使用复杂、缺少编译期类型检查的问题。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中的由于早绑定方式和晚绑定方式存在各自的缺陷,导致在结构化领域数据解析过程中无法快速对数据进行解析处理的缺陷,从而提供一种结构化数据文件处理方法及装置。
根据第一方面,本发明实施例提供了一种结构化数据文件处理方法,所述方法包括:
获取模式定义文件集合,所述模式定义文件集合中包含多个模式定义文件;
基于各所述模式定义文件,分别建立各所述模式定义文件对应的第一索引;
基于所述第一索引,提取各所述模式定义文件中各领域对象的定义信息;
基于所述第一索引和所述定义信息,建立各所述模式定义文件对应的早绑定风格接口;
基于所述各领域对象对应的所述定义信息计算各早绑定风格接口对应代码的并集以建立兼容风格接口;
获取待解析结构化数据文件,并基于所述待解析结构化数据文件中各领域对象的实例信息建立所述待解析结构化数据文件的第二索引;
调用所述兼容风格接口,以使所述兼容风格接口调用与所述第二索引对应的早绑定风格接口通过晚绑定风格接口对所述待解析结构化数据文件进行读\写操作。
可选地,所述基于所述第一索引和所述定义信息,建立各所述模式定义文件对应的早绑定风格接口,包括:
基于当前模式定义文件对应的第一索引,生成所述当前模式定义文件的早绑定风格代码;
编译所述早绑定风格代码,建立所述当前模式定义文件对应的早绑定风格接口。
可选地,所述基于所述各领域对象对应的所述定义信息计算各早绑定风格接口对应代码的并集以建立兼容风格接口,包括:
基于所述各领域对象对应的所述定义信息分别计算各模式定义文件对应的早风格接口代码的相同字段和差异字段;
基于所述早绑定风格接口代码的相同字段和差异字段,计算得到所述各早绑定风格接口对应代码的并集;
基于所述各早绑定风格接口对应代码的并集,生成兼容风格接口代码;
编译所述兼容风格接口代码,建立所述兼容风格接口。
可选地,所述调用所述兼容风格接口,以使所述兼容风格接口调用与所述第二索引对应的早绑定风格接口通过晚绑定风格接口对所述待解析结构化数据文件进行读\写操作,包括:
获取当前领域对象对应的第二索引;
基于所述当前领域对象对应的第二索引,筛选确定目标模式定义文件和目标早绑定风格接口;
基于所述兼容风格接口调用所述目标早绑定风格接口,以调用晚绑定风格接口对所述待解析结构化数据文件中的当前领域对象进行读\写操作。
可选地,所述基于所述当前领域对象对应的第二索引,筛选确定目标模式定义文件和目标早绑定风格接口,包括:
获取当前模式定义文件的第一索引;
判断所述当前领域对象对应的第二索引是否与所述当前模式定义文件对应的第一索引相一致;
当所述当前领域对象对应的第二索引与所述当前模式定义文件对应的第一索引相一致时,将所述当前模式定义文件确定为目标模式定义文件,并所述目标模式定义文件对应的早绑定风格接口确定为目标早绑定风格接口。
可选地,在调用所述兼容风格接口之前,所述方法还包括:
获取用户的接口选择要求;
在所述接口选择要求为所述兼容风格接口时,将各领域对象对应的实例信息输入至所述兼容风格接口。
可选地,所述方法还包括:
在所述接口选择要求为所述晚绑定风格接口时,将各领域对象的第二索引输入所述晚绑定风格接口,以对所述待解析结构化数据文件进行读\写操作。
根据第二方面,本发明实施例提供了一种结构化数据文件处理装置,所述装置包括:
获取模块,用于获取模式定义文件集合,所述模式定义文件集合中包含多个模式定义文件;
第一处理模块,用于基于各所述模式定义文件,分别建立各所述模式定义文件对应的第一索引;
第二处理模块,用于基于所述第一索引,提取各所述模式定义文件中各领域对象的定义信息;
第三处理模块,用于基于所述第一索引和所述定义信息,建立各所述模式定义文件对应的早绑定风格接口;
第四处理模块,用于基于所述各领域对象对应的所述定义信息计算各早绑定风格接口对应代码的并集以建立兼容风格接口;
第五处理模块,用于获取待解析结构化数据文件,并基于所述待解析结构化数据文件中各领域对象的实例信息建立所述待解析结构化数据文件的第二索引;
选择模块,用于调用所述兼容风格接口,以使所述兼容风格接口调用与所述第二索引对应的早绑定风格接口,并基于晚绑定风格接口对所述待解析结构化数据文件进行读\写操作。
根据第三方面,本发明实施例提供了一种电子设备,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
本发明技术方案,具有如下优点:
本发明提供的结构化数据文件处理方法及装置,通过获取模式定义文件集合,所述模式定义文件集合中包含多个模式定义文件;基于各所述模式定义文件,分别建立各所述模式定义文件对应的第一索引;基于所述第一索引,提取各所述模式定义文件中各领域对象的定义信息;基于所述第一索引和所述定义信息,建立各所述模式定义文件对应的早绑定风格接口;基于所述各领域对象对应的所述定义信息计算各早绑定风格接口对应代码的并集以建立兼容风格接口;获取待解析结构化数据文件,并基于所述待解析结构化数据文件中各领域对象的实例信息建立所述待解析结构化数据文件的第二索引;调用所述兼容风格接口,以使所述兼容风格接口调用与所述第二索引对应的早绑定风格接口通过晚绑定风格接口对所述待解析结构化数据文件进行读\写操作。通过根据模式定义文件、第一索引以及各领域对象定义信息之间的关系,建立各模式定义文件的早绑定风格接口,并根据早绑定风格接口的代码计算并集建立兼容风格接口,通过此过程不仅避免了编程接口使用复杂的情况,还可对编译过程进行检查;在对数据文件进行解析处理时,通过待解析结构化数据文件中各领域对象的实例信息建立第二索引,通过第二索引和兼容风格接口与之前建立的早绑定风格接口进行匹配,再通过早绑定风格接口调用晚绑定风格接口对待解析结构化数据文件进行读\写操作,由于事先已建立各模式定义文件的第一索引并提取各领域对象的定义信息,避免了在处理待解析结构化数据文件过程中需要重新加载模式定义文件,大幅减少了额外计算和重复内存,与此同时,基于早绑定风格接口对晚绑定风格接口进行调用,从而实现对结构化底层数据进行直接操作,并最终克服了早绑定方式和晚绑定方式各自的问题,实现了在结构化领域数据解析过程中对数据的快速解析处理。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的结构化数据文件处理方法的流程图;
图2为本发明实施例的结构化数据文件处理方法的整体结构与依赖关系示意图;
图3为本发明实施例的结构化数据文件处理方法的编译流程图;
图4为本发明实施例的结构化数据文件处理方法的运行流程图;
图5为本发明实施例的结构化数据文件处理装置的结构示意图;
图6为本发明实施例的一种电子设备的结构示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”、“第四”、“第五”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明实施例提供了一种结构化数据文件处理方法,如图1所示,该结构化数据文件处理方法具体包括如下步骤:
步骤S101:获取模式定义文件集合,模式定义文件集合中包含多个模式定义文件。
具体地,在实际应用中,结构化领域数据是具有明确模式定义文件的数据,常见的方法有“XML数据-XSD模式定义”“Json数据-JsonSchema模式定义”“STEP数据-Express模式定义”“RDF数据-RDFS模式定义”等。在模式定义文件中规定了领域对象的类型及其具有的数据字段;结构化领域数据文件均需要引用某一个版本的模式定义文件,每条结构化领域数据都是模式定义中某种领域对象类型的一个实例,因此在在进行接口编译过程中,首先需要对结构化数据文件的模式定义文件进行获取,为实现对结构化数据的快速处理,本发明实施例通过获取模式定义文件集合,对每个版本的模式定义文件均进行获取,为后续引用某一版本的模式定义文件奠定了文件基础。具体地,模式定义文件也可以为字符串流。
步骤S102:基于各模式定义文件,分别建立各模式定义文件对应的第一索引。
具体地,在实际应用中,模式定义文件中的第一索引为领域对象定义的索引,索引形式可以为内存对象、数据库等,支持查询领域对象类型、字段、存储位置等信息。
步骤S103:基于第一索引,提取各模式定义文件中各领域对象的定义信息。具体地,在实际应用中,通过模式定义文件的第一索引,可以获取模式定义文件中的各领域对象的定义信息,后续进行结构化数据处理时,无需再次加载模式定义文件,避免重新加载模式定义文件,大幅减少了额外计算和重复内存。
步骤S104:基于第一索引和定义信息,建立各模式定义文件对应的早绑定风格接口。
具体地,在实际应用中,现有的结构化数据处理接口分别为早绑定风格接口和晚绑定风格接口,其中,晚绑定风格接口作为对结构化数据进行读写的访问接口,虽然可读取结构化数据存储器中的底层数据(如数值、字符串值等),但是晚绑定风格接口是在运行时加载模式定义文件,根据模式定义文件中的领域对象定义进行动态的数据查询与访问,提供结构化数据访问接口,虽然能直接对结构化数据进行操作,但存在编程接口使用复杂、缺少面向领域对象的接口,缺少编译期类型检查、缺少集成开发环境(IDE)支持等缺点。而早绑定风格接口是在编译之前加载模式定义文件,将模式定义文件中的领域对象定义转化为程序中的领域数据定义,在运行时将结构化数据转化为领域数据实例,提供面向领域对象的接口,可提供编译期类型检查与IDE支持。
本发明实施例通过在编译过程中建立各模式定义文件的早绑定风格接口,提供早绑定风格的面向领域对象的接口,简化编程接口使用,具备编译期类型检查与IDE支持,同时,由于早绑定风格接口仅提供方法而不存储数据,避免了数据加载过程中的额外计算与重复内存使用,保证了底层数据的一致性,为后续提高结构化数据处理速度奠定了基础。
具体地,在一实施例中,上述步骤S104具体包括如下步骤:
步骤S201:基于当前模式定义文件对应的第一索引,生成当前模式定义文件的早绑定风格代码。
步骤S202:编译早绑定风格代码,建立当前模式定义文件对应的早绑定风格接口。
具体地,在实际应用中,本发明实施例通过获取当前模式定义文件,并根据当前模式定义文件对应的第一索引,建立当前模式定义文件的早绑定风格接口,在提供面向领域对象的接口的同时,还提供了编译期类型检查与IDE支持。
具体地,本发明实施例中每个模式定义文件各自对应一个早绑定风格接口,方便用户进行灵活选择。
步骤S105:基于各领域对象对应的定义信息计算各早绑定风格接口对应代码的并集以建立兼容风格接口。
具体地,在一实施例中,上述步骤S105具体包括如下步骤:
步骤S301:基于各领域对象对应的定义信息分别计算各模式定义文件对应的早风格接口代码的相同字段和差异字段。
步骤S302:基于早绑定风格接口代码的相同字段和差异字段,计算得到各早绑定风格接口对应代码的并集。
步骤S303:基于各早绑定风格接口对应代码的并集,生成兼容风格接口代码。
步骤S304:编译兼容风格接口代码,建立兼容风格接口。
具体地,在实际应用中,由于各模式定义文件的版本不同,当用户对待解析结构化数据文件进行数据处理时,可能会出现需要调用多个模式定义文件的情况,若一个个进行模式定义文件的确认,步骤十分繁琐且需要花费大量时间,本发明实施例建立的兼容风格接口,针对多个不同模式定义文件中的领域对象定义以及跨多版本模式定义中具有相同标签名称的领域对象类型,对其中的相同字段进行合并,对差异字段生成用于运行时判断内容的代码,并自动调用适配的早绑定风格接口,在保证迅速找到对应模式定义文件的同时,减少了用户需要对早绑定风格接口进行选择的过程,大幅提高对结构化数据进行处理的速度。
步骤S106:获取待解析结构化数据文件,并基于待解析结构化数据文件中各领域对象的实例信息建立待解析结构化数据文件的第二索引。
具体地,在实际应用中,结构化领域数据文件需要引用某一个版本的模式定义文件,每条结构化领域数据都是模式定义文件中某种领域对象类型的一个实例。结构化数据文件也可以是字符串流。本发明实施例根据各领域对象的实例信息建立待解析数据文件的第二索引,第二索引为结构化数据文件中各领域对象的实例索引。
步骤S107:调用兼容风格接口,以使兼容风格接口调用与第二索引对应的早绑定风格接口通过晚绑定风格接口对待解析结构化数据文件进行读\写操作。
具体地,在实际应用中,本发明实施例提供了三种风格接口,分别为早绑定风格接口、晚绑定风格接口以及兼容风格接口,优选地,本发明实施例提供的早绑定风格接口数量与模式定义文件数量一致,晚绑定风格接口和兼容风格接口各一个,但实际情况不限于此,为提高结构化数据文件处理效率而进行早绑定风格接口或晚绑定风格接口或兼容风格接口数量的改变,也在本发明实施例提供的结构化数据文件处理方法的保护范围之内。
具体地,当调用兼容风格接口时,程序会调用与第二索引对应的早绑定风格接口,通过在早绑定风格接口底层调用晚绑定风格接口对待解析结构化数据文件进行读\写操作。
具体地,在一实施例中,上述步骤S107具体包括如下步骤:
步骤S401:获取当前领域对象对应的第二索引。
步骤S402:基于当前领域对象对应的第二索引,筛选确定目标模式定义文件和目标早绑定风格接口。
具体地,在实际应用中,本发明实施例基于待解析结构化数据文件中领域对象对应的实例索引和事先存储的各模式定义文件中的定义索引进行匹配,当实例索引与定义索引匹配成功时,该定义索引对应的模式定义文件即为目标模式定义文件,该模式定义文件对应的早绑定风格接口即为目标早绑定风格接口。
具体地,在一实施例中,上述步骤S402具体包括如下步骤:
步骤S501:获取当前模式定义文件的第一索引。
步骤S502:判断当前领域对象对应的第二索引是否与当前模式定义文件对应的第一索引相一致。
步骤S503:当当前领域对象对应的第二索引与当前模式定义文件对应的第一索引相一致时,将当前模式定义文件确定为目标模式定义文件,并目标模式定义文件对应的早绑定风格接口确定为目标早绑定风格接口。
步骤S403:基于兼容风格接口调用目标早绑定风格接口,以调用晚绑定风格接口对待解析结构化数据文件中的当前领域对象进行读\写操作。
具体地,在实际应用中,早绑定风格在运行时虽然可以将结构化数据转化为领域数据实例、提供面向领域对象的接口,但早绑定风格接口对结构化数据的容错性较差,不能直接操作结构化底层数据从而缺少灵活性,缺少跨多版本模式定义中领域对象定义的同时支持;此外,将结构化底层数据转化为领域数据实例时,会有额外计算与重复内存使用。本发明实施例基于兼容风格接口调用目标早绑定风格接口,再通过在目标早绑定风格接口的底层调用晚绑定风格接口对当前的领域对象进行读\写操作,在借助早绑定风格接口处理数据优势的同时,规避了早绑定风格接口的缺点,提高了整体数据处理速度。
具体地,在一实施例中,在执行上述步骤S107之前,还包括如下步骤:
步骤S601:获取用户的接口选择要求。本发明实施例提供了三种风格接口,包括:早绑定风格接口、晚绑定风格接口和兼容风格接口,用户可根据自身需要进行风格接口的选择,从而更加灵活地对数据进行后续操作。
步骤S602:在接口选择要求为兼容风格接口时,将各领域对象对应的实例信息输入至兼容风格接口。
具体地,在一实施例中,在执行上述步骤S601之后,还包括如下步骤:
步骤S603:在接口选择要求为晚绑定风格接口时,将各领域对象的第二索引输入晚绑定风格接口,以对待解析结构化数据文件进行读\写操作。
具体地,在实际应用中,用户也可以直接调用晚绑定风格接口对待解析结构化数据文件进行读\写操作,本发明实施例在进行结构化数据文件处理方法优化的同时,还提供了晚绑定风格接口,基于晚绑定风格接口对结构化数据有良好容错能力与灵活性的优势,在实现对结构化数据文件快速处理的同时,还具备一定的灵活性,可满足用户的多种需求。
具体地,在实际应用中,模式定义文件集合内也可能只有一个模式定义文件,当只有一个模式定义文件时,本发明实施例通过建立第一索引生成当前模式定义文件的早绑定风格代码,编译该早绑定风格代码生成早绑定风格接口。当待解析结构化数据文件已知与编译的模式定义文件相匹配时,只需通过早绑定风格接口调用晚绑定风格接口,即可实现对待解析结构化数据文件的读\写操作。
通过执行上述步骤,本发明实施例提供的结构化数据文件处理方法,通过获取模式定义文件集合,模式定义文件集合中包含多个模式定义文件;基于各模式定义文件,分别建立各模式定义文件对应的第一索引;基于第一索引,提取各模式定义文件中各领域对象的定义信息;基于第一索引和定义信息,建立各模式定义文件对应的早绑定风格接口;基于各领域对象对应的定义信息计算各早绑定风格接口对应代码的并集以建立兼容风格接口;获取待解析结构化数据文件,并基于待解析结构化数据文件中各领域对象的实例信息建立待解析结构化数据文件的第二索引;调用兼容风格接口,以使兼容风格接口调用与第二索引对应的早绑定风格接口通过晚绑定风格接口对待解析结构化数据文件进行读\写操作。通过根据模式定义文件、第一索引以及各领域对象定义信息之间的关系,建立各模式定义文件的早绑定风格接口,并根据早绑定风格接口的代码计算并集建立兼容风格接口,通过此过程不仅避免了编程接口使用复杂的情况,还可对编译过程进行检查;在对数据文件进行解析处理时,通过待解析结构化数据文件中各领域对象的实例信息建立第二索引,通过第二索引和兼容风格接口与之前建立的早绑定风格接口进行匹配,再通过早绑定风格接口调用晚绑定风格接口对待解析结构化数据文件进行读\写操作,由于事先已建立各模式定义文件的第一索引并提取各领域对象的定义信息,避免了在处理待解析结构化数据文件过程中需要重新加载模式定义文件,大幅减少了额外计算和重复内存,与此同时,基于早绑定风格接口对晚绑定风格接口进行调用,从而实现对结构化底层数据进行直接操作,并最终克服了早绑定方式和晚绑定方式各自的问题,实现了在结构化领域数据解析过程中对数据的快速解析处理。
下面将结合具体应用示例,对本发明实施例提供的结构化数据文件处理方法进行详细的说明。
结合图1-图4所示,本发明实施例提供了一种结构化数据文件处理方法,各组成部分如下:
(1)结构化数据分词器:结构化数据的加载与处理模块,将结构化数据格式的字符串流转化为结构化数据结构的内容,具有词法解析、语法解析、Unicode编码转换功能。
(2)结构化数据存储器:结构化数据中的数据条目及其中内容在程序运行时的存储方式及索引,可以为内存对象、数据库等形式。
(3)晚绑定风格接口:对结构化数据进行读写的访问接口,可读取结构化数据存储器中的底层数据(如数值、字符串值等);在运行时通过查询模式定义文件获取领域对象类型、字段及其存储位置信息,并在结构化数据存储器中执行读写操作。
(4)早绑定风格接口:根据某特定版本模式定义中的领域对象定义,提供的面向领域对象的数据读写接口,将底层数据的读写操作封装为领域对象数据实例的操作;领域对象数据实例内部不额外存储数据,所有操作通过在早绑定风格接口的底层调用晚绑定风格接口实现。
(5)跨多版本模式定义兼容接口:针对多个不同中的领域对象定义,针对跨多版本模式定义中具有相同标签名称的领域对象类型,对其中的相同字段进行合并,对差异字段生成用于运行时判断内容的代码,并自动调用适配的早绑定风格接口。
(6)模式定义文件分词器:模式定义文件的加载与处理模块,将模式定义文件格式的字符串流转化为模式定义文件查询器的内容,具有词法解析、语法解析、Unicode编码转换功能。
(7)模式定义文件查询器:模式定义文件中的领域对象定义的索引,可以为内存对象、数据库等形式,支持查询领域对象类型、字段、存储位置等信息。
(8)早绑定代码生成器:基于模式定义文件查询器的功能,针对每种领域对象类型具有的字段,自动查找其在结构化数据存储器中的存储位置,并生成自动调用晚绑定风格接口的代码,形成早绑定风格接口。
(9)兼容代码生成器:针对跨多版本模式定义中具有相同标签名称的领域对象类型,对其中的相同字段进行合并,对差异字段生成用于运行时判断数据类型的代码,并自动调用适配版本的早绑定风格接口,形成跨多版本模式定义接口。
1、编译流程:
如图3所示,基于模式定义文件分词器,加载一个或多个模式定义文件(或字符串流);基于模式定义文件查询器,建立对每个模式定义文件中的领域对象定义索引;基于代码生成器,针对每个模式定义文件生成对应的早绑定风格接口的代码并计算所有早绑定风格接口的相同字段与差异字段、生成跨多版本模式定义兼容接口的代码;对代码进行编译,生成早绑定风格接口与跨多版本模式定义兼容接口的可执行程序。
2、运行流程:
如图4所示,基于结构化数据分词器,加载结构化数据文件(或字符串流);基于结构化数据存储器,存储结构化数据并建立实例索引;基于晚绑定风格接口,调用时根据模式定义文件查询器提供的信息,在结构化数据存储器中执行读写操作;基于早绑定风格接口,将领域对象数据实例的操作转化为晚绑定风格接口调用,可脱离模式定义文件查询器单独运行;基于跨多版本模式定义兼容接口,运行时判断数据类型并自动调用适配的早绑定风格接口。
通过进行早绑定风格接口、晚绑定风格接口和兼容风格接口的建立和调用,在避免处理待解析结构化数据文件过程中需要重新加载模式定义文件、大幅减少了额外计算和重复内存的同时,基于早绑定风格接口对晚绑定风格接口进行调用,还实现了对结构化底层数据进行直接操作,最终克服了早绑定方式和晚绑定方式各自的问题,实现了在结构化领域数据解析过程中对数据的快速解析处理。
本发明实施例提供了一种结构化数据文件处理装置,如图5所示,该结构化数据文件处理装置包括:
获取模块101,用于获取模式定义文件集合,模式定义文件集合中包含多个模式定义文件。详细内容参见上述方法实施例中步骤S101的相关描述,在此不再进行赘述。
第一处理模块102,用于基于各模式定义文件,分别建立各模式定义文件对应的第一索引。详细内容参见上述方法实施例中步骤S102的相关描述,在此不再进行赘述。
第二处理模块103,用于基于第一索引,提取各模式定义文件中各领域对象的定义信息。详细内容参见上述方法实施例中步骤S103的相关描述,在此不再进行赘述。
第三处理模块104,用于基于第一索引和定义信息,建立各模式定义文件对应的早绑定风格接口。详细内容参见上述方法实施例中步骤S104的相关描述,在此不再进行赘述。
第四处理模块105,用于基于各领域对象对应的定义信息计算各早绑定风格接口对应代码的并集以建立兼容风格接口。详细内容参见上述方法实施例中步骤S105的相关描述,在此不再进行赘述。
第五处理模块106,用于获取待解析结构化数据文件,并基于待解析结构化数据文件中各领域对象的实例信息建立待解析结构化数据文件的第二索引。详细内容参见上述方法实施例中步骤S106的相关描述,在此不再进行赘述。
选择模块107,用于调用兼容风格接口,以使兼容风格接口调用与第二索引对应的早绑定风格接口,并基于晚绑定风格接口对待解析结构化数据文件进行读\写操作。详细内容参见上述方法实施例中步骤S107的相关描述,在此不再进行赘述。
上述的结构化数据文件处理装置的更进一步描述参见上述结构化数据文件处理方法实施例的相关描述,在此不再进行赘述。
通过上述各个组成部分的协同合作,本发明实施例提供的结构化数据文件处理装置,通过根据模式定义文件、第一索引以及各领域对象定义信息之间的关系,建立各模式定义文件的早绑定风格接口,并根据早绑定风格接口的代码计算并集建立兼容风格接口,通过此过程不仅避免了编程接口使用复杂的情况,还可对编译过程进行检查;在对数据文件进行解析处理时,通过待解析结构化数据文件中各领域对象的实例信息建立第二索引,通过第二索引和兼容风格接口与之前建立的早绑定风格接口进行匹配,再通过早绑定风格接口调用晚绑定风格接口对待解析结构化数据文件进行读\写操作,由于事先已建立各模式定义文件的第一索引并提取各领域对象的定义信息,避免了在处理待解析结构化数据文件过程中需要重新加载模式定义文件,大幅减少了额外计算和重复内存,与此同时,基于早绑定风格接口对晚绑定风格接口进行调用,从而实现对结构化底层数据进行直接操作,并最终克服了早绑定方式和晚绑定方式各自的问题,实现了在结构化领域数据解析过程中对数据的快速解析处理。
本发明实施例提供了一种电子设备,如图6所示,该电子设备包括处理器901和存储器902,存储器902和处理器901之间互相通信连接,其中处理器901和存储器902可以通过总线或者其他方式连接,图6中以通过总线连接为例。
处理器901可以为中央处理器(Central Processing Unit,CPU)。处理器901还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器901的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,实现的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (10)
1.一种结构化数据文件处理方法,其特征在于,包括:
获取模式定义文件集合,所述模式定义文件集合中包含多个模式定义文件;
基于各所述模式定义文件,分别建立各所述模式定义文件对应的第一索引;
基于所述第一索引,提取各所述模式定义文件中各领域对象的定义信息;
基于所述第一索引和所述定义信息,建立各所述模式定义文件对应的早绑定风格接口;
基于所述各领域对象对应的所述定义信息计算各早绑定风格接口对应代码的并集以建立兼容风格接口;
获取待解析结构化数据文件,并基于所述待解析结构化数据文件中各领域对象的实例信息建立所述待解析结构化数据文件的第二索引;
调用所述兼容风格接口,以使所述兼容风格接口调用与所述第二索引对应的早绑定风格接口通过晚绑定风格接口对所述待解析结构化数据文件进行读\写操作。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一索引和所述定义信息,建立各所述模式定义文件对应的早绑定风格接口,包括:
基于当前模式定义文件对应的第一索引,生成所述当前模式定义文件的早绑定风格代码;
编译所述早绑定风格代码,建立所述当前模式定义文件对应的早绑定风格接口。
3.根据权利要求2所述的方法,其特征在于,所述基于所述各领域对象对应的所述定义信息计算各早绑定风格接口对应代码的并集以建立兼容风格接口,包括:
基于所述各领域对象对应的所述定义信息分别计算各模式定义文件对应的早风格接口代码的相同字段和差异字段;
基于所述早绑定风格接口代码的相同字段和差异字段,计算得到所述各早绑定风格接口对应代码的并集;
基于所述各早绑定风格接口对应代码的并集,生成兼容风格接口代码;
编译所述兼容风格接口代码,建立所述兼容风格接口。
4.根据权利要求1所述的方法,其特征在于,所述调用所述兼容风格接口,以使所述兼容风格接口调用与所述第二索引对应的早绑定风格接口通过晚绑定风格接口对所述待解析结构化数据文件进行读\写操作,包括:
获取当前领域对象对应的第二索引;
基于所述当前领域对象对应的第二索引,筛选确定目标模式定义文件和目标早绑定风格接口;
基于所述兼容风格接口调用所述目标早绑定风格接口,以调用晚绑定风格接口对所述待解析结构化数据文件中的当前领域对象进行读\写操作。
5.根据权利要求4所述的方法,其特征在于,所述基于所述当前领域对象对应的第二索引,筛选确定目标模式定义文件和目标早绑定风格接口,包括:
获取当前模式定义文件的第一索引;
判断所述当前领域对象对应的第二索引是否与所述当前模式定义文件对应的第一索引相一致;
当所述当前领域对象对应的第二索引与所述当前模式定义文件对应的第一索引相一致时,将所述当前模式定义文件确定为目标模式定义文件,并所述目标模式定义文件对应的早绑定风格接口确定为目标早绑定风格接口。
6.根据权利要求1所述的方法,其特征在于,在调用所述兼容风格接口之前,所述方法还包括:
获取用户的接口选择要求;
在所述接口选择要求为所述兼容风格接口时,将各领域对象对应的实例信息输入至所述兼容风格接口。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在所述接口选择要求为所述晚绑定风格接口时,将各领域对象的第二索引输入所述晚绑定风格接口,以对所述待解析结构化数据文件进行读\写操作。
8.一种结构化数据文件处理装置,其特征在于,包括:
获取模块,用于获取模式定义文件集合,所述模式定义文件集合中包含多个模式定义文件;
第一处理模块,用于基于各所述模式定义文件,分别建立各所述模式定义文件对应的第一索引;
第二处理模块,用于基于所述第一索引,提取各所述模式定义文件中各领域对象的定义信息;
第三处理模块,用于基于所述第一索引和所述定义信息,建立各所述模式定义文件对应的早绑定风格接口;
第四处理模块,用于基于所述各领域对象对应的所述定义信息计算各早绑定风格接口对应代码的并集以建立兼容风格接口;
第五处理模块,用于获取待解析结构化数据文件,并基于所述待解析结构化数据文件中各领域对象的实例信息建立所述待解析结构化数据文件的第二索引;
选择模块,用于调用所述兼容风格接口,以使所述兼容风格接口调用与所述第二索引对应的早绑定风格接口,并基于晚绑定风格接口对所述待解析结构化数据文件进行读\写操作。
9.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机从而执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210321435.0A CN114416104B (zh) | 2022-03-30 | 2022-03-30 | 一种结构化数据文件处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210321435.0A CN114416104B (zh) | 2022-03-30 | 2022-03-30 | 一种结构化数据文件处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114416104A CN114416104A (zh) | 2022-04-29 |
CN114416104B true CN114416104B (zh) | 2022-08-09 |
Family
ID=81264051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210321435.0A Active CN114416104B (zh) | 2022-03-30 | 2022-03-30 | 一种结构化数据文件处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114416104B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6799320B1 (en) * | 1998-12-16 | 2004-09-28 | Microsoft Corporation | Providing binding options for component interfaces |
US6883172B1 (en) * | 2001-03-29 | 2005-04-19 | Microsoft Corporation | System and method for bridging managed and unmanaged object systems by utilizing an interface wrapper to facilitate transparent communications |
CN101689112A (zh) * | 2007-06-21 | 2010-03-31 | 微软公司 | 后期绑定程序协助 |
CN105408884A (zh) * | 2013-07-26 | 2016-03-16 | 惠普发展公司,有限责任合伙企业 | 基于上下文的数据查看 |
CN106528760A (zh) * | 2016-11-04 | 2017-03-22 | 成都希盟泰克科技发展有限公司 | 用于工程项目基于ifc标准的解析模型工作方法 |
CN106936871A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 界面展示数据的方法及装置 |
CN112364206A (zh) * | 2020-11-12 | 2021-02-12 | 广东海启星海洋科技有限公司 | 一种对多格式数据文件进行解析翻译的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644216B2 (en) * | 2007-04-16 | 2010-01-05 | International Business Machines Corporation | System and method for providing an adapter for re-use of legacy DIMMS in a fully buffered memory environment |
-
2022
- 2022-03-30 CN CN202210321435.0A patent/CN114416104B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6799320B1 (en) * | 1998-12-16 | 2004-09-28 | Microsoft Corporation | Providing binding options for component interfaces |
US6883172B1 (en) * | 2001-03-29 | 2005-04-19 | Microsoft Corporation | System and method for bridging managed and unmanaged object systems by utilizing an interface wrapper to facilitate transparent communications |
CN101689112A (zh) * | 2007-06-21 | 2010-03-31 | 微软公司 | 后期绑定程序协助 |
CN105408884A (zh) * | 2013-07-26 | 2016-03-16 | 惠普发展公司,有限责任合伙企业 | 基于上下文的数据查看 |
CN106936871A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 界面展示数据的方法及装置 |
CN106528760A (zh) * | 2016-11-04 | 2017-03-22 | 成都希盟泰克科技发展有限公司 | 用于工程项目基于ifc标准的解析模型工作方法 |
CN112364206A (zh) * | 2020-11-12 | 2021-02-12 | 广东海启星海洋科技有限公司 | 一种对多格式数据文件进行解析翻译的方法及装置 |
Non-Patent Citations (4)
Title |
---|
Abidemi Owolabi等.Development of an Industry Foundation Classes Assembly Viewer.《Journal of Computing in Civil Engineering》.2006,第20卷(第2期), * |
C. Eastman等.Deployment of an AEC industry sector product model.《Computer-Aided Design》.2004,第37卷(第12期), * |
陈远等.基于IFC标准的BIM模型编程语言解析方法研究.《土木建筑工程信息技术》.2017,第9卷(第3期), * |
高歌等.基于知识库的IFC模型检查方法研究.《图学学报》.2019,第40卷(第6期), * |
Also Published As
Publication number | Publication date |
---|---|
CN114416104A (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7721252B2 (en) | Apparatus and method for product-line architecture description and verification | |
US7318215B1 (en) | Stored procedure interface language and tools | |
CN110351325B (zh) | 一种数据处理方法及相关设备 | |
CN104133772A (zh) | 一种自动生成测试数据的方法 | |
CN109032631B (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
CN110276074B (zh) | 自然语言处理的分布式训练方法、装置、设备及存储介质 | |
CN101515232A (zh) | 一种软件持续集成系统及方法 | |
CN110580189A (zh) | 生成前端页面的方法、装置、计算机设备以及存储介质 | |
US20130152061A1 (en) | Full fidelity parse tree for programming language processing | |
CN112083919A (zh) | 一种基于yaml模板的目标服务代码生成方法及装置 | |
CN114780109B (zh) | Python项目第三方库依赖自动化解析与安装方法 | |
CN110457013B (zh) | 程序组件配置装置及方法 | |
CN116560683A (zh) | 软件更新方法、装置、设备及存储介质 | |
US20200097260A1 (en) | Software application developer tools platform | |
CN115525534A (zh) | 基于swagger的接口测试的测试用例生成方法、生成平台 | |
CN114416104B (zh) | 一种结构化数据文件处理方法及装置 | |
CN115794214B (zh) | 应用模块元数据管理方法、设备、存储介质及装置 | |
CN115576980A (zh) | Sql语句配置方法、装置及电子设备 | |
CN115756484A (zh) | 预编译目标代码仓库确定方法及装置、存储介质 | |
CN114064601B (zh) | 存储过程转换方法、装置、设备和存储介质 | |
CN114281341A (zh) | 数据结构定义文件的编译方法、装置、计算机设备及介质 | |
CN107577476A (zh) | 一种基于模块划分的安卓系统源码差异性分析方法、服务器及介质 | |
US20170168786A1 (en) | Source Code Generation From Prototype Source | |
CN113098961A (zh) | 组件上传方法、装置、系统、计算机设备及可读存储介质 | |
CN108733353B (zh) | 一种界面构造方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |