买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于JSON配置的XSD文件生成方法及装置_无线生活(杭州)信息科技有限公司_201910324192.4 

申请/专利权人:无线生活(杭州)信息科技有限公司

申请日:2019-04-22

公开(公告)日:2023-08-08

公开(公告)号:CN110110297B

主分类号:G06F40/154

分类号:G06F40/154;G06F40/143

优先权:

专利状态码:有效-授权

法律状态:2023.08.08#授权;2019.09.03#实质审查的生效;2019.08.09#公开

摘要:本发明是关于一种基于JSON配置的XSD文件生成方法及装置。该方法包括:将JSON配置文件解析为数据对象;从预设的XSD模板池中为所述数据对象匹配对应的XSD模板;通过所述XSD模板对所述数据对象进行渲染,得到所述数据对象对应的XSD模块;根据所述XSD模块生成XSD文件。该技术方案将JOSN格式的配置文件高效准确地转换为XSD文件,且转换后的XSD文件包含所有的语言规范特性。

主权项:1.一种基于JSON配置的XSD文件生成方法,其特征在于,包括:将JSON配置文件解析为数据对象,包括:将所述JSON配置文件解析为存储于内存中的映射表和树结构的数据对象;遍历所有数据对象,判断所述数据对象是否满足XSD生成条件;得到满足XSD生成条件的数据对象;解析得到多个数据对象,多个数据对象之间存在关联关系,数据对象具有对象标识,数据对象之间的关联关系通过对象标识体现;从预设的XSD模板池中为所述数据对象匹配对应的XSD模板,包括:获取所述数据对象的数据结构信息,所述数据结构信息至少包括类型信息;根据所述数据结构信息为多个数据对象中的每个数据对象分别匹配XSD模板;XSD模板池提供可覆盖全部场景的XSD定义格式;通过匹配的XSD模板对数据对象进行渲染,得到多个数据对象分别对应的多个XSD模块;根据所述数据对象的对象标识生成所述XSD模块的编号,并获取所述数据对象的配置信息及关联关系,所述配置信息包括所述数据对象对应的优先级;根据所述编号、所述配置信息及所述关联关系对多个XSD模块排序,对XSD模块进行格式优化以及XSD规范校验,生成XSD文件。

