CN107562543B - 基于多线程处理xbrl分类标准的方法 - Google Patents
基于多线程处理xbrl分类标准的方法 Download PDFInfo
- Publication number
- CN107562543B CN107562543B CN201710805745.9A CN201710805745A CN107562543B CN 107562543 B CN107562543 B CN 107562543B CN 201710805745 A CN201710805745 A CN 201710805745A CN 107562543 B CN107562543 B CN 107562543B
- Authority
- CN
- China
- Prior art keywords
- link library
- file
- classification standard
- library
- write
- 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.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及XBRL分类标准领域,公开了一种基于多线程处理XBRL分类标准的方法,采用多线程异步处理XBRL分类标准文件,提高处理效率。本发明包括分类标准解析和回写两部分,解析和回写均采用线程池来管理;在分类标准解析的时候,模式文件解析器最先执行,同种类型链接库文件排队执行,不同链接库解析器异步执行;在分类标准回写的时候,所有回写器异步执行。本发明适用于XBRL分类标准文件处理。
Description
技术领域
本发明涉及XBRL分类标准领域,特别涉及基于多线程处理XBRL分类标准的方法。
背景技术
XBRL(eXtensible Business Reporting Language),可扩展商业报告语言是一门用于商业信息进行电子交换的语言,有助于商业信息的编制、分析和交换。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)。由于文件本身的一些特性,模式文件解析器最先执行,同种类型链接库文件排队执行,而不同链接库解析器异步执行。
分类标准回写器(TaxonomyWriter)为入口类,包括模式文件回写器(XMLSchemaWriter)、列报链接库回写器(PresentationLinkbaseWriter)、定义链接库回写器(DefinitionLinkbaseWriter)、计算链接库回写器(CalculationLinkbaseWriter)、标签链接库回写器(LabelLinkbaseWriter)、参考链接库回写器(ReferenceLinkbaseWriter)。回写器没有先后顺序的限制,所有回写器可以异步执行。
本发明中,考虑到多线程的处理效率,以最大限度利用多线程的特性,不论是解析器还是回写器均采用线程池来管理,以最大利用计算机资源,节省创建线程的开销。
实施例
实施例提供一种基于多线程处理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集合不为空,创建线程池,根据文件类型创建相应的文件回写器(如模式文件回写器、列报链接库回写器、定义链接库回写器、计算链接库回写器、标签链接库回写器、参考链接库回写器),并将回写器加入线程池异步执行。每种类型的回写器执行自己私有的回写方法,直至回写动作完成。
以上描述了本发明的基本原理和主要的特征,说明书的描述只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
Claims (4)
1.基于多线程处理XBRL分类标准的方法,其特征在于,包括分类标准解析和分类标准回写;
分类标准解析的步骤包括:
A1.传入文件路径参数,对文件路径预处理,并判断是否是有效路径,若有效,则进入步骤A2,否则返回步骤A1;
A2.解析模式文件的内容,并递归调用解析方法处理模式文件的嵌套关系,并将链接库文件路径记录在链接库文件List集合中;
A3.若步骤A2产生的链接库文件List集合不为空,则创建一个线程池,将链接库文件List集合按链接库类型进行分类,生成相应的链接库解析器,并将链接库解析器加入线程池中执行;
A4.若链接库解析器执行过程中产生可发现文件,则重复执行步骤A2和A3,以处理可发现文件;
A5.链接库解析器执行完毕后,将得到的处理数据保存到数据库;
分类标准回写的步骤包括:
B1.传入分类标准数据库id,查询回写分类标准所需要的数据并进行封装,判断分类标准是否存在,若存在则进入步骤B2,否则返回步骤B1;
B2.获取分类标准文件List集合,若该List集合不为空,创建线程池,根据文件类型创建相应的回写器,并将回写器加入线程池异步执行;异步执行的时候,每种类型的回写器执行自己私有的回写方法,直至回写动作完成。
2.如权利要求1所述的基于多线程处理XBRL分类标准的方法,其特征在于,模式文件内容包括角色、元素定义以及文件之间引用关系。
3.如权利要求1所述的基于多线程处理XBRL分类标准的方法,其特征在于,链接库解析器包括定义链接库解析器、列报链接库解析器、计算链接库解析器、标签链接库解析器和参考链接库解析器。
4.如权利要求1所述的基于多线程处理XBRL分类标准的方法,其特征在于,回写器包括模式文件回写器、定义链接库回写器、列报链接库回写器、计算链接库回写器、标签链接库回写器和参考链接库回写器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710805745.9A CN107562543B (zh) | 2017-09-08 | 2017-09-08 | 基于多线程处理xbrl分类标准的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710805745.9A CN107562543B (zh) | 2017-09-08 | 2017-09-08 | 基于多线程处理xbrl分类标准的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107562543A CN107562543A (zh) | 2018-01-09 |
CN107562543B true CN107562543B (zh) | 2020-11-10 |
Family
ID=60980344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710805745.9A Expired - Fee Related CN107562543B (zh) | 2017-09-08 | 2017-09-08 | 基于多线程处理xbrl分类标准的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107562543B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102222083A (zh) * | 2011-05-06 | 2011-10-19 | 中国科学院研究生院 | 基于创建对象的xbrl分类标准的快速解析方法 |
KR101240917B1 (ko) * | 2005-10-12 | 2013-03-08 | 주식회사 더존다스 | 확장성 비즈니스 리포팅 언어를 위한 텍사노미 정의 구조및 방법 |
US8612489B2 (en) * | 2011-07-14 | 2013-12-17 | International Business Machines Corporation | LossLess transformation of XBRL instance to XML data model instance |
CN104050265A (zh) * | 2014-06-20 | 2014-09-17 | 国家电网公司 | 基于iec61968标准的总线通用适配器构建方法 |
CN105320744A (zh) * | 2015-09-24 | 2016-02-10 | 四川长虹电器股份有限公司 | Xbrl分类标准自定义链接库的解析方法 |
CN105335464A (zh) * | 2015-09-24 | 2016-02-17 | 四川长虹电器股份有限公司 | 基于xbrl列报链接库实时预览财务报表的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9600842B2 (en) * | 2001-01-24 | 2017-03-21 | E-Numerate Solutions, Inc. | RDX enhancement of system and method for implementing reusable data markup language (RDL) |
US20060242181A1 (en) * | 2005-04-22 | 2006-10-26 | Business Objects | Apparatus and method for transforming XBRL data into database schema |
-
2017
- 2017-09-08 CN CN201710805745.9A patent/CN107562543B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101240917B1 (ko) * | 2005-10-12 | 2013-03-08 | 주식회사 더존다스 | 확장성 비즈니스 리포팅 언어를 위한 텍사노미 정의 구조및 방법 |
CN102222083A (zh) * | 2011-05-06 | 2011-10-19 | 中国科学院研究生院 | 基于创建对象的xbrl分类标准的快速解析方法 |
US8612489B2 (en) * | 2011-07-14 | 2013-12-17 | International Business Machines Corporation | LossLess transformation of XBRL instance to XML data model instance |
CN104050265A (zh) * | 2014-06-20 | 2014-09-17 | 国家电网公司 | 基于iec61968标准的总线通用适配器构建方法 |
CN105320744A (zh) * | 2015-09-24 | 2016-02-10 | 四川长虹电器股份有限公司 | Xbrl分类标准自定义链接库的解析方法 |
CN105335464A (zh) * | 2015-09-24 | 2016-02-17 | 四川长虹电器股份有限公司 | 基于xbrl列报链接库实时预览财务报表的方法 |
Non-Patent Citations (3)
Title |
---|
《XBRL分类标准扩展研究》;杨锐红;《中国优秀硕士论文全文数据库(电子期刊)经济与管理科学辑》;20160615;第J152-1309页 * |
《XBRL分类标准结构的本体论解析》;黄长胤;《专题研究》;20110817;第2011年卷(第5期);第138-139页,第142页 * |
《通用业务报告语言XBRL的分类体系》;朱本霞 等;《计算机应用》;20061231;第2006年卷(第z2期);第161-163页,第168页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107562543A (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11288142B2 (en) | Recovery strategy for a stream processing system | |
Salloum et al. | Big data analytics on Apache Spark | |
Falleri et al. | Fine-grained and accurate source code differencing | |
US8103684B2 (en) | Abstract pipeline component connection | |
US10282197B2 (en) | Open application lifecycle management framework | |
US7953674B2 (en) | Fuzzing system and method for exhaustive security fuzzing within an SQL server | |
US10402368B2 (en) | Content aggregation for unstructured data | |
US11226794B2 (en) | Relational logic integration | |
CN110362617B (zh) | 基于多并发技术从数据库快速导出批量数据方法和系统 | |
Baumgartner et al. | Scalable web data extraction for online market intelligence | |
Bilalli et al. | Towards Intelligent Data Analysis: The Metadata Challenge. | |
US20220121981A1 (en) | Cognitive Error Recommendation Based on Log Data | |
Madani et al. | Towards optimisation of model queries: A parallel execution approach | |
Bertino et al. | Evolving a Set of DTDs according to a Dynamic Set of XML Documents | |
CN104765787B (zh) | 软件系统内要素文件关联关系分析方法及系统 | |
CN107562543B (zh) | 基于多线程处理xbrl分类标准的方法 | |
CN111581299A (zh) | 基于大数据的多源数据仓库的库间数据转换系统及方法 | |
Bugnion et al. | Scala: Guide for Data Science Professionals | |
CN111667214B (zh) | 基于二维码的货物信息获取方法、装置及电子设备 | |
EP3547154A1 (en) | Constraint satisfaction software tool for database tables | |
Polychronou et al. | Machine learning algorithms for food intelligence: Towards a method for more accurate predictions | |
Ryckbosch et al. | Analyzing performance traces using temporal formulas | |
Graf et al. | Frost: Benchmarking and exploring data matching results | |
Egorov | Distributed stream processing with the intention of mining | |
CN117472739A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201110 Termination date: 20210908 |