XSD格式文件的解析方法及生成方法技术

技术编号:24457741 阅读:41 留言:0更新日期:2020-06-10 16:03
本发明专利技术涉及一种XSD格式文件的解析方法与生成方法,解析方法包括:初始化StreamReader类将XSD文件路径带入,将XSD文件转换为Stream流文件,初始化XmlDocument类对象,将该文件流转换为对应的XmlDocument类;获取该文档的N个Node节点块,节点对象代表XmlElement文档树中一个单独的节点;获取对应的节点的名称,获取该节点的属性集合;最终完成对XSD的解析,生成对应的XSD解析类。本发明专利技术可以直接调用本发明专利技术dll类库中的相关方法对XSD文件进行数据解析与生成的XSD格式文件。

Analysis and generation of XSD format file

【技术实现步骤摘要】
XSD格式文件的解析方法及生成方法
本专利技术属于数据管理领域,涉及一种文件的解析方法及生成方法,尤其涉及一种XSD格式文件的解析方法与生成方法。
技术介绍
XSD即XMLSchema语言,描述了XML文档的结构,可以通过XSD指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的,它是DTD的替代品,XMLSchema描述了XML文档的结构。可以用一个指定的XMLSchema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XMLSchema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XMLSchema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。一个XMLSchema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值,XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。在现有技术中数据集成类项目中通常用XSD文件作为需要集成的数据内容描述的主要因有:可扩展、支持数据类型、支持命名空间等。XSD本身是一个XML文档,它符合XML语法结构,所以虽可用通用的XML解析器解析它,然而并没有解析与生成复杂XSD格式文件的类库供直接调用使用。技术方案为了解决
技术介绍
中存在的上述技术问题,本专利技术提供了一种可以直接调用本专利技术dll类库中的相关方法对XSD文件进行数据解析与生成的XSD格式文件的解析方法与生成方法。为了实现上述目的,本专利技术采用如下技术方案:一种XSD格式文件的解析方法,其特征在于:所述XSD格式文件的解析方法包括以下步骤:1)初始化StreamReader类将XSD文件路径带入,将XSD文件转换为Stream流文件,其次初始化XmlDocument类对象,通过对象的Load方法将该文件流转换为对应的XmlDocument类;2)调用XmlDocument类内部的DocumentElement方法,将XmlDocument类转换为对应的XmlElement文档类,通过内部的属性值ChildNodes,获取该文档的N个Node节点块,节点对象代表XmlElement文档树中一个单独的节点;3)将拆分出来的Node节点块通过点LocalName的属性获取对应的节点的名称,再通过Attributes方法获取该节点的属性集合;4)最终完成对XSD的解析,生成对应的XSD解析类。上述步骤3)的具体实现方式是:利用C#的反射机制,提取element属性值,获取的每个节点块对应的属性值以及类型值,通过自定义类对象并赋值的方式,将Node节点转换为节点类。一种XSD格式文件的生成方法,其特征在于:所述XSD格式文件的生成方法包括以下步骤:1)初始化StreamReader类将XSD文件路径带入,将XSD文件转换为Stream流文件,其次初始化XmlDocument类对象,通过对象的Load方法将该文件流转换为对应的XmlDocument类;2)调用XmlDocument类内部的DocumentElement方法,将XmlDocument类转换为对应的XmlElement文档类,通过内部的属性值ChildNodes,获取该文档的N个Node节点块,节点对象代表XmlElement文档树中一个单独的节点;3)将拆分出来的Node节点块通过点LocalName的属性获取对应的节点的名称,再通过Attributes方法获取该节点的属性集合;4)最终完成对XSD的解析,生成对应的XSD解析类;5)将XSD解析类的对应属性以及属性值赋值给新定义的XmlAttribute类对象,初始化时给与对应的类名称和值;6)将节点类型类的属性名以及属性值衣服赋值给新定义的XmlElement类对象,通过初始化带入方式赋值,节点类型类与节点类型XmlElement的属性名称以及属性值必须保持完全一致;7)定义一个新的XmlDocument类对象,将上述节点类型XmlElement通过Add的方法加入到XmlDocument的Root根节点属性下,从而完成对XmlDocument文档信息类的组装;8)创建一个MemoryStream文件流对象,利用XmlDocument文档信息类的Save方法将XmlDocument文档进行保存操作。上述步骤3)的具体实现方式是:利用C#的反射机制,提取element属性值,获取的每个节点块对应的属性值以及类型值,通过自定义类对象并赋值的方式,将Node节点转换为节点类。上述步骤5)的具体实现方式是:通过该方式将XSD类转换为多个节点类型类,此方式利用的C#的反射填充element属性值机制,形成的节点类型类必须与XSD类属性名以及值完全一致。一种用于实现XSD格式文件的解析方法或XSD格式文件的生成方法的操作系统,其特征在于:所述操作系统包括:读取模块:在XSD格式文件进行解析过程中,通过StreamReader类将选定的XSD文件进行读取操作,将其转换为Stream文件流形式;在XSD格式文件进行生成过程中,将XmlDocument文档信息转换为XSD文档信息,为展示XSD文件生成的成果展示;解析模块:在XSD格式文件进行解析过程中,将读取模块的XSD文件流进行解析,从而将XSD文件流转换为XmlDocument文档信息类型,在XSD格式文件进行生成过程中,将XmlDocument文档转换为XSD文件信息;节点类型模块:在XSD格式文件进行解析过程中,将XmlDocument文档信息转化为节点类型,即用特定的字符串代表特定的节点,包含节点的类型以及值,在XSD格式文件进行生成过程中,将节点类型类转换为对应的节点类型,必须与节点类型类一一对应,完全匹配;节点类模块:在XSD格式文件进行解析过程中,将节点类型转化为一一对应的节点类或者对象;节点类必须与节点类型相对应;在XSD格式文件进行生成过程中,将XSD类通过反射提取机制,转换为节点类;XSD类模块:在XSD格式文件进行解析过程中,将节点类组合生成对应的XSD类,实则为C#对象;展示对XSD文件的解析成果;在XSD格式文件进行生成过程中,将XSD类通过反射填充机制转换为节点类,开始进一步的生成XSD文件操作。本专利技术的优点是:本专利技术提供了一种XSD格式文件的解析方法、XSD格式文件的生成方法以及用于实现两种方法的操作系统,本专利技术利用C#反射、通用的XML解析器等技术对XSD格式文件的解析与生成进行了封装,只要符合指定格式要求,可以直接调用本专利技术dll类库中的相关方法对XSD文件进行数据解析与生成等操作。本专利技术针对将来的额外内容是可扩展的,内容比文档类型定义丰富,作用也更大,解析与生成复杂XSD格式文件本文档来自技高网...

