一种快速生成ONIX标准文件的方法及装置与流程

文档序号:11729307阅读:360来源:国知局
一种快速生成ONIX标准文件的方法及装置与流程

本发明属于数字出版技术领域,尤其涉及一种快速生成onix(onlineinformationexchange,在线信息交换)标准文件的方法及装置。



背景技术:

在移动互联网和大数据时代的背景下,传统出版与新兴媒体的融合趋势愈加不可阻挡,onix通过统一规范出版物流通领域中图书产品信息的描述与交换格式,可以满足出版者通过互联网向发行者(如批发商、经销商、零售商、网上书店或其他出版社等)、图书馆等终端客户以及其他涉及图书销售的供应链上相关贸易伙伴传递图书电子信息的需求,onix规范提供了全方位、深层次开发、利用及管理出版物产品信息的数字化解决方案,其可以通过整合出版物发行信息资源,实现出版物产品信息的“一次加工,全程共享”,为建设跨语种、跨媒体、跨区域的开放式出版物流通信息平台提供了所需的技术基础。

随着onix的发展及国家标准cnonix(cnonlineinformationexchange,中国在线信息交换)的出台,onix文件及其相关衍生标准作为出版物信息载体将在出版行业中广泛应用。目前,在利用onix文件及其相关衍生标准作为出版物信息载体时,常通过以下方法生成出版物产品信息对应的onix标准文件:

(1)定义并一一手动创建onix规范中每一个元素对应的节点对象;

(2)根据onix规范中各元素间的层级关系,构建各节点对象间的父子关系,并基于出版物产品信息创建各节点对象的实例;

(3)对onix文件(创建的所述节点对象所在的文件)根节点进行序列化,生成对应的onix标准文件。

以上生成onix标准文件的方法,明显具有以下缺点:创建者需要耗费大量时间去手动创建节点对象并构建各节点对象间的父子关系;且由于onix规范/标准本身较为复杂,层次结构较多,创建者在依赖onix规范的文档结构/层级结构,手动创建onix标准文件时,创建过程较为繁琐。



技术实现要素:

有鉴于此,本发明的目的在于提供一种快速生成onix标准文件的方法及装置,旨在解决现有技术在生成onix标准文件时存在的创建过程复杂,效率相对低下的技术问题。

为此,本发明公开如下技术方案:

一种快速生成onix标准文件的方法,包括:

获得待转换的目标产品信息;

获得依据onix规范所创建的预定文件格式的onix模板文件,及依据onix规范所创建的预定路径语言格式的路径文件;其中,所述onix模板文件包括:与onix规范中的根元素相对应的根节点及onix规范的命名空间,所述路径文件包括依据onix规范中提供的各个元素的层级关系所建立的各个元素的路径信息;

依据所述路径文件,将所述目标产品信息转换为至少部分内容符合onix规范的中间文件;其中,所述中间文件包括:符合所述路径文件中的路径信息且基于所述目标产品信息完成了实例化的各个元素节点;

当所述中间文件仅部分内容符合onix规范时,对所述中间文件进行规范化处理,得到全部内容均符合onix规范的处理结果文件;

对所述处理结果文件及所述onix模板文件进行预定的合成处理,得到所述目标产品信息对应的onix标准文件。

上述方法,优选的,所述获得待转换的目标产品信息,包括:

采集目标产品信息,并生成包含所述目标产品信息的表单文件。

上述方法,优选的,所述依据onix规范创建预定文件格式的的onix模板文件,及预定路径语言格式的路径文件,包括:

依据onix规范,采用扩展标记语言xml文件格式创建onix模板文件;

依据onix规范提供的各个元素的层级关系,采用xml路径语言xpath建立各个元素的路径信息,得到路径文件。

上述方法,优选的,所述中间文件仅部分内容符合onix规范为:通过资源检查确定出所述中间文件中存在不符合onix规范的至少一个本地资源地址;

则所述当所述中间文件仅部分内容符合onix规范时,对所述中间文件进行规范化处理,包括:

将所述中间文件中的至少一个本地资源地址所对应的至少一个本地资源上传至网络空间,并获得所上传的资源在网络空间中对应的统一资源标识符uri;

将所述中间文件中的至少一个本地资源地址替换为相应的统一资源标识符uri。

上述方法,优选的,所述对所述处理结果文件及所述onix模板文件进行预定的合成处理,包括:

创建所述onix模板文件的模板副本,所述模板副本与所述onix模板文件的内容一致;

