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

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

Info

Publication number
CN110110297A
CN110110297A CN201910324192.4A CN201910324192A CN110110297A CN 110110297 A CN110110297 A CN 110110297A CN 201910324192 A CN201910324192 A CN 201910324192A CN 110110297 A CN110110297 A CN 110110297A
Authority
CN
China
Prior art keywords
xsd
data object
template
module
file
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
Application number
CN201910324192.4A
Other languages
English (en)
Other versions
CN110110297B (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 Living (hangzhou) Mdt Infotech Ltd
Original Assignee
Wireless Living (hangzhou) Mdt Infotech 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 Living (hangzhou) Mdt Infotech Ltd filed Critical Wireless Living (hangzhou) Mdt Infotech 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 (10)

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文件。
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 true CN110110297A (zh) 2019-08-09
CN110110297B 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)

Cited By (2)

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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140207826A1 (en) * 2013-01-21 2014-07-24 International Business Machines Corporation Generating xml schema from json data
US20160292242A1 (en) * 2015-04-06 2016-10-06 Adp, Llc Automatic verification of json data
CN106161178A (zh) * 2015-03-24 2016-11-23 阿里巴巴集团控股有限公司 一种接入即时通信网络的方法和设备
US20180075049A1 (en) * 2016-09-15 2018-03-15 Oracle International Corporation Schema to schema converter
US20180246984A1 (en) * 2017-02-28 2018-08-30 Fujitsu Limited Json data validation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140207826A1 (en) * 2013-01-21 2014-07-24 International Business Machines Corporation Generating xml schema from json data
CN106161178A (zh) * 2015-03-24 2016-11-23 阿里巴巴集团控股有限公司 一种接入即时通信网络的方法和设备
US20160292242A1 (en) * 2015-04-06 2016-10-06 Adp, Llc Automatic verification of json data
US20180075049A1 (en) * 2016-09-15 2018-03-15 Oracle International Corporation Schema to schema converter
US20180246984A1 (en) * 2017-02-28 2018-08-30 Fujitsu Limited Json data validation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佚名: "Json2Xml", 《HTTPS://BLOG.CSDN.NET/ANXIONGJIAO2160/ARTICLE/DETAILS/101862335/》 *

Cited By (4)

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

Also Published As

Publication number Publication date
CN110110297B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
US5794257A (en) Automatic hyperlinking on multimedia by compiling link specifications
Morris et al. Specification of exponential-family random graph models: terms and computational aspects
US20160162467A1 (en) Methods and systems for language-agnostic machine learning in natural language processing using feature extraction
Sannier et al. An automated framework for detection and resolution of cross references in legal texts
CN103873318B (zh) 一种网站自动化测试方法及自动化测试系统
CN101281521A (zh) 一种基于多分类器融合的敏感网页过滤方法及系统
US9311058B2 (en) Jabba language
CN110110297A (zh) 一种基于json配置的xsd文件生成方法及装置
US20070130514A1 (en) Dynamic data presentation
US8799791B2 (en) System for use in editorial review of stored information
US20200342051A1 (en) Artificial intelligence (ai) based generation of data presentations
Takata et al. Accessibility verification of WWW documents by an automatic guideline verification tool
CN117349429A (zh) 基于引导信号和句法结构的生成式文本摘要方法及系统
US20140279743A1 (en) Jabba-type override for correcting or improving output of a model
Freire et al. Enhancing JSON to RDF Data Conversion with Entity Type Recognition.
CN113033177B (zh) 一种电子病历数据的解析方法及装置
Lonetti et al. X-MuT: a tool for the generation of XSLT mutants
CN105740449A (zh) 统计报告动态生成系统和方法
Chase XML primer plus
Svihla et al. The database to RDF mapping model for an easy semantic extending of dynamic web sites
Putro et al. Xml representations of program code
Maclachlan et al. Semantic Web Rules for Business Information.
US20230229711A1 (en) System, Method, and Computer Program Product for Tokenizing Document Citations
Holzknecht Enabling domain-specific validation of schema. org annotations
Leal et al. Generation of Document Type Exercises for Automated Assessment

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