【技术保护点】
1.一种XSD格式文件的解析方法,其特征在于:所述XSD格式文件的解析方法包括以下步骤:/n1)初始化StreamReader类将XSD文件路径带入,将XSD文件转换为Stream流文件,其次初始化XmlDocument类对象,通过对象的Load方法将该文件流转换为对应的XmlDocument类;/n2)调用XmlDocument类内部的DocumentElement方法,将XmlDocument类转换为对应的XmlElement文档类,通过内部的属性值ChildNodes,获取该文档的N个Node节点块,节点对象代表XmlElement文档树中一个单独的节点;/n3)将拆分出来的Node节点块通过点LocalName的属性获取对应的节点的名称,再通过Attributes方法获取该节点的属性集合;/n4)最终完成对XSD的解析,生成对应的XSD解析类。/n

【技术特征摘要】
1.一种XSD格式文件的解析方法,其特征在于:所述XSD格式文件的解析方法包括以下步骤:
1)初始化StreamReader类将XSD文件路径带入,将XSD文件转换为Stream流文件,其次初始化XmlDocument类对象,通过对象的Load方法将该文件流转换为对应的XmlDocument类;
2)调用XmlDocument类内部的DocumentElement方法,将XmlDocument类转换为对应的XmlElement文档类,通过内部的属性值ChildNodes,获取该文档的N个Node节点块,节点对象代表XmlElement文档树中一个单独的节点;
3)将拆分出来的Node节点块通过点LocalName的属性获取对应的节点的名称,再通过Attributes方法获取该节点的属性集合;
4)最终完成对XSD的解析,生成对应的XSD解析类。


2.根据权利要求1所述的XSD格式文件的解析方法,其特征在于:所述步骤3)的具体实现方式是:利用C#的反射机制,提取element属性值,获取的每个节点块对应的属性值以及类型值,通过自定义类对象并赋值的方式,将Node节点转换为节点类。


3.一种XSD格式文件的生成方法,其特征在于:所述XSD格式文件的生成方法包括以下步骤:
1)初始化StreamReader类将XSD文件路径带入,将XSD文件转换为Stream流文件,其次初始化XmlDocument类对象,通过对象的Load方法将该文件流转换为对应的XmlDocument类;
2)调用XmlDocument类内部的DocumentElement方法,将XmlDocument类转换为对应的XmlElement文档类,通过内部的属性值ChildNodes,获取该文档的N个Node节点块,节点对象代表XmlElement文档树中一个单独的节点;
3)将拆分出来的Node节点块通过点LocalName的属性获取对应的节点的名称,再通过Attributes方法获取该节点的属性集合;
4)最终完成对XSD的解析,生成对应的XSD解析类;
5)将XSD解析类的对应属性以及属性值赋值给新定义的XmlAttribute类对象,初始化时给与对应的类名称和值;
6)将节点类型类的属性名以及属性值衣服赋值给新定义的XmlElement类对象,通过初始化带入方式赋值,节点类型类与节点类型XmlElement的属性名称以及属性值必须保持完全一致;
7)定义...

【专利技术属性】
技术研发人员:魏超李雨雨肖彦科李攀杨森杨俊毅
申请(专利权)人:陕西心像信息科技有限公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1