将所述处理结果文件的文件内容填充至所述模板副本的根节点下,得到所述目标产品信息对应的onix标准文件。

上述方法,优选的,在所述获得依据onix规范所创建的预定文件格式的onix模板文件之后,还包括:

依据预定的验证规范,并使用相应的验证工具,验证所述onix模板文件的正确性。

一种快速生成onix标准文件的装置,包括:

第一获取单元,用于获得待转换的目标产品信息;

第二获取单元,用于获得依据onix规范所创建的预定文件格式的onix模板文件,及依据onix规范所创建的预定路径语言格式的路径文件;其中,所述onix模板文件包括:与onix规范中的根元素相对应的根节点及onix规范的命名空间,所述路径文件包括依据onix规范中提供的各个元素的层级关系所建立的各个元素的路径信息;

转换单元,用于依据所述路径文件,将所述目标产品信息转换为至少部分内容符合onix规范的中间文件;其中,所述中间文件包括:符合所述路径文件中的路径信息且基于所述目标产品信息完成了实例化的各个元素节点;

处理单元,用于当所述中间文件仅部分内容符合onix规范时,对所述中间文件进行规范化处理,得到全部内容均符合onix规范的处理结果文件;

合成单元,用于对所述处理结果文件及所述onix模板文件进行预定的合成处理,得到所述目标产品信息对应的onix标准文件。

上述装置,优选的,所述第一获取单元,进一步用于:

采集目标产品信息,并生成包含所述目标产品信息的表单文件。

上述装置,优选的,所述第二获取单元所获取的onix模板文件及路径文件的创建过程包括:

依据onix规范,采用扩展标记语言xml文件格式创建onix模板文件;依据onix规范提供的各个元素的层级关系,采用xml路径语言xpath建立各个元素的路径信息,得到路径文件。

上述装置,优选的,所述中间文件仅部分内容符合onix规范为:通过资源检查确定出所述中间文件中存在不符合onix规范的至少一个本地资源地址;则所述处理单元,进一步用于:

将所述中间文件中的至少一个本地资源地址所对应的至少一个本地资源上传至网络空间,并获得所上传的资源在网络空间中对应的统一资源标识符uri;将所述中间文件中的至少一个本地资源地址替换为相应的统一资源标识符uri。

上述装置,优选的,所述合成单元,进一步用于:

创建所述onix模板文件的模板副本,所述模板副本与所述onix模板文件的内容一致;将所述处理结果文件的文件内容填充至所述模板副本的根节点下,得到所述目标产品信息对应的onix标准文件。

上述装置,优选的,还包括:

验证单元,用于依据预定的验证规范,并使用相应的验证工具,验证所述onix模板文件的正确性。

由以上方案可知,本发明提供的快速生成onix标准文件的方法,包括采用预定路径语言(如xpath)对onix规范中的各层级元素进行定位,并依据定位所得的包含各层级元素路径信息的路径文件,将目标产品信息转换为至少部分内容符合onix规范的中间文件,再对所述中间文件进行规范化处理,使其全部内容均符合onix规范,最终通过模板合成快速地生成目标产品信息对应的onix标准文件。由此可见,本发明实现了一种快速生成onix标准文件的自动化实现方案,在利用本发明方案时,使用者仅需提供待转换的目标产品信息,并触发onix标准文件的生成过程即可实现onix标准文件的快速生成,不必考虑onix规范的文档结构/层级结构,有效解决了现有技术生成onix标准文件时过程复杂、效率相对低下等技术问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明实施例一提供的快速生成onix标准文件的方法流程图;

图2是本发明实施例一提供的目标产品信息的采集界面示意图;

图3是本发明实施例一提供的附加资源处理流程图;

图4是本发明实施例一提供的本发明方法的简要流程示意图;

图5是本发明实施例二提供的快速生成onix标准文件的方法流程图;

图6-图7是本发明实施例三提供的快速生成onix标准文件的装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本发明实施例一提供一种快速生成onix标准文件的方法,用于生成图书、电子书、光盘等各类出版物产品信息对应的onix标准文件,参考图1示出的快速生成onix标准文件的方法流程图,所述方法可以包括以下步骤:

步骤101、获得待转换的目标产品信息。

所述待转换的目标产品信息,可以是具有onix标准文件生成需求的图书、电子书、光盘等各类出版物对应的产品信息,出版物产品信息一般包括但不限于书名、价格、出版社、出版地、产品形式等多种信息。

