CN102411602A - 一种基于 fpga 实现的xml 并行投机解析方法 - Google Patents
一种基于 fpga 实现的xml 并行投机解析方法 Download PDFInfo
- Publication number
- CN102411602A CN102411602A CN2011102324764A CN201110232476A CN102411602A CN 102411602 A CN102411602 A CN 102411602A CN 2011102324764 A CN2011102324764 A CN 2011102324764A CN 201110232476 A CN201110232476 A CN 201110232476A CN 102411602 A CN102411602 A CN 102411602A
- Authority
- CN
- China
- Prior art keywords
- state
- symbol
- xml
- sub
- storehouse
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于FPGA实现的XML并行投机解析方法,包括:步骤1,将XML文件划分为N个子文件块;步骤2,抽取每个子文件块中的符号;步骤3,对符号进行前语法检查;步骤4,对N个子文件块完成前语法检查后,对符号进行后语法检查;步骤5,对抽取的符号进行子树构建,树中的每个节点代表XML文件中的相应符号;步骤6,将N个子树合并为一棵完整的文件对象模型树并写入FPGA的DDR2内存;步骤7,对每个子树的节点进行并行语义检查。本发明通过FPGA实现XML的并行投机解析,提高了解析速度并优化了资源的利用。
Description
技术领域
本发明涉及FPGA,尤其涉及一种基于FPGA实现的XML并行投机解析方法。
背景技术
XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
上面的XML文档中,“<bookstore>”是开始元素start element,“</bookstore>”是与之匹配的结束元素end element。“<book id=“1”>”中的“id”为属性名attribute name,“1”为属性内容attribute content。“XML parser”为“title”的元素内容element content。
XML解析类型有文件对象模型(Document Object Model,DOM)型和XML简单应用程序接口(simple API for XML,SAX)。DOM是万维网联盟W3C的推荐标准。DOM解析是将XML文件全部载入,组装成一颗DOM树,然后通过节点以及节点之间的关系来解析XML文件。SAX是一种XML解析的替代方法。相比于DOM,SAX是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。而且相比于DOM,SAX可以在解析文档的任意时刻停止解析,但任何事物都有其相反的一面,对于SAX来说就是操作复杂。
XML解析包含三个任务:语法检查well-formed check,语义检查Schemavalidation,树的构建tree constructor。语法检查包括开始元素和结束元素的嵌套检查,属性名唯一性的检查,以及一些基本的格式的检查。语义检查包括数据类型的检查,元素是否出现的检查,元素出现顺序的检查,属性名是否出现的检查等。
FPGA是高密度的可编程芯片,能够将大量逻辑功能集成到一个单片集成电路中,ASIC可以实现的逻辑功能,FPGA都可以实现,并且设计周期短,灵活,能够提高***的可靠性和集成度。但是FPGA设计需要考虑器件本身的结构和性能,这就需要开发者对器件有相当程度的了解,从而使设计在速度和资源利用上都达到最优。通过使用FPGA进行硬件实现某些软件实现的功能,能够加速计算。
发明内容
针对现有技术中存在的上述问题,本发明提供了一种基于FPGA实现的XML并行投机解析方法。
本发明提供了一种基于FPGA实现的XML并行投机解析方法,包括:
步骤1,将XML文件划分为N个子文件块;
步骤2,抽取每个子文件块中的符号;
步骤3,对符号进行前语法检查;
步骤4,对N个子文件块完成前语法检查后,对符号进行后语法检查;
步骤5,对抽取的符号进行子树构建,树中的每个节点代表XML文件中的相应符号;
步骤6,将N个子树合并为一棵完整的文件对象模型树并写入FPGA的DDR2内存;
步骤7,对每个子树的节点进行并行语义检查。
在一个示例中,步骤1包括:
步骤10,在XML文件中标记N个位置P0,P1,……,PN-1,相邻位置之间的XML子文件大小相等;
步骤11,根据各个XML子文件中的首次出现符号“<”确定XML子文件的内容。
在一个示例中,步骤20,设计有限状态机;有限状态机在第0状态遇到符号“<”则跳转到第1状态,否则跳转到第9状态;有限状态机在第1状态遇到符号“/”则跳转到第2状态,否则跳转到第3状态;有限状态机在第2状态遇到符号“>”则跳转到第0状态;有限状态机在第3状态遇到符号“空格”,则跳转到第4状态;有限状态机在第4状态遇到符号“=”则跳转到第5状态;有限状态机在第5状态遇到符号“””则跳转到第6状态,遇到符号“’”则跳转到第7状态;有限状态机在第6状态遇到符号“””则跳转到第8状态;有限状态机在第7状态遇到符号“’”则跳转到第8状态;有限状态机在第8状态遇到符号“>”则跳转到状态0,遇到符号“空格”则跳转到第4状态,遇到符号“/”则跳转到第10状态;有限状态机在第10状态遇到符号“>”则跳转到第0状态;有限状态机在第9状态遇到符号“<”则跳转到第1状态;有限状态机在第3状态抽取开始元素,在第4状态抽取属性名,在第6状态和第7状态抽取属性内容,在第9状态抽取元素内容,在第10状态抽取结束元素;第0状态、第1状态、第2状态、第5状态和第8状态为有限状态机的中间状态;
步骤21,根据有限状态机抽取出不同类型的符号,其中符号类型包括开始元素,结束元素,元素内容,属性名和属性内容。
在一个示例中,步骤3包括:
步骤30,将开始元素压入到开始元素堆栈,将结束元素开始元素堆栈中弹出的开始元素进行比较,如果每个字母都相同,则删除开始元素堆栈中的栈顶元素,否则将结束元素压入到结束元素堆栈;
步骤31,使用布隆过滤器检查属性名的唯一性。
在一个示例中,步骤4包括:
步骤40,将第i个子文件中经过前语法检查后的结束元素堆栈的栈底元素和第i-1个子文件中经过前语法检查后的开始元素堆栈的栈顶元素比较,如果不相同,则发出语法检查错误,停止解析,如果相同,则删除这两个元素,继续依次进行剩余开始元素和结束元素的比较,直到两个栈为空;i为自然数;
步骤41,如果结束元素堆栈为空,而开始元素堆栈非空,则结束元素堆栈和第i-2个子文件中的开始元素堆栈比较;如果开始元素堆栈为空,而结束元素堆栈非空,则开始元素堆栈去和第i+1个子文件中的结束元素堆栈去比较。
在一个示例中,步骤5包括:
步骤50,实现元素头、元素名、元素内容、属性头、属性名和属性内容的数据结构;
步骤51,将生成的每个数据结构传入到写缓冲队列;
步骤52,将FPAG中的DDR2内存划分为四个存储区域以存储元素头、属性头、元素名、属性名、属性内容和元素内容;
步骤53,实例化MIG IP核;
步骤54,通过MIG IP核将缓冲队列中的项写入到DDR2内存;
在一个示例中,步骤6包括:
步骤60,确定不同子文件块中的开始元素堆栈中剩余的元素之间的父子关系;
步骤61,更新开始元素的元素头,加入其父子信息;
步骤63,将修改好的元素头写入到DDR2内存中。
在一个示例中,步骤7包括:
步骤70,在解析工作开始前,预先保存XML语言结构文件中的信息;
步骤71,每一个子文件块中的符号从预先保存的XSD信息中检查其语义是否符合。
本发明通过FPGA实现XML的并行投机解析,提高了解析速度并优化了资源的利用。
附图说明
下面结合附图来对本发明作进一步详细说明,其中:
图1是本发明的***结构图;
图2是本发明的符号抽取模块中的有限状态机;
图3a是本发明的元素的数据结构;
图3b是元素内容和属性头的数据结构;
图3c是属性的数据结构;
图4是本发明的DDR2内存划分情况。
具体实施方式
本发明提供的基于FPGA实现的XML并行投机解析方法包括:1)块划分模块的设计;2)符号抽取模块的设计;3)前语法检查模块的设计;4)后语法检查模块的设计;5)子树构建模块的设计;6)子树合并模块的设计;7)并行语义检查模块的设计。下面参照附图进行详细说明。
1)块划分模块的设计
①确定需要划分块的数目N:在保证FPGA所提供的硬件资源满足实现需求的情况下,尽可能使并行数N变大;
②在一个XML文件找到N个位置(标号为P0-PN-1),每个位置恰好将这个XML文件划分为大小相等的XML子文件,每个子文件大小为该XML文件大小S除以N;P0位于XML文件的起始位置;
③第一个子文件的内容开始于XML文件中的P0,结束于P1后首次出现的符号“<”,第二个子文件的内容开始于XML文件中的P1后首次出现的符号“<”,结束于P2后首次出现的符号“<”,其他子文件类似该过程,除最后一个子文件结束于整个XML文件的最后一个字符。
2)符号抽取模块的设计
①设计一个有限状态机,如图2所示;有限状态机开始进入状态0,当遇到符号“<”,跳转到状态1,否则跳转到状态9;状态1遇到符号“/”,跳转到状态2,否则跳转到状态3;状态2遇到符号“>”,跳转到状态0;状态3遇到符号空格,跳转到状态4;状态4遇到符号“=”,跳转到状态5;状态5遇到符号“””,跳转到状态6,遇到符号“’”,跳转到状态7;状态6遇到符号“””,跳转到状态8;状态7遇到符号“’”,跳转到状态8;状态8遇到符号“>”,跳转到状态0,遇到符号空格,跳转到状态4,遇到符号“/”,跳转到状态10;状态10遇到符号“>”,跳转到状态0;状态9遇到符号“<”,跳转到状态1;
②通过有限状态机,抽取出不同类型的符号,其中符号类型有开始元素start element,结束元素end element,元素内容element content,属性名attribute name,属性内容attribute content;
③将抽取出的符号发送给前语法检查模块;
3)前语法检查模块的设计
①检查开始元素start element和结束元素end element的匹配情况:
I遇到开始元素start element,则将其压入到开始元素堆栈startelement stack;
II遇到结束元素end element,则将其和开始元素堆栈中弹出的开始元素进行比较,如果每个字母都相同,则删除开始元素堆栈中的栈顶元素,否则,将其压入到结束元素堆栈end element stack;
②使用布隆过滤器检查属性名的唯一性,如果有发生冲突,则把发生冲突的那个属性名和之前保存在属性名堆栈中的属性名逐个字符的比较,如果有相同的属性名,则发出语法检查错误,停止解析;
4)后语法检查模块的设计
①将第i个子文件中经过前语法检查后的结束元素堆栈的栈底元素和第i-1个子文件中经过前语法检查后的开始元素堆栈的栈顶元素比较;
②如果不相同,则发出语法检查错误,停止解析;
③如果相同,则删除这两个元素,继续依次进行其他元素的比较,直到两个栈为空;
④如果结束元素堆栈为空,而开始元素堆栈非空,则结束元素堆栈去和第i-2个子文件中的开始元素堆栈去比较;
⑤如果开始元素堆栈为空,而结束元素堆栈非空,则开始元素堆栈去和第i+1个子文件中的结束元素堆栈去比较;
5)子树构建模块的设计
①分别设计元素头element header、元素名element name、元素内容element content、属性头attribute header、属性名attribute name、属性内容attribute content的数据结构并实现,图3为上述符号的数据结构;
②将生成的每个数据结构传入到写缓冲队列write buffer中,等待写入到DDR2内存中;
③将FPAG板子上的DDR2内存划分为四个存储区域分别用于存储元素头element header,属性头attribute header,元素名element name、属性名attribute name、属性内容attribute content,元素内容element content,图4为DDR2内存的划分情况;元素名、属性名和属性内容存入内存块2,属性头、元素头和元素内容存入内存块0、内存块1和内存块3中;
④使用Xilinx公司提供的内存接口生成器知识产权核(memoryinterface generator Intellectual Property core,MIG IP),在代码中实例化MIG IP核;
⑤通过MIG IP核将缓冲队列中的项写入到DDR2内存;
6)子树合并模块的设计
①确定不同子文件块中的开始元素堆栈中剩余的元素之间的父子关系;
②更新开始元素的元素头,加入其父子信息;
③将修改好的元素头写入到DDR2内存中;
7)并行语义检查模块的设计
①在解析工作开始前,预先保存XML结构定义(XML Schema Definition,XSD)文件中的信息;
②每一个子文件块中的符号从预先保存的XSD信息中检查其语义是否符合。
以上所述仅为本发明的优选实施方式,但本发明保护范围并不局限于此。任何本领域的技术人员在本发明公开的技术范围内,均可对其进行适当的改变或变化,而这种改变或变化都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种基于FPGA实现的XML并行投机解析方法,其特征在于,包括:
步骤1,将XML文件划分为N个子文件块;
步骤2,抽取每个子文件块中的符号;
步骤3,对符号进行前语法检查;
步骤4,对N个子文件块完成前语法检查后,对符号进行后语法检查;
步骤5,对抽取的符号进行子树构建,树中的每个节点代表XML文件中的相应符号;
步骤6,将N个子树合并为一棵完整的文件对象模型树并写入FPGA的DDR2内存;
步骤7,对每个子树的节点进行并行语义检查。
2.如权利要求1所述的XML并行投机解析方法,其特征在于,步骤1包括:
步骤10,在XML文件中标记N个位置P0,P1,……,PN-1,相邻位置之间的XML子文件大小相等;
步骤11,根据各个XML子文件中的首次出现符号“<”确定XML子文件的内容。
3.如权利要求1所述的XML并行投机解析方法,其特征在于,步骤2包括:
步骤20,设计有限状态机;有限状态机在第0状态遇到符号“<”则跳转到第1状态,否则跳转到第9状态;有限状态机在第1状态遇到符号“/”则跳转到第2状态,否则跳转到第3状态;有限状态机在第2状态遇到符号“>”则跳转到第0状态;有限状态机在第3状态遇到符号“空格”,则跳转到第4状态;有限状态机在第4状态遇到符号“=”则跳转到第5状态;有限状态机在第5状态遇到符号“””则跳转到第6状态,遇到符号“’”则跳转到第7状态;有限状态机在第6状态遇到符号“””则跳转到第8状态; 有限状态机在第7状态遇到符号“’”则跳转到第8状态;有限状态机在第8状态遇到符号“>”则跳转到状态0,遇到符号“空格”则跳转到第4状态,遇到符号“/”则跳转到第10状态;有限状态机在第10状态遇到符号“>”则跳转到第0状态;有限状态机在第9状态遇到符号“<”则跳转到第1状态;有限状态机在第3状态抽取开始元素,在第4状态抽取属性名,在第6状态和第7状态抽取属性内容,在第9状态抽取元素内容,在第10状态抽取结束元素;第0状态、第1状态、第2状态、第5状态和第8状态为有限状态机的中间状态;
步骤21,根据有限状态机抽取出不同类型的符号,其中符号类型包括开始元素,结束元素,元素内容,属性名和属性内容。
4.如权利要求3所述的XML并行投机解析方法,其特征在于,步骤3包括:
步骤30,将开始元素压入到开始元素堆栈,将结束元素开始元素堆栈中弹出的开始元素进行比较,如果每个字母都相同,则删除开始元素堆栈中的栈顶元素,否则将结束元素压入到结束元素堆栈;
步骤31,使用布隆过滤器检查属性名的唯一性。
5.如权利要求4所述的XML并行投机解析方法,其特征在于,步骤4包括:
步骤40,将第i个子文件中经过前语法检查后的结束元素堆栈的栈底元素和第i-1个子文件中经过前语法检查后的开始元素堆栈的栈顶元素比较,如果不相同,则发出语法检查错误,停止解析,如果相同,则删除这两个元素,继续依次进行剩余开始元素和结束元素的比较,直到两个栈为空;i为自然数;
步骤41,如果结束元素堆栈为空,而开始元素堆栈非空,则结束元素堆栈和第i-2个子文件中的开始元素堆栈比较;如果开始元素堆栈为空,而结束元素堆栈非空,则开始元素堆栈去和第i+1个子文件中的结束元素堆栈去比较。
6.如权利要求1所述的XML并行投机解析方法,其特征在于,步骤5包括:
步骤50,实现元素头、元素名、元素内容、属性头、属性名和属性内容的数据结构;
步骤51,将生成的每个数据结构传入到写缓冲队列;
步骤52,将FPAG中的DDR2内存划分为四个存储区域以存储元素头、属性头、元素名、属性名、属性内容和元素内容;
步骤53,实例化MIG IP核;
步骤54,通过MIG IP核将缓冲队列中的项写入到DDR2内存。
7.如权利要求1所述的XML并行投机解析方法,其特征在于,步骤6包括:
步骤60,确定不同子文件块中的开始元素堆栈中剩余的元素之间的父子关系;
步骤61,更新开始元素的元素头,加入其父子信息;
步骤63,将修改好的元素头写入到DDR2内存中。
8.如权利要求1所述的XML并行投机解析方法,其特征在于,步骤7包括:
步骤70,在解析工作开始前,预先保存XML语言结构文件中的信息;
步骤71,每一个子文件块中的符号从预先保存的XSD信息中检查其语义是否符合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110232476 CN102411602B (zh) | 2011-08-15 | 2011-08-15 | 一种基于 fpga 实现的xml 并行投机解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110232476 CN102411602B (zh) | 2011-08-15 | 2011-08-15 | 一种基于 fpga 实现的xml 并行投机解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102411602A true CN102411602A (zh) | 2012-04-11 |
CN102411602B CN102411602B (zh) | 2013-07-24 |
Family
ID=45913676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110232476 Expired - Fee Related CN102411602B (zh) | 2011-08-15 | 2011-08-15 | 一种基于 fpga 实现的xml 并行投机解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102411602B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970746A (zh) * | 2013-01-25 | 2014-08-06 | 沈阳锐易特软件技术有限公司 | 一种序列化文件解析装置及方法 |
CN105659274A (zh) * | 2013-10-01 | 2016-06-08 | 艾尼克斯股份有限公司 | 用于在可重构平台中解码数据流的方法和设备 |
CN106469137A (zh) * | 2015-08-19 | 2017-03-01 | 互联网域名***北京市工程研究中心有限公司 | Xml文档解析方法及装置 |
CN106919553A (zh) * | 2016-08-24 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 文件解析方法和装置 |
CN108241655A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种***数据转存方法 |
CN109086240A (zh) * | 2018-08-28 | 2018-12-25 | 中国科学院长春光学精密机械与物理研究所 | 一种空间载荷遥控数据的注入***及方法 |
CN109753285A (zh) * | 2018-12-26 | 2019-05-14 | 浙江大学 | 一种基于fpga的xml解析器、可重构计算*** |
-
2011
- 2011-08-15 CN CN 201110232476 patent/CN102411602B/zh not_active Expired - Fee Related
Non-Patent Citations (4)
Title |
---|
GREG STITT EL AT.: "《Thread warping:a framework for dynamic synthesis of thread accelerators》", 《ACM DL DIGITAL LIBRARY》 * |
曹毅等: "《加速XML解析过程的研究》", 《微型电脑应用》 * |
马吉军: "《CPU/FPGA混合架构上硬件线程执行机制的研究》", 《中国优秀硕士学位论文全文数据库》 * |
马学韬: "《基于VTD模型的XML硬件解析器研究》", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970746A (zh) * | 2013-01-25 | 2014-08-06 | 沈阳锐易特软件技术有限公司 | 一种序列化文件解析装置及方法 |
CN105659274A (zh) * | 2013-10-01 | 2016-06-08 | 艾尼克斯股份有限公司 | 用于在可重构平台中解码数据流的方法和设备 |
CN105659274B (zh) * | 2013-10-01 | 2020-04-14 | 艾尼克斯股份有限公司 | 用于在可重构平台中解码数据流的方法和设备 |
CN106469137A (zh) * | 2015-08-19 | 2017-03-01 | 互联网域名***北京市工程研究中心有限公司 | Xml文档解析方法及装置 |
CN106919553A (zh) * | 2016-08-24 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 文件解析方法和装置 |
CN108241655A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种***数据转存方法 |
CN109086240A (zh) * | 2018-08-28 | 2018-12-25 | 中国科学院长春光学精密机械与物理研究所 | 一种空间载荷遥控数据的注入***及方法 |
CN109086240B (zh) * | 2018-08-28 | 2020-10-27 | 中国科学院长春光学精密机械与物理研究所 | 一种空间载荷遥控数据的注入***及方法 |
CN109753285A (zh) * | 2018-12-26 | 2019-05-14 | 浙江大学 | 一种基于fpga的xml解析器、可重构计算*** |
Also Published As
Publication number | Publication date |
---|---|
CN102411602B (zh) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102411602B (zh) | 一种基于 fpga 实现的xml 并行投机解析方法 | |
Green et al. | Processing XML streams with deterministic automata and stream indexes | |
CN105447099B (zh) | 日志结构化信息提取方法及装置 | |
US7941417B2 (en) | Processing structured electronic document streams using look-ahead automata | |
CN102098331B (zh) | 一种还原web类应用内容的方法及其*** | |
CN103294652B (zh) | 一种数据转换方法及*** | |
CN106156239B (zh) | 一种表格抽取方法和装置 | |
CN101950312B (zh) | 一种互联网网页内容解析方法 | |
Arroyuelo et al. | Fast in‐memory XPath search using compressed indexes | |
US20060167869A1 (en) | Multi-path simultaneous Xpath evaluation over data streams | |
CN103123631B (zh) | 文案的生成、网页文案的展示方法、装置及网站服务器 | |
CN103365992B (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
CN101145157B (zh) | 一种xml格式嵌入式设备特征信息解析方法 | |
CN104063401A (zh) | 一种网页样式地址合并的方法和装置 | |
CN103309961B (zh) | 基于马尔可夫随机场的网页正文提取方法 | |
CN103699591A (zh) | 一种基于示例页面的网页正文提取方法 | |
Verbitskaia et al. | Relaxed parsing of regular approximations of string-embedded languages | |
CN102663108A (zh) | 基于复杂网络模型并行化标签传播算法的药物社团发现方法 | |
ø ller et al. | HTML validation of context-free languages | |
Cording et al. | Algorithms for web scraping | |
CN106372042A (zh) | 一种文档内容获取方法和装置 | |
Alpuente et al. | A visual technique for web pages comparison | |
CN101344895B (zh) | Css选择子规则匹配方法 | |
Li et al. | Extraction and integration information in HTML tables | |
CN104572745B (zh) | 文档结构化方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130724 Termination date: 20160815 |
|
CF01 | Termination of patent right due to non-payment of annual fee |