全文数据:一种基于JSON配置的XSD文件生成方法及装置技术领域本发明涉及可扩展标记语言文档结构描述ExtensibleMarkupLanguageSchemaDefinition,以下简称XSD技术领域,尤其涉及一种基于JSON配置的XSD文件生成方法及装置。背景技术XSD是以可扩展标记语言ExtensibleMarkupLanguage,以下简称XML为基础的,描述了可扩展标记语言文档的结构,以定义一份XML文档的合法组件群。在超文本标记语言HyperTextMarkupLanguage,以下简称HTML、XML开发过程中,需要在编码阶段给开发人员提供所有HTML元素的名称、属性及其他元信息等提示。JS对象简谱JavaScriptObjectNotation,以下简称JSON规范是一个简明的、层次清晰的数据交换格式,及其易读。目前业界没有公认权威的JSON生成XSD的实现算法,开源社区存在一个工具,通过解析JSON语义拼接出符合XSD的规范的子集,生成相关文件。但是,子集无法代表超集,该工具对于XSD元素的属性配置无能为力,而且转换后的语义也不是严格与JSON配置强相关,因此存在争议。发明内容本发明实施例提供一种基于JSON配置的XSD文件生成方法及装置。所述技术方案如下:根据本发明实施例的第一方面,提供一种基于JSON配置的XSD文件生成方法,包括:将JSON配置文件解析为数据对象;从预设的XSD模板池中为所述数据对象匹配对应的XSD模板;通过所述XSD模板对所述数据对象进行渲染,得到所述数据对象对应的XSD模块;根据所述XSD模块生成XSD文件。可选的,所述将JSON配置文件解析为数据对象,包括:将所述JSON配置文件解析为存储于内存中的映射表和树结构的数据对象;遍历所有数据对象,判断所述数据对象是否满足XSD生成条件;得到满足XSD生成条件的数据对象。可选的,判断所述数据对象是否满足XSD生成条件,包括:判断所述数据对象的每个子项是否存在类型、属性、注释和层级关系信息。可选的,所述数据对象包括对象标识,所述对象标识包括数据对象之间的关联信息。可选的,从预设的XSD模板池中为所述数据对象匹配对应的XSD模板,包括:获取所述数据对象的数据结构信息,所述数据结构信息至少包括类型信息;根据所述数据结构信息为所述数据对象匹配XSD模块。可选的,所述数据结构信息还包括以下至少一项信息:属性名、校验类型和级联信息。可选的,所述方法还包括:当未匹配到XSD模板时,获取预设的通用XSD模板对所述数据对象进行渲染,所述通用XSD模板对所述数据对象的预设基本信息进行标识,所述预设基本信息包括类型、名称。可选的,所述方法还包括:根据所述数据对象的对象标识生成所述XSD模块的编号,并获取所述数据对象的配置信息及关联关系,所述配置信息包括所述数据对象对应的优先级;根据所述编号、所述配置信息及所述关联关系对所述XSD模块排序。可选的,所述方法还包括:通过XML解析引擎对所述XSD文件进行遍历,以对所述XSD文件进行规范校验。根据本发明实施例的第二方面,提供一种基于JSON配置的XSD文件生成装置,包括:解析模块,用于将JSON配置文件解析为数据对象;匹配模块,用于从预设的XSD模板池中为所述数据对象匹配对应的XSD模板;渲染模块,用于通过所述XSD模板对所述数据对象进行渲染,得到所述数据对象对应的XSD模块;生成模块,用于根据所述XSD模块生成XSD文件。本发明的实施例提供的技术方案可以包括以下有益效果:将JOSN格式的配置文件高效准确地转换为XSD文件,且转换后的XSD文件包含所有的语言规范特性。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。图1是本发明实施例的一种基于JSON配置的XSD文件生成方法的流程图。图2是本发明另一实施例的一种基于JSON配置的XSD文件生成方法的流程图。图3是本发明另一实施例的一种基于JSON配置的XSD文件生成方法的流程图。图4是本发明实施例的一种基于JSON配置的XSD文件生成方法的逻辑示意图。图5是本发明实施例的一种基于JSON配置的XSD文件生成装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。本发明需要借助XSD模板池并搭配相关解析算法实现XSD文件的生成,XSD模板池提供可覆盖全部场景的XSD定义格式,如简单元素类型、复杂元素类型、类型引用、注释和属性等。通过传入相关定义数据,由模板引擎匹配对应的模板渲染出对应的XSD模块,最终XSD文件生成。图1是本发明实施例的一种基于JSON配置的XSD文件生成方法的流程图,如图1所示,该方法包括以下步骤:步骤S11,将JSON配置文件解析为数据对象;步骤S12,从预设的XSD模板池中为数据对象匹配对应的XSD模板;步骤S13,通过XSD模板对数据对象进行渲染,得到数据对象对应的XSD模块;步骤S14,根据XSD模块生成XSD文件。本发明的实施例,将JOSN格式的配置文件高效准确地转换为XSD文件,且转换后的XSD文件包含所有的语言规范特性。图2是本发明另一实施例的一种基于JSON配置的XSD文件生成方法的流程图,如图2所示,步骤S11包括:步骤S21,将JSON配置文件解析为存储于内存中的映射表和树结构的数据对象;步骤S22,遍历所有数据对象,判断数据对象是否满足XSD生成条件;步骤S23,得到满足XSD生成条件的数据对象。其中,步骤S22判断数据对象是否满足XSD生成条件,包括:判断数据对象的每个子项是否存在类型、属性、注释和层级关系信息。数据对象包括对象标识,对象标识包括数据对象之间的关联信息。本实施例中,解析得到的数据对象有可能是多个,他们之间存在着各种关联关系,如层级上的父子兄弟和子孙、类型引用以及声明等。数据对象具有一个ID号,对象之间的关联关系通过ID方式体现,例如,所有的父对象通过ID引用所有的子对象。图3是本发明另一实施例的一种基于JSON配置的XSD文件生成方法的流程图,如图3所示,步骤S12包括:步骤S31,获取数据对象的数据结构信息,数据结构信息至少包括类型信息;步骤S32,根据数据结构信息为数据对象匹配XSD模块。其中,数据结构信息还可以进一步包括以下至少一项信息:属性名、校验类型和级联信息。本实施例中,将数据对象与XSD模板进行匹配的依据为每个XSD模板所需的数据结构信息。不同模板所需要的数据结构是不同的,如简单模块仅仅需要“类型”信息,而复杂模块则需要“类型”、“属性名”、“校验类型”和“级联信息”。通过将数据对象的数据结构信息与模板所需的数据结构信息进行比对,可以为数据对象匹配到XSD模板。在另一个实施例中,该方法还包括:当未匹配到XSD模板时,获取预设的通用XSD模板对数据对象进行渲染,通用XSD模板对数据对象的预设基本信息进行标识,预设基本信息包括类型、名称。本实施例中,模板池还提供一个通用模板,用来渲染无法匹配的数据对象。这个通用模板仅仅标识最基本的信息,如类型、名称等。更优地,当所有的XSD模块都渲染完毕后,本发明会对所有的XSD模块进行顺序排列、格式优化以及XSD规范校验,以生成可读性更佳的XSD文件。该方法还包括以下排序及格式优化的步骤:根据数据对象的对象标识生成XSD模块的编号,并获取数据对象的配置信息及关联关系,配置信息包括数据对象对应的优先级;根据编号、配置信息及关联关系对XSD模块排序。由于对象标识包括数据对象之间的关联信息,根据数据对象的对象标识生成XSD模块的编号,使得XSD模块仍然能够体现相互之间的关联关系。该方法还包括以下校验的步骤:通过XML解析引擎对XSD文件进行遍历,以对XSD文件进行规范校验。图4是本发明实施例的一种基于JSON配置的XSD文件生成方法的逻辑示意图,如图4所示。其中,参数解析器将输入的JSON配置文件解析为相应数据结构的数据对象;通过将数据对象与XSD模板池中的模板混合输入到模板解析引擎,为每个数据对象匹配XSD模板并使用该模板对数据对象进行渲染,得到XSD模块;优化引擎对多个XSD模块进行顺序排列、格式优化以及XSD规范校验,输入最终的XSD文件。下述为本发明装置实施例,可以用于执行本发明方法实施例。图5是本发明实施例的一种基于JSON配置的XSD文件生成装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图5所示,该装置包括:解析模块51,用于将JSON配置文件解析为数据对象;匹配模块52,用于从预设的XSD模板池中为数据对象匹配对应的XSD模板;渲染模块53,用于通过XSD模板对数据对象进行渲染,得到数据对象对应的XSD模块;生成模块54,用于根据XSD模块生成XSD文件。解析模块51,用于将JSON配置文件解析为存储于内存中的映射表和树结构的数据对象;遍历所有数据对象,判断数据对象是否满足XSD生成条件;得到满足XSD生成条件的数据对象。解析模块51,用于判断数据对象的每个子项是否存在类型、属性、注释和层级关系信息。数据对象包括对象标识,对象标识包括数据对象之间的关联信息。匹配模块52,用于获取数据对象的数据结构信息,数据结构信息至少包括类型信息;根据数据结构信息为数据对象匹配XSD模块。数据结构信息还包括以下至少一项信息:属性名、校验类型和级联信息。渲染模块53,还用于当未匹配到XSD模板时,获取预设的通用XSD模板对数据对象进行渲染,通用XSD模板对数据对象的预设基本信息进行标识,预设基本信息包括类型、名称。该装置还包括:信息获取模块,用于根据数据对象的对象标识生成XSD模块的编号,并获取数据对象的配置信息及关联关系,配置信息包括数据对象对应的优先级;排序模块,用于根据编号、配置信息及关联关系对XSD模块排序。该装置还包括:校验模块,用于通过XML解析引擎对XSD文件进行遍历,以对XSD文件进行规范校验。本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

