基于多线程处理XBRL分类标准的方法与流程

文档序号:13421556阅读:253来源:国知局

本发明涉及xbrl分类标准领域,特别涉及基于多线程处理xbrl分类标准的方法。



背景技术:

xbrl(extensiblebusinessreportinglanguage),可扩展商业报告语言是一门用于商业信息进行电子交换的语言,有助于商业信息的编制、分析和交换。xbrl技术框架分为xbrl规范、xbrl分类标准和xbrl实例文档三部分。本发明涉及的分类标准分为模式文件和链接库文件,链接库文件通常包括定义链接库、列报链接库、计算链接库、标签链接库、参考链接库和角色标签链接库。模式文件定义了实例文档中事实概念,链接库文件定义了概念间的关系。随着xbrl的逐渐普及,拥有一套能高效处理xbrl文件的体系尤为重要。

分类标准作为概念和结构的定义,内容复杂,再者xml文件本身的一些特性,采用传统的同步方式无疑成为xbrl文件处理的一大瓶颈。



技术实现要素:

本发明要解决的技术问题是:提供一种基于多线程处理xbrl分类标准的方法,采用多线程异步处理xbrl分类标准文件,提高处理效率。

为解决上述问题,本发明采用的技术方案是:基于多线程处理xbrl分类标准的方法,包括分类标准解析和分类标准回写;

分类标准解析的步骤包括:

a1.传入文件路径参数,对文件路径预处理,并判断是否是有效路径,若有效,则进入步骤a2,否则返回步骤a1;

a2.解析模式文件的内容,并递归调用解析方法处理模式文件的嵌套关系,并将链接库文件路径记录在链接库文件list集合中;

a3.若步骤a2产生的链接库文件list集合不为空,则创建一个线程池,将链接库文件list集合按链接库类型进行分类,生成相应的链接库解析器,并将链接库解析器加入线程池中执行;

a4.若链接库解析器执行过程中产生可发现文件,则重复执行步骤a2和a3,以处理可发现文件;

a5.链接库解析器执行完毕后,将得到的处理数据保存到数据库;

分类标准回写的步骤包括:

b1.传入分类标准数据库id,查询回写分类标准所需要的数据并进行封装,判断分类标准是否存在,若存在着进入步骤b2,否则返回步骤b1;

b2.获取分类标准文件list集合,若该list集合不为空,创建线程池,根据文件类型创建相应的回写器,并将回写器加入线程池异步执行;异步执行的时候,每种类型的回写器执行自己私有的回写方法,直至回写动作完成。

进一步的,模式文件内容包括角色、元素定义以及文件之间引用关系。

进一步的,链接库解析器包括定义链接库解析器、列报链接库解析器、计算链接库解析器、标签链接库解析器、参考链接库解析器和角色标签链接库解析器。

进一步的,回写器包括模式文件回写器、定义链接库回写器、列报链接库回写器、计算链接库回写器、标签链接库回写器、参考链接库回写器和角色标签链接库回写器。

本发明的有益效果是:本发明采用多线程异步处理xbrl分类标准文件,对分类标准的不同文件实现异步处理方式,充分利用线程池,充分利用计算机资源,提高了处理效率,提升了用户体验。

具体实施方式

本发明采用多线程异步处理xbrl分类标准文件,以提高处理效率,包括分类标准解析和回写两部分,分别涉及到分类标准解析器和分类标准回写器。

分类标准解析器(taxonomyreader)为入口类,包括模式文件解析器(xmlschemareader)、列报链接库解析器(presentationlinkbasereader)、定义链接库解析器(definitionlinkbasereader)、计算链接库解析器(calculationlinkbasereader)、标签链接库解析器(labellinkbasereader)、参考链接库解析器(referencelinkbasereader)、角色标签链接库解析器(rolelabellinkbasereader)。由于文件本身的一些特性,模式文件解析器最先执行,同种类型链接库文件排队执行,而不同链接库解析器异步执行。

分类标准回写器(taxonomywriter)为入口类,包括模式文件回写器(xmlschemawriter)、列报链接库回写器(presentationlinkbasewriter)、定义链接库回写器(definitionlinkbasewriter)、计算链接库回写器(calculationlinkbasewriter)、标签链接库回写器(labellinkbasewriter)、参考链接库回写器(referencelinkbasewriter)、角色标签链接库回写器(rolelinkbasewriter)。回写器没有先后顺序的限制,所有回写器可以异步执行。

本发明中,考虑到多线程的处理效率,以最大限度利用多线程的特性,不论是解析器还是回写器均采用线程池来管理,以最大利用计算机资源,节省创建线程的开销。

实施例

实施例提供一种基于多线程处理xbrl分类标准的方法,包括分类标准解析和分类标准回写两部分;

1、分类标准解析,包括以下步骤:

a1.调用taxonomyreader的readtaxonomy方法,传入文件路径参数,完成文件路径的预处理,判断是否是有效路径,若有效,则进入步骤a2,否则返回步骤a1。

2.调用xmlschemareader的readxmlschema方法,解析模式文件内容,包括角色、元素定义以及文件之间引用关系。递归调用readxmlschema方法,以处理模式文件的嵌套关系以处理模式文件的嵌套关系。同时,在readxmlschema方法调用过程中,将链接库文件路径记录在链接库文件list集合中,以方便后面批量进行处理;

3.readxmlschema方法调用结束后,若步骤2中产生的链接库文件list集合不为空,则创建一个线程池,将步骤2中产生的链接库文件list集合按链接库类型进行分类,并生成相应的链接库解析器(如定义链接库解析器、列报链接库解析器、计算链接库解析器、标签链接库解析器、参考链接库解析器或者角色标签链接库解析器),并将链接库解析器加入线程池中执行;

4.链接库解析器执行过程中,可能会产生可发现文件,对此重复步骤2和步骤3,以处理可发现文件。

5.步骤4结束了,链接库解析器执行完毕后,文件与文件之间的引用关系处理结束,将相关信息保存到数据库,方便后续对分类标准的操作直接操作数据库,而无需再解析xml文档。

2分类标准回写,包括以下步骤:

b1.调用taxonomywriter的writetaxonomy方法,传入分类标准数据库id,查询回写分类标准所需要的数据并进行封装,判断分类标准是否存在,若存在着进入步骤b2,否则返回步骤b1。

b2.获取分类标准文件list集合,若该list集合不为空,创建线程池,根据文件类型创建相应的文件回写器(如模式文件回写器、列报链接库回写器、定义链接库回写器、计算链接库回写器、标签链接库回写器、参考链接库回写器、角色标签回写器),并将回写器加入线程池异步执行。每种类型的回写器执行自己私有的回写方法,直至回写动作完成。

以上描述了本发明的基本原理和主要的特征,说明书的描述只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1