具体实施方式
为了给出解决不能灵活的根据应用需求对书版小样中的特定内容进行再加工处理的问题的实现方案,本发明实施例提供了一种书版小样处理方法及装置,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例提供一种书版小样处理方法,如图1所示,包括:
步骤S101、按照先后顺序从待处理书版小样中获取当前小样元素。
其中,小样元素的类型包括文本类型、独立注解类型和关联注解类型;文本类型的小样元素为两个注解之间的且不与关联注解相关联的文本;独立注解类型的小样元素为一个独立注解;关联注解类型的小样元素为一个关联注解和与该关联注解对应的一个表示结束的文本或注解以及两者之间的文本和注解。
步骤S102、创建与该当前小样元素对应的XML对象。
步骤S103、将创建的XML对象加入到与该待处理书版小样对应的XML对象树中。
下面结合附图,用具体实施例对本发明提供的方法及装置进行详细描述。
书版小样的内容包括文本和使用BD语言标记的注解,其中,文本为进行排版后在页面中显示的字符内容;注解包括独立注解和关联注解两种,独立注解为注解自身单独即可在排版时起作用的注解,如表示图像的注解;关联注解为与其他文本和/或注解进行组合后共同在排版时起作用的注解,如一个表示表格开始的注解,与其对应的还有一个表示表格结束的注解,为与表格开始注解相关联的注解,表格开始注解与表格结束注解之间的文本和注解也是与表格开始注解相关联的。
本发明实施例中将书版小样划分为若干个小样元素,并对小样元素的类型进行区分,包括文本类型、独立注解类型和关联注解类型,其中,文本类型的小样元素为两个注解之间的且不与关联注解相关联的文本;独立注解类型的小样元素为一个独立注解;关联注解类型的小样元素为一个关联注解和与该关联注解对应的一个表示结束的文本或注解以及两者之间的文本和注解;具体可以如上述步骤S101,按照先后顺序从待处理书版小样中获取当前小样元素,具体的获取方法可以如图2所示,包括:
步骤S201、在第一次获取当前小样元素之前,也就是对待处理书版小样进行处理之前,首先将待处理书版小样划分为若干个小样原子,小样原子为书版小样中的一段数据,类型包括文本类型和注解类型,文本类型的小样原子为两个注解之间的文本,注解类型的小样原子为一个注解,即小样原子为书版小样中不可拆分的最小单元。较佳的,为便于后续处理,对于划分的小样原子可以按照各小样原子在书版小样中的先后顺序标记序号,构建原子序列。
步骤S202、在待处理书版小样中获取当前小样原子;初始的当前小样原子为书版小样中的第一个小样原子,即原子序列中序号为1的小样原子。
判断获取的该当前小样原子的类型,如果为文本类型,进入步骤S203,否则,进入步骤S204。
步骤S203、确定该当前小样原子为当前小样元素,并确定该当前小样元素的类型为文本类型,以及使用当前小样原子的后一个小样原子更新当前小样原子,进入后续步骤S301。
步骤S204、判断该当前小样原子表征的注解为独立注解还是关联注解,如果为独立注解,进入步骤S205、否则,进入步骤S206。
具体的判断方法为:解析当前小样原子对应的注解字符串,获得表征的注解的注解名称和参数表,根据获得的注解名称和参数表进行判断。
步骤S205、确定该当前小样原子为当前小样元素,并确定该当前小样元素的类型为独立注解类型,以及使用当前小样原子的后一个小样原子更新当前小样原子,进入后续步骤S301。
步骤S206、查找表征与该关联注解对应的一个表示结束的文本或注解的对应小样原子,并获取当前小样原子、该对应小样原子以及两者之间的小样原子,将这多个小样原子的组合作为当前小样元素,具体可以为通过序号区间为[M,N]内的小样原子表示,其中,小样原子M为该当前小样原子,小样原子N为对应小样原子;并确定该当前小样元素的类型为关联注解类型;以及使用该对应小样原子的后一个小样原子更新当前小样原子,进入后续步骤S301。
通过上述图2所示流程获取当前小样元素后,执行上述步骤S102和步骤S103,创建与该当前小样元素对应的XML对象,并将创建的XML对象加入到与该待处理书版小样对应的XML对象树中,具体流程可以如图3所示,包括:
步骤S301、判断获取的当前小样元素的类型是否为文本类型,如果是,进入步骤S302,否则,进入步骤S303。
步骤S302、使用相应的转换规则,创建与该当前小样元素对应的XML对象,且创建的该XML对象中记录有该当前小样元素表征的文本内容。
具体使用的转换规则可以采用现有技术中的各种转换规则,在此不再进行详细描述。
步骤S303、判断获取的当前小样元素的类型是否为独立注解类型,如果是,进入步骤S304,否则,进入步骤S305。
步骤S304、使用相应的转换规则,依据与书版小样关联的排版辅助信息,创建与该当前小样元素对应的XML对象,且创建的该XML对象中记录有该当前小样元素表征的注解字符串。
其中,与书版小样关联的排版辅助信息为在对书版小样进行排版操作时,建立的排版后文档的页面元素与书版小样中的小样片段的对照关系,其中,页面元素为排版后文档的页面的一个显示元素,可以是单位元素,如一个字符,一个图像等,也可以是组合元素,如表格等;小样片段是书版小样中的一段内容,由其在书版小样中的起始位置(如字节数)和结束位置标记。
具体使用的转换规则和如何依据与书版小样关联的排版辅助信息,可以采用现有技术中的各种方法,在此不再做详细描述。
步骤S305、创建与该当前小样元素对应的XML对象,由于该当前小样元素包括了若干个小样原子,因此,为了使创建的XML对象能够表征出包括的若干个小样原子在书版小样中的结构特征和相互关系,较佳的,可以先根据该当前小样元素包括的第一个关联注解及对应的一个表示结束的文本或注解,创建与两者对应的XML父对象,并根据该当前小样元素包括的其他文本和注解,创建该XML父对象的若干个XML子对象,其中,XML子对象为对应一个文本或一个注解创建的,或者为对应一个关联注解及与该关联注解对应的一个表示结束的文本或注解以及两者之间的文本和注解创建的;最终,将创建的XML父对象和若干个XML子对象的组合作为与该当前小样元素对应的XML对象。
具体描述如下:
首先,获取该当前小样元素的第一个小样原子,并查找到与其对应的该当前小样元素的最后一个小样原子,创建与第一个小样原子和最后一个小样原子两者对应的一个XML父对象,该XML父对象中记录有小样原子M表征的注解字符串和小样原子N表征的注解字符串或文本内容;
然后,根据该当前小样元素包括的其他各小样原子,创建该XML父对象的若干个XML子对象。此时,当其他各小样原子中不存在表征关联注解的小样原子时,依次分别创建与其他各小样原子对应的XML子对象;否则,当存在表征关联注解的小样原子时,还确定出与该小样原子对应的表示结束的小样原子,并针对这两个小样原子以及之间的小样原子的组合创建对应的XML对象(创建方法与本步骤中创建与该当前小样元素对应的XML对象相同,即实质可以通过递归流程实现),作为该XML父对象的一个XML子对象,对于其他不与关联注解类型的小样原子相关联的文本类型的小样原子和独立注解类型的小样原子,依次分别创建对应的XML子对象;
最终,将创建的XML父对象和若干个XML子对象的组合作为与该当前小样元素对应的XML对象。
本步骤中对于每个小样原子的XML子对象的创建方式,与上述步骤S303和步骤S304中相同。
步骤S306、将创建的该XML对象加入到与该待处理书版小样对应的XML对象树中。其中,当创建的该XML对象为第一个对象时,则先初始化与该待处理书版小样对应的XML对象树,然后再将该XML对象加入。
进入上述步骤S202,或者在创建的该XML对象为最后一个对象时,结束该待处理书版小样的处理流程。
通过上述图2和图3所示的流程,完成了本发明实施例提出的书版小样处理方法,即实现了将半结构化的、文本流型的书版小样进行结构化处理,将其转换成XML格式文档,由于相比书版小样XML格式文档的结构性强,可以通过XML技术方便地对其中的特定内容进行再加工处理,如数据提取和转换等;并且,本发明实施例中,不仅将书版小样中的文本内容进行了转换,还将其中的注解进行转换,保留了书版小样中各种内容信息的完整;并且,在整个处理过程中,无论是划分小样元素还是对应小样元素创建XML对象,均通过对注解类型的区分和小样元素类型的区分,使得转化后的XML文档的结构体现了书版小样中文本和注解之间的结构特征和相互关系,遵循了文档排版技术中的流式排版文档的规范结构,且能够方便将转化后的XML格式文档转化回原书版小样。
本发明实施例中,还可以对待处理书版小样进行规范的确定,以便后续处理的方便和一致性,例如,对于非规范版本的书版小样,可以通过宏处理展开书版小样中的宏定义数据,再执行转义字符串处理等将原始书版小样转换为规范版本的书版小样;以及进一步的,还可以设定规范的注解字符串,对于存在不规范的注解字符串的书版小样,还通过使用设定的规范的注解字符串替换不规范的注解字符串,最终将书版小样转化为满足要求的待处理书版小样。
基于同一发明构思,根据本发明上述实施例提供的书版小样处理方法,相应地,本发明另一实施例还提供了一种书版小样处理装置,其结构示意图如图4所示,包括:
获取单元401,用于按照先后顺序从待处理书版小样中获取当前小样元素;其中,小样元素的类型包括文本类型、独立注解类型和关联注解类型;文本类型的小样元素为两个注解之间的且不与关联注解相关联的文本;独立注解类型的小样元素为一个独立注解;关联注解类型的小样元素为一个关联注解和与该关联注解对应的一个表示结束的文本或注解以及两者之间的文本和注解;
第一创建单元402,用于创建与该当前小样元素对应的XML对象;
第二创建单元403,用于将创建的该XML对象加入到与所述待处理书版小样对应的XML对象树中。
较佳的,还包括:划分单元404,用于将该待处理书版小样划分为若干个小样原子;其中,小样原子的类型包括文本类型和注解类型;文本类型的小样原子为两个注解之间的文本;注解类型的小样原子为一个注解;
上述获取单元401,具体用于在该待处理书版小样中获取当前小样原子;当该当前小样原子为文本类型时,确定该当前小样原子为当前小样元素,并使用该当前小样原子的后一个小样原子更新当前小样原子;当该当前小样原子为注解类型,且表征的注解为独立注解时,确定该当前小样原子为当前小样元素,并使用该当前小样原子的后一个小样原子更新当前小样原子;当该当前小样原子为注解类型,且表征的注解为关联注解时,查找表征与该关联注解对应的一个表示结束的文本或注解的对应小样原子,并获取该当前小样原子和该对应小样原子以及两者之间的小样原子,作为当前小样元素,并使用该对应小样原子的后一个小样原子更新当前小样原子。
较佳的,上述划分单元404在判断为注解类型的所述当前小样原子表征的注解为独立注解或关联注解时,具体用于解析该当前小样原子对应的注解字符串,获得表征的注解的注解名称和参数表;并根据获得的注解名称和参数表进行判断。
较佳的,上述第一创建单元402,具体用于当该当前小样元素为文本类型时,创建与该当前小样元素对应的XML对象,创建的该XML对象中记录有该当前小样元素表征的文本内容;当该当前小样元素为独立注解类型时,创建与该当前小样元素对应的XML对象,创建的该XML对象中记录有该当前小样元素表征的注解的注解字符串;当该当前小样元素为关联注解类型时,根据所述当前小样元素包括的第一个关联注解及对应的一个表示结束的文本或注解,创建与两者对应的XML父对象,并根据所述当前小样元素包括的其他文本和注解,创建该XML父对象的若干个XML子对象,XML子对象为对应一个文本或一个注解创建的,或者为对应一个关联注解及与该关联注解对应的一个表示结束的文本或注解以及两者之间的文本和注解创建的;创建的XML父对象和若干个XML子对象的组合为与该当前小样元素对应的XML对象。
较佳的,上述书版小样处理装置,还包括:
转换单元405,用于对于存在不规范的注解字符串的书版小样,通过使用设定的规范的注解字符串替换不规范的注解字符串,将该书版小样转换为待处理书版小样。
综上所述,本发明实施例提供的方案,包括:按照先后顺序从待处理书版小样中获取当前小样元素;其中,小样元素的类型包括文本类型、独立注解类型和关联注解类型;文本类型的小样元素为两个注解之间的且不与关联注解相关联的文本;独立注解类型的小样元素为一个独立注解;关联注解类型的小样元素为一个关联注解和与该关联注解对应的一个表示结束的文本或注解以及两者之间的文本和注解;并创建与该当前小样元素对应的XML对象;以及将创建的XML对象加入到与该待处理书版小样对应的XML对象树中。采用本发明实施例提供的方案,解决了不能灵活的根据应用需求对书版小样中的特定内容进行再加工处理的问题,且保留书版小样中信息内容的完整性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。