本发明具体通过向使用者提供图形化交互界面,来采集获得使用者通过所述图形化交互界面所输入的待转换的目标产品信息,即具有onix标准文件生成需求的目标产品信息,参考图2,图2示出了一种具有产品信息采集功能的图形化交互界面的界面示例图。

当使用者存在对某一产品或某批产品的onix标准文件生成需求时,可通过所述图形化交互界面录入相应的产品信息,在此基础上,本发明方法的执行体,例如可以是以软件方式实现的具有本发明方法处理逻辑的一处理装置或系统,采集使用者在图形化交互界面录入的产品信息,并基于采集的产品信息生成一相应的表单文件,以实现为后续onix标准文件的生成提供所需的产品信息基础。

在本发明其他实施方式中,还可以通过自动提取的方式来获得待转换的目标产品信息,例如,对于具有onix标准文件生成需求的某一电子书而言,可通过自动提取(而非人工录入)电子书的书名、价格、出版社等信息,实现目标产品信息的获取。

步骤102、获得依据onix规范所创建的预定文件格式的onix模板文件,及依据onix规范所创建的预定路径语言格式的路径文件;其中,所述onix模板文件包括:与onix规范中的根元素相对应的根节点及onix规范的命名空间,所述路径文件包括依据onix规范中提供的各个元素的层级关系所建立的各个元素的路径信息。

本发明方法通过依据onix规范创建通用的onix模板文件及路径文件,后续结合利用所述onix模板文件、路径文件及所述待转换的目标产品信息,来生成所述目标产品信息对应的onix标准文件。

onix规范提供了构成onix标准文件的各个元素、属性及各元素间的层级关系。具体地,一般来说,onix规范提供有根元素onixmessage(根元素用于声明一个onix消息),产品元素product以及书名、价格、出版社等各种其他元素,同时声明了相应元素存在的属性,如书名存在的正书名、副书名属性等,并规定了各个元素间的层级关系,例如,产品元素product为根元素onixmessage的下层元素,书名、价格、出版社等元素为产品元素的下层元素等等。

本实施例具体采用xml(extensiblemarkuplanguage,可扩展标记语言)文件格式来创建onix模板文件,所创建的onix模板文件保留了onix规范的根元素及命名空间,即具体地,采用xml对onix规范中的根元素onixmessage及product元素进行描述,从而创建得到的onix模板文件中包括基于xml描述的onixmessage根节点及product子节点。

相应地,本实施例依据onix规范提供的各个元素的层级关系,采用xpath(xml路径语言)建立各个元素的路径信息,得到路径文件。其中,需保证为每个子节点(对应除根元素之外的其他元素)创建唯一的xpath路径,即保证每一个节点有唯一的对应位置,因此xpath路径中针对节点的条件描述不允许出现“or”等关键字,但允许出现“and”关键字,如果子节点对应的父节点有固定值(如父节点的声明性数值等),也需要在xpath描述中增加父节点值的描述,对于子节点对应的父节点而言,不用单独为其描述独立的xpath路径,创建子节点时,系统会依据子节点的路径自动为其创建对应的父节点。

在完成路径文件的创建后,需对创建的路径文件进行保存,保存格式允许自定义,可以直接通过枚举变量进行描述,也可以采取xml格式进行保存。在本实施例中,具体采用通过枚举变量进行描述的方案实现路径文件的保存。

需要说明的是,所述onix模板文件及路径文件为生成onix标准文件所需的通用文件,在onix规范的内容未发生变化(如升级更新等)的情况下,所述onix模板文件及路径文件相应地也不会发生变化,基于此,可将onix模板文件及路径文件的生成过程作为本发明方法的预处理步骤提前完成,从而在进行onix标准文件的生成时,可直接获取预先生成的onix模板文件及路径文件,并对其进行使用。

步骤103、依据所述路径文件,将所述目标产品信息转换为至少部分内容符合onix规范的中间文件;其中,所述中间文件包括:符合所述路径文件中的路径信息且基于所述目标产品信息完成了实例化的各个元素节点。

在获得待转换的目标产品信息及通用的onix标准文件、路径文件的基础上,本步骤依据所述路径文件,将所述目标产品信息转换为至少部分内容符合onix规范的中间文件。

其中,所述至少部分内容符合onix规范的中间文件的生成过程包括:

1)识别路径文件包含的xpath路径中的各层级节点,及节点的属性(包括节点类型及id等)和属性值;

2)依据识别出的节点及属性值依次进行节点及属性创建。