权利要求:1.一种基于JSON配置的XSD文件生成方法,其特征在于,包括:将JSON配置文件解析为数据对象;从预设的XSD模板池中为所述数据对象匹配对应的XSD模板;通过所述XSD模板对所述数据对象进行渲染,得到所述数据对象对应的XSD模块;根据所述XSD模块生成XSD文件。2.根据权利要求1所述的方法,其特征在于,所述将JSON配置文件解析为数据对象,包括:将所述JSON配置文件解析为存储于内存中的映射表和树结构的数据对象;遍历所有数据对象,判断所述数据对象是否满足XSD生成条件;得到满足XSD生成条件的数据对象。3.根据权利要求2所述的方法,其特征在于,判断所述数据对象是否满足XSD生成条件,包括:判断所述数据对象的每个子项是否存在类型、属性、注释和层级关系信息。4.根据权利要求2或3所述的方法,其特征在于,所述数据对象包括对象标识,所述对象标识包括数据对象之间的关联信息。5.根据权利要求1所述的方法,其特征在于,从预设的XSD模板池中为所述数据对象匹配对应的XSD模板,包括:获取所述数据对象的数据结构信息,所述数据结构信息至少包括类型信息;根据所述数据结构信息为所述数据对象匹配XSD模块。6.根据权利要求5所述的方法,其特征在于,所述数据结构信息还包括以下至少一项信息:属性名、校验类型和级联信息。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:当未匹配到XSD模板时,获取预设的通用XSD模板对所述数据对象进行渲染,所述通用XSD模板对所述数据对象的预设基本信息进行标识,所述预设基本信息包括类型、名称。8.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述数据对象的对象标识生成所述XSD模块的编号,并获取所述数据对象的配置信息及关联关系,所述配置信息包括所述数据对象对应的优先级;根据所述编号、所述配置信息及所述关联关系对所述XSD模块排序。9.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过XML解析引擎对所述XSD文件进行遍历,以对所述XSD文件进行规范校验。10.一种基于JSON配置的XSD文件生成装置,其特征在于,包括:解析模块,用于将JSON配置文件解析为数据对象;匹配模块,用于从预设的XSD模板池中为所述数据对象匹配对应的XSD模板;渲染模块,用于通过所述XSD模板对所述数据对象进行渲染,得到所述数据对象对应的XSD模块;生成模块,用于根据所述XSD模块生成XSD文件。

百度查询: 无线生活(杭州)信息科技有限公司 一种基于JSON配置的XSD文件生成方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。