CN110110297B - 一种基于json配置的xsd文件生成方法及装置 - Google Patents

一种基于json配置的xsd文件生成方法及装置 Download PDF

Info

Publication number
CN110110297B
CN110110297B CN201910324192.4A CN201910324192A CN110110297B CN 110110297 B CN110110297 B CN 110110297B CN 201910324192 A CN201910324192 A CN 201910324192A CN 110110297 B CN110110297 B CN 110110297B
Authority
CN
China
Prior art keywords
xsd
data
data object
data objects
information
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.)
Active
Application number
CN201910324192.4A
Other languages
English (en)
Other versions
CN110110297A (zh
Inventor
杨力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wireless Life Hangzhou Information Technology Co ltd
Original Assignee
Wireless Life Hangzhou Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wireless Life Hangzhou Information Technology Co ltd filed Critical Wireless Life Hangzhou Information Technology Co ltd
Priority to CN201910324192.4A priority Critical patent/CN110110297B/zh
Publication of CN110110297A publication Critical patent/CN110110297A/zh
Application granted granted Critical
Publication of CN110110297B publication Critical patent/CN110110297B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

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

Description

一种基于JSON配置的XSD文件生成方法及装置
技术领域
本发明涉及可扩展标记语言文档结构描述(Extensible Markup LanguageSchema Definition,以下简称XSD)技术领域,尤其涉及一种基于JSON配置的XSD文件生成方法及装置。
背景技术
XSD是以可扩展标记语言(Extensible Markup Language,以下简称XML)为基础的,描述了可扩展标记语言文档的结构,以定义一份XML文档的合法组件群。在超文本标记语言(Hyper Text Markup Language,以下简称HTML)、XML开发过程中,需要在编码阶段给开发人员提供所有HTML元素的名称、属性及其他元信息等提示。
JS对象简谱(JavaScript Object Notation,以下简称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文件进行规范校验。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (7)

1.一种基于JSON配置的XSD文件生成方法,其特征在于,包括:
将JSON配置文件解析为数据对象,包括:将所述JSON配置文件解析为存储于内存中的映射表和树结构的数据对象;遍历所有数据对象,判断所述数据对象是否满足XSD生成条件;得到满足XSD生成条件的数据对象;解析得到多个数据对象,多个数据对象之间存在关联关系,数据对象具有对象标识,数据对象之间的关联关系通过对象标识体现;
从预设的XSD模板池中为所述数据对象匹配对应的XSD模板,包括:获取所述数据对象的数据结构信息,所述数据结构信息至少包括类型信息;根据所述数据结构信息为多个数据对象中的每个数据对象分别匹配XSD模板;XSD模板池提供可覆盖全部场景的XSD定义格式;
通过匹配的XSD模板对数据对象进行渲染,得到多个数据对象分别对应的多个XSD模块;
根据所述数据对象的对象标识生成所述XSD模块的编号,并获取所述数据对象的配置信息及关联关系,所述配置信息包括所述数据对象对应的优先级;
根据所述编号、所述配置信息及所述关联关系对多个XSD模块排序,对XSD模块进行格式优化以及XSD规范校验,生成XSD文件。
2.根据权利要求1所述的方法,其特征在于,判断所述数据对象是否满足XSD生成条件,包括:
判断所述数据对象的每个子项是否存在类型、属性、注释和层级关系信息。
3.根据权利要求1或2所述的方法,其特征在于,所述数据对象包括对象标识,所述对象标识包括数据对象之间的关联信息。
4.根据权利要求1所述的方法,其特征在于,所述数据结构信息还包括以下至少一项信息:属性名、校验类型和级联信息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当未匹配到XSD模板时,获取预设的通用XSD模板对所述数据对象进行渲染,所述通用XSD模板对所述数据对象的预设基本信息进行标识,所述预设基本信息包括类型、名称。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过XML解析引擎对所述XSD文件进行遍历,以对所述XSD文件进行规范校验。
7.一种基于JSON配置的XSD文件生成装置,其特征在于,包括:
解析模块,用于将JSON配置文件解析为数据对象,包括:将所述JSON配置文件解析为存储于内存中的映射表和树结构的数据对象;遍历所有数据对象,判断所述数据对象是否满足XSD生成条件;得到满足XSD生成条件的数据对象;解析得到多个数据对象,多个数据对象之间存在关联关系,数据对象具有对象标识,数据对象之间的关联关系通过对象标识体现;
匹配模块,用于从预设的XSD模板池中为所述数据对象匹配对应的XSD模板,包括:获取所述数据对象的数据结构信息,所述数据结构信息至少包括类型信息;根据所述数据结构信息为多个数据对象中的每个数据对象分别匹配XSD模板;XSD模板池提供可覆盖全部场景的XSD定义格式;
渲染模块,用于通过匹配的XSD模板对所述数据对象进行渲染,得到多个数据对象分别对应的多个XSD模块;
生成模块,用于根据所述数据对象的对象标识生成所述XSD模块的编号,并获取所述数据对象的配置信息及关联关系,所述配置信息包括所述数据对象对应的优先级;根据所述编号、所述配置信息及所述关联关系对多个XSD模块排序,对XSD模块进行格式优化以及XSD规范校验,XSD文件。
CN201910324192.4A 2019-04-22 2019-04-22 一种基于json配置的xsd文件生成方法及装置 Active CN110110297B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910324192.4A CN110110297B (zh) 2019-04-22 2019-04-22 一种基于json配置的xsd文件生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910324192.4A CN110110297B (zh) 2019-04-22 2019-04-22 一种基于json配置的xsd文件生成方法及装置

Publications (2)

Publication Number Publication Date
CN110110297A CN110110297A (zh) 2019-08-09
CN110110297B true CN110110297B (zh) 2023-08-08

Family

ID=67486244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910324192.4A Active CN110110297B (zh) 2019-04-22 2019-04-22 一种基于json配置的xsd文件生成方法及装置

Country Status (1)

Country Link
CN (1) CN110110297B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110688530B (zh) * 2019-08-19 2022-04-26 天津开心生活科技有限公司 一种json数据的处理方法及装置
CN110825364B (zh) * 2019-11-04 2023-11-07 浪潮云信息技术股份公司 一种基于树形结构的应用模板配置方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106161178A (zh) * 2015-03-24 2016-11-23 阿里巴巴集团控股有限公司 一种接入即时通信网络的方法和设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075833B2 (en) * 2013-01-21 2015-07-07 International Business Machines Corporation Generating XML schema from JSON data
US9921945B2 (en) * 2015-04-06 2018-03-20 Adp, Llc Automatic verification of JSON data
US10642895B2 (en) * 2016-09-15 2020-05-05 Oracle International Corporation Method and system for converting one type of data schema to another type of data schema
US10606891B2 (en) * 2017-02-28 2020-03-31 Fujitsu Limited JSON data validation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106161178A (zh) * 2015-03-24 2016-11-23 阿里巴巴集团控股有限公司 一种接入即时通信网络的方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Json2Xml;佚名;《https://blog.csdn.net/anxiongjiao2160/article/details/101862335/》;20150204;第1-3页 *

Also Published As

Publication number Publication date
CN110110297A (zh) 2019-08-09

Similar Documents

Publication Publication Date Title
US20060048109A1 (en) Enhanced compiled representation of transformation formats
US7210096B2 (en) Methods and apparatus for constructing semantic models for document authoring
US7596748B2 (en) Method for validating a document conforming to a first schema with respect to a second schema
KR101755365B1 (ko) 레코드 포맷 정보의 관리
US20070266378A1 (en) Source code generation method, apparatus, and program
US7653898B1 (en) Method and apparatus for generating a characteristics model for a pattern-based system design analysis using a schema
US9170918B2 (en) Model verification system, model verification method, and recording medium
CN110333863A (zh) 一种生成、显示小程序页面的方法及装置
US8676767B2 (en) Real time XML data update identification
US10459829B2 (en) Overall test tool migration pipeline
CN110110297B (zh) 一种基于json配置的xsd文件生成方法及装置
WO2017041578A1 (zh) 一种获取数据库变更信息的方法和装置
US11947976B2 (en) System and method for semantic metadata extensions in API governance using validation rulesets
CN111026670A (zh) 测试用例的生成方法、测试用例的生成装置及存储介质
US20110154184A1 (en) Event generation for xml schema components during xml processing in a streaming event model
US12038940B2 (en) Architecture for data map converters
CN113688134A (zh) 基于多维数据的可视化变量管理方法、系统及设备
Geiger et al. Detecting Interoperability and Correctness Issues in BPMN 2.0 Process Models.
Yusuf et al. An automatic approach to measure and visualize coupling in object-oriented programs
US9632990B2 (en) Automated approach for extracting intelligence, enriching and transforming content
CN113239016B (zh) 数据库设计辅助装置和方法
US20040153871A1 (en) Automatic analysis of the properties of a system based on runtime logs
Dattolo et al. Structural patterns for descriptive documents
Lonetti et al. X-MuT: a tool for the generation of XSLT mutants
CN110019109B (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