具体地,首先基于识别结果创建节点,之后创建节点对应的属性,最后利用目标产品信息中的相应信息为节点赋值,实现对节点进行实例化。创建节点过程中如果遇到路径相同的节点,则采取追加的策略,即在已经存在的节点下增加新的同级兄弟节点,例如,目标产品信息中可能会包含两个可相互替换的封面,旨在使得在不同出版社/出版日期采用不同封面进行出版,针对此种情况,在进行封面节点的创建时,则可采用上述追加策略,在相同的封面节点路径下创建两个同级兄弟封面节点。

3)采用递归策略,重复执行以上的步骤2),递归过程完成后,即实现了整个路径文件中所有xpath所对应的节点的生成及实例化,可得到至少部分内容符合onix规范的中间文件。

其中,onix规范要求onix文件中的所有附加资源的数字形式引文内容均采用统一资源标识符(uri,uniformresourceidentifier),而不允许出现诸如本地资源链接等本地资源地址。基于此,中间文件的至少部分内容符合onix规范,是指中间文件中可能存在onix规范所不允许出现的,即不符合onix规范的本地资源地址。鉴于中间文件对应包含或不包含本地资源地址这两种情况,从而生成的所述中间文件可能是完全符合onix规范的(不包含本地资源地址的情况),也可能并不完全与onix规范相符(包含本地资源地址的情况),也即中间文件的至少部分内容符合onix规范。

步骤104、当所述中间文件仅部分内容符合onix规范时,对所述中间文件进行规范化处理,得到全部内容均符合onix规范的处理结果文件。

鉴于所述中间文件可能包含onix规范所不允许的本地资源地址,参考图3,本步骤具体通过对所述中间文件进行资源检查,分析中间文件中所有附加资源的地址,来判断中间文件是否包含本地资源地址,如果中间文件的某节点下包含本地资源地址,则将该节点放入预先创建的xml节点容器中。

对于xml节点容器中各个不符合onix规范的节点,读取其包含的不符合onix规范的本地资源地址,进而获得所述本地资源地址所指示的本地资源,并将所述本地资源上传至网络空间,从而使得将本地资源转换为网络资源,同时获得所上传资源在网络空间中对应的统一资源标识符uri,其中,网络空间可采用第三方平台,也可进行自建。在此基础上,将中间文件中包含的所有不符合onix规范的本地资源地址,替换为相应的符合onix规范的统一资源标识符uri,从而实现了对中间文件进行规范化处理,使得其全部内容均符合onix规范。

对于中间文件不包含本地资源地址的情况,则不必对其进行上述的资源转换处理。

步骤105、对所述处理结果文件及所述onix模板文件进行预定的合成处理,得到所述目标产品信息对应的onix标准文件。

在对中间文件进行规范化处理,得到所述处理结果文件之后,本步骤对所述处理结果文件及所述onix模板文件进行预定的合成处理,以此得到目标产品信息对应的onix标准文件。

具体地,对所述处理结果文件及所述onix模板文件进行预定的合成处理,包括:创建所述onix模板文件的模板副本,所述模板副本与所述onix模板文件的内容一致;将所述处理结果文件的文件内容填充至所述模板副本的根节点下,得到所述目标产品信息对应的onix标准文件。

实际实施本发明时,可预先对本发明方案的各处理步骤进行自动化功能实现,从而,当存在某个/某批产品的onix标准文件生成需求时,使用者仅需提供存在onix标准文件生成需求的某个/某批产品的产品信息(如通过图形化交互界面录入所需的目标产品信息等),并触发onix标准文件的自动化生成流程(可参考图4示出的简要流程示意图),即可快速生成所需的onix标准文件。

由以上方案可知,本发明提供的快速生成onix标准文件的方法,包括采用预定路径语言(如xpath)对onix规范中的各层级元素进行定位,并依据定位所得的包含各层级元素路径信息的路径文件,将目标产品信息转换为至少部分内容符合onix规范的中间文件,再对所述中间文件进行规范化处理,使其全部内容均符合onix规范,最终通过模板合成快速地生成目标产品信息对应的onix标准文件。由此可见,本发明实现了一种快速生成onix标准文件的自动化实现方案,在利用本发明方案时,使用者仅需提供待转换的目标产品信息,并触发onix标准文件的生成过程即可实现onix标准文件的快速生成,不必考虑onix规范的文档结构/层级结构,有效解决了现有技术生成onix标准文件时过程复杂、效率相对低下等技术问题。

实施例二

本发明实施例二中,参考图5示出的快速生成onix标准文件的方法流程图,所述方法在所述步骤102之后还可以包括:

步骤102’、依据预定的验证规范,并使用相应的验证工具,验证所述onix模板文件的正确性。

本实施例提供对所获得的onix模板文件进行正确性验证的验证方案。

其中,可首先从官网上下载对应的schema文件,之后,可基于下载的schema文件,并利用xmlspy工具对所述onix模板文件的正确性进行验证。

具体地,由于onix模板文件只包含产品部分的onix数据,缺少信息发送时对应的发送方及接收方数据,从而,可首先通过在onix模板文件的onixmessage根节点下增加header节点,如具体增加发送方header节点及接收方header节点,实现对信息发送时所需的发送方及接收方数据进行补齐,在此基础上上,再使用相应工具,如xmlspy工具,利用schema规范对onix模板文件的节点层次结构进行正确性验证,后续验证完成后可以再将所补充的信息删除。

本实施例通过对onix模板文件进行验证,可有效确保onix模板文件中各节点层次结构的正确性,为后续onix标准文件的生成奠定了基础。

实施例三

本实施例提供一种快速生成onix标准文件的装置,参考图6示出的快速生成onix标准文件的装置的结构示意图,该装置包括:

第一获取单元61,用于获得待转换的目标产品信息;第二获取单元62,用于获得依据onix规范所创建的预定文件格式的onix模板文件,及依据onix规范所创建的预定路径语言格式的路径文件;其中,所述onix模板文件包括:与onix规范中的根元素相对应的根节点及onix规范的命名空间,所述路径文件包括依据onix规范中提供的各个元素的层级关系所建立的各个元素的路径信息;转换单元63,用于依据所述路径文件,将所述目标产品信息转换为至少部分内容符合onix规范的中间文件;其中,所述中间文件包括:符合所述路径文件中的路径信息且基于所述目标产品信息完成了实例化的各个元素节点;处理单元64,用于当所述中间文件仅部分内容符合onix规范时,对所述中间文件进行规范化处理,得到全部内容均符合onix规范的处理结果文件;合成单元65,用于对所述处理结果文件及所述onix模板文件进行预定的合成处理,得到所述目标产品信息对应的onix标准文件。

在本发明实施例的一实施方式中,所述第一获取单元,进一步用于:采集目标产品信息,并生成包含所述目标产品信息的表单文件。

在本发明实施例的一实施方式中,所述第二获取单元获取的onix模板文件及路径文件的创建过程包括:依据onix规范,采用扩展标记语言xml文件格式创建onix模板文件;依据onix规范提供的各个元素的层级关系,采用xml路径语言xpath建立各个元素的路径信息,得到路径文件。

在本发明实施例的一实施方式中,所述处理单元,进一步用于:将所述中间文件中的至少一个本地资源地址所对应的至少一个本地资源上传至网络空间,并获得所上传的资源在网络空间中对应的统一资源标识符uri;将所述中间文件中的至少一个本地资源地址替换为相应的统一资源标识符uri。

在本发明实施例的一实施方式中,所述合成单元,进一步用于:创建所述onix模板文件的模板副本,所述模板副本与所述onix模板文件的内容一致;将所述处理结果文件的文件内容填充至所述模板副本的根节点下,得到所述目标产品信息对应的onix标准文件。

在本发明实施例的一实施方式中,参考图7,所述装置还包括验证单元66,用于依据预定的验证规范,并使用相应的验证工具,验证所述onix模板文件的正确性。

此处,需要说明的是,本实施例涉及的快速生成onix标准文件的装置的描述,与上文方法的描述是类似的,且同方法的有益效果描述,对于本发明的快速生成onix标准文件的装置在本实施例中未披露的技术细节,请参照本发明方法实施例的说明,本实施对此不再作赘述。

综上所述,本发明的快速生成onix标准文件的方案存在以下优势:本发明方案通过xpath将onix规范中的各层次节点进行定位,并依据定位所得的路径文件,利用递归方案将目标产品信息转换生成onix中间文件,在此基础上,通过资源检查及模板合并实现了目标产品信息对应的onix标准文件的快速生成。采用本发明方案,使用者仅需提供待转换的目标产品信息,并触发onix标准文件的生成过程即可实现快速生成onix标准文件,不必考虑onix规范的文档结构/层级结构,能够在不依赖文档结构的情况下,占用较少的系统资源快速地生成onix文件,有效解决了现有技术生成onix标准文件时过程复杂、效率相对低下等技术问题。同时,由于采用xpath对节点路径进行描述,二次开发效率会得到大幅的